import { Util, ModelParser, MobContextMenuControlInterface} from "ibiz-core";
import { MainControlBase } from './main-control-base';
import { IPSDEContextMenu } from '@ibiz/dynamic-model-api';

/**
 * 上下文菜单部件基类
 *
 * @export
 * @class MobContextMenuBase
 * @extends {MainControlBase}
 */
export class MobContextMenuControlBase extends MainControlBase implements MobContextMenuControlInterface{

    /**
     * 部件模型
     *
     * @type {AppContextMenuBase}
     * @memberof ContextMenuBase
     */
    public declare controlInstance: IPSDEContextMenu;

    
    /**
     * 上下文菜单界面行为模型
     *
     * @type {AppContextMenuBase}
     * @memberof ContextMenuBase
     */
    public contextMenuActionModel!: any;

    /**
     * 监听静态参数变化
     *
     * @param {*} newVal
     * @param {*} oldVal
     * @memberof AppControlBase
     */
    public onDynamicPropsChange(newVal: any, oldVal: any) {
        this.contextMenuActionModel = newVal?.contextMenuActionModel || {};
        super.onDynamicPropsChange(newVal, oldVal);
    }

    /**
     * 菜单项点击
     * 
     * @memberof AppContextMenuBase
     */
    public itemClick({ tag }: any) {
        const disabled = this.contextMenuActionModel[tag]?.disabled;
        if(disabled){
            return;
        }
        this.ctrlEvent({ controlname: this.controlInstance.name, action: "contextMenuItemClick", data: tag });
    }

    /**
     * 部件模型数据初始化实例
     *
     * @memberof ContextMenuBase
     */
    public async ctrlModelInit(args?: any) {
        await super.ctrlModelInit();
    }

}