import type { PopsPanelContainerConfig } from "./components-container";
import type { PopsPanelViewConfig } from ".";
/**
* 右侧容器的配置
*/
export interface PopsPanelRightAsideContainerConfig {
/** 当前的
元素 */
target: HTMLLIElement | undefined;
/** 当前的元素的父元素 */
ulElement: HTMLUListElement;
/** 当前的- 元素所在的统一的
元素 */
sectionContainerULElement?: HTMLUListElement;
/** */
formContainerListElement?: HTMLLIElement;
/** */
formHeaderDivElement?: HTMLElement | HTMLDivElement;
}
/**
* 通用配置
*/
export interface PopsPanelGeneralConfig {
/**
* (可选)元素的className,值为空的话就不设置
* @default ""
*/
className?: string | string[] | (() => string | string[]);
/**
* (可选)自定义元素属性
* @default {}
*/
attributes?: {
[key: string]: any;
};
/**
* (可选)自定义属性
* @default {}
*/
props?:
| {
[K in keyof HTMLElement]?: HTMLElement[K];
}
| {
[key: string]: any;
};
/**
* 在添加到元素后触发该回调
* @param viewConfig 配置
* @param container 右侧容器的元素
* @example
* // 例如在type为own时
* afterAddToUListCallBack(viewConfig, container) {
* DOMUtils.on(
container.formHeaderDivElement.querySelector(
"a"
),
"click",
void 0,
() => {
PopsPanel.deleteValue("xxxx");
container.ulElement.querySelector(
"textarea"
).value = xxxxx.defaultValue;
Qmsg.success("已重置");
}
);
* }
*
* // 例如在type为forms时
* container内只有container.ulElement这个属性
*/
afterAddToUListCallBack?: (viewConfig: T, container: PopsPanelRightAsideContainerConfig) => void;
}