mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-26 19:09:52 +00:00
38 lines
942 B
TypeScript
38 lines
942 B
TypeScript
import { $el } from '../../ui'
|
|
import { ComfyButton } from './button'
|
|
import { prop } from '../../utils'
|
|
|
|
export class ComfyButtonGroup {
|
|
element = $el('div.comfyui-button-group')
|
|
buttons: (HTMLElement | ComfyButton)[]
|
|
|
|
constructor(...buttons: (HTMLElement | ComfyButton)[]) {
|
|
this.buttons = prop(this, 'buttons', buttons, () => this.update())
|
|
}
|
|
|
|
insert(button: ComfyButton, index: number) {
|
|
this.buttons.splice(index, 0, button)
|
|
this.update()
|
|
}
|
|
|
|
append(button: ComfyButton) {
|
|
this.buttons.push(button)
|
|
this.update()
|
|
}
|
|
|
|
remove(indexOrButton: ComfyButton | number) {
|
|
if (typeof indexOrButton !== 'number') {
|
|
indexOrButton = this.buttons.indexOf(indexOrButton)
|
|
}
|
|
if (indexOrButton > -1) {
|
|
const r = this.buttons.splice(indexOrButton, 1)
|
|
this.update()
|
|
return r
|
|
}
|
|
}
|
|
|
|
update() {
|
|
this.element.replaceChildren(...this.buttons.map((b) => b['element'] ?? b))
|
|
}
|
|
}
|