mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-27 01:39:47 +00:00
Devex: Linter updates (#7309)
## Summary Updates for the linter/formatter deps, turning on some more rules. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7309-WIP-Linter-updates-2c56d73d36508101b3ece6bcaf7e5212) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Christian Byrne <cbyrne@comfy.org>
This commit is contained in:
@@ -249,9 +249,7 @@ const link_bounding = new Rectangle()
|
||||
* This class is in charge of rendering one graph inside a canvas. And provides all the interaction required.
|
||||
* Valid callbacks are: onNodeSelected, onNodeDeselected, onShowNodePanel, onNodeDblClicked
|
||||
*/
|
||||
export class LGraphCanvas
|
||||
implements CustomEventDispatcher<LGraphCanvasEventMap>
|
||||
{
|
||||
export class LGraphCanvas implements CustomEventDispatcher<LGraphCanvasEventMap> {
|
||||
static DEFAULT_BACKGROUND_IMAGE =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII='
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
* Temporary workaround until downstream consumers migrate to Map.
|
||||
* A brittle wrapper with many flaws, but should be fine for simple maps using int indexes.
|
||||
*/
|
||||
export class MapProxyHandler<V>
|
||||
implements ProxyHandler<Map<number | string, V>>
|
||||
{
|
||||
export class MapProxyHandler<V> implements ProxyHandler<
|
||||
Map<number | string, V>
|
||||
> {
|
||||
getOwnPropertyDescriptor(
|
||||
target: Map<number | string, V>,
|
||||
p: string | symbol
|
||||
|
||||
@@ -81,9 +81,9 @@ export interface CustomEventDispatcher<
|
||||
* ```
|
||||
*/
|
||||
export class CustomEventTarget<
|
||||
EventMap extends Record<Keys, unknown>,
|
||||
Keys extends keyof EventMap & string = keyof EventMap & string
|
||||
>
|
||||
EventMap extends Record<Keys, unknown>,
|
||||
Keys extends keyof EventMap & string = keyof EventMap & string
|
||||
>
|
||||
extends EventTarget
|
||||
implements ICustomEventTarget<EventMap, Keys>
|
||||
{
|
||||
|
||||
@@ -380,8 +380,10 @@ interface IContextMenuBase {
|
||||
}
|
||||
|
||||
/** ContextMenu */
|
||||
export interface IContextMenuOptions<TValue = unknown, TExtra = unknown>
|
||||
extends IContextMenuBase {
|
||||
export interface IContextMenuOptions<
|
||||
TValue = unknown,
|
||||
TExtra = unknown
|
||||
> extends IContextMenuBase {
|
||||
ignore_item_callbacks?: boolean
|
||||
parentMenu?: ContextMenu<TValue>
|
||||
event?: MouseEvent
|
||||
@@ -426,13 +428,15 @@ export interface IContextMenuValue<
|
||||
): void | boolean | Promise<void | boolean>
|
||||
}
|
||||
|
||||
interface IContextMenuSubmenu<TValue = unknown>
|
||||
extends IContextMenuOptions<TValue> {
|
||||
interface IContextMenuSubmenu<
|
||||
TValue = unknown
|
||||
> extends IContextMenuOptions<TValue> {
|
||||
options: ConstructorParameters<typeof ContextMenu<TValue>>[0]
|
||||
}
|
||||
|
||||
export interface ContextMenuDivElement<TValue = unknown>
|
||||
extends HTMLDivElement {
|
||||
export interface ContextMenuDivElement<
|
||||
TValue = unknown
|
||||
> extends HTMLDivElement {
|
||||
value?: string | IContextMenuValue<TValue>
|
||||
onclick_callback?: never
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ import type { SubgraphInput } from './SubgraphInput'
|
||||
import type { SubgraphOutput } from './SubgraphOutput'
|
||||
|
||||
export abstract class SubgraphIONodeBase<
|
||||
TSlot extends SubgraphInput | SubgraphOutput
|
||||
>
|
||||
TSlot extends SubgraphInput | SubgraphOutput
|
||||
>
|
||||
implements Positionable, Hoverable, Serialisable<ExportedSubgraphIONode>
|
||||
{
|
||||
static margin = 10
|
||||
|
||||
@@ -46,9 +46,7 @@ export interface CanvasPointerEvent extends PointerEvent, CanvasMouseEvent {}
|
||||
|
||||
/** MouseEvent with canvasX/Y and deltaX/Y properties */
|
||||
interface CanvasMouseEvent
|
||||
extends MouseEvent,
|
||||
Readonly<CanvasPointerExtensions>,
|
||||
LegacyMouseEvent {}
|
||||
extends MouseEvent, Readonly<CanvasPointerExtensions>, LegacyMouseEvent {}
|
||||
|
||||
export type CanvasEventDetail =
|
||||
| GenericEventDetail
|
||||
|
||||
@@ -94,27 +94,32 @@ export interface INumericWidget extends IBaseWidget<number, 'number'> {
|
||||
value: number
|
||||
}
|
||||
|
||||
export interface ISliderWidget
|
||||
extends IBaseWidget<number, 'slider', IWidgetSliderOptions> {
|
||||
export interface ISliderWidget extends IBaseWidget<
|
||||
number,
|
||||
'slider',
|
||||
IWidgetSliderOptions
|
||||
> {
|
||||
type: 'slider'
|
||||
value: number
|
||||
marker?: number
|
||||
}
|
||||
|
||||
export interface IKnobWidget
|
||||
extends IBaseWidget<number, 'knob', IWidgetKnobOptions> {
|
||||
export interface IKnobWidget extends IBaseWidget<
|
||||
number,
|
||||
'knob',
|
||||
IWidgetKnobOptions
|
||||
> {
|
||||
type: 'knob'
|
||||
value: number
|
||||
options: IWidgetKnobOptions
|
||||
}
|
||||
|
||||
/** Avoids the type issues with the legacy IComboWidget type */
|
||||
export interface IStringComboWidget
|
||||
extends IBaseWidget<
|
||||
string,
|
||||
'combo',
|
||||
RequiredProps<IWidgetOptions<string[]>, 'values'>
|
||||
> {
|
||||
export interface IStringComboWidget extends IBaseWidget<
|
||||
string,
|
||||
'combo',
|
||||
RequiredProps<IWidgetOptions<string[]>, 'values'>
|
||||
> {
|
||||
type: 'combo'
|
||||
value: string
|
||||
}
|
||||
@@ -125,25 +130,29 @@ type ComboWidgetValues =
|
||||
| ((widget?: IComboWidget, node?: LGraphNode) => string[])
|
||||
|
||||
/** A combo-box widget (dropdown, select, etc) */
|
||||
export interface IComboWidget
|
||||
extends IBaseWidget<
|
||||
string | number,
|
||||
'combo',
|
||||
RequiredProps<IWidgetOptions<ComboWidgetValues>, 'values'>
|
||||
> {
|
||||
export interface IComboWidget extends IBaseWidget<
|
||||
string | number,
|
||||
'combo',
|
||||
RequiredProps<IWidgetOptions<ComboWidgetValues>, 'values'>
|
||||
> {
|
||||
type: 'combo'
|
||||
value: string | number
|
||||
}
|
||||
|
||||
/** A widget with a string value */
|
||||
export interface IStringWidget
|
||||
extends IBaseWidget<string, 'string' | 'text', IWidgetOptions<string[]>> {
|
||||
export interface IStringWidget extends IBaseWidget<
|
||||
string,
|
||||
'string' | 'text',
|
||||
IWidgetOptions<string[]>
|
||||
> {
|
||||
type: 'string' | 'text'
|
||||
value: string
|
||||
}
|
||||
|
||||
export interface IButtonWidget
|
||||
extends IBaseWidget<string | undefined, 'button'> {
|
||||
export interface IButtonWidget extends IBaseWidget<
|
||||
string | undefined,
|
||||
'button'
|
||||
> {
|
||||
type: 'button'
|
||||
value: string | undefined
|
||||
clicked: boolean
|
||||
@@ -181,15 +190,19 @@ interface IImageWidget extends IBaseWidget<string, 'image'> {
|
||||
}
|
||||
|
||||
/** Tree select widget for hierarchical selection */
|
||||
export interface ITreeSelectWidget
|
||||
extends IBaseWidget<string | string[], 'treeselect'> {
|
||||
export interface ITreeSelectWidget extends IBaseWidget<
|
||||
string | string[],
|
||||
'treeselect'
|
||||
> {
|
||||
type: 'treeselect'
|
||||
value: string | string[]
|
||||
}
|
||||
|
||||
/** Multi-select widget for selecting multiple options */
|
||||
export interface IMultiSelectWidget
|
||||
extends IBaseWidget<string[], 'multiselect'> {
|
||||
export interface IMultiSelectWidget extends IBaseWidget<
|
||||
string[],
|
||||
'multiselect'
|
||||
> {
|
||||
type: 'multiselect'
|
||||
value: string[]
|
||||
}
|
||||
@@ -207,19 +220,20 @@ export interface IGalleriaWidget extends IBaseWidget<string[], 'galleria'> {
|
||||
}
|
||||
|
||||
/** Image comparison widget for comparing two images side by side */
|
||||
export interface IImageCompareWidget
|
||||
extends IBaseWidget<string[], 'imagecompare'> {
|
||||
export interface IImageCompareWidget extends IBaseWidget<
|
||||
string[],
|
||||
'imagecompare'
|
||||
> {
|
||||
type: 'imagecompare'
|
||||
value: string[]
|
||||
}
|
||||
|
||||
/** Select button widget for selecting from a group of buttons */
|
||||
export interface ISelectButtonWidget
|
||||
extends IBaseWidget<
|
||||
string,
|
||||
'selectbutton',
|
||||
RequiredProps<IWidgetOptions<string[]>, 'values'>
|
||||
> {
|
||||
export interface ISelectButtonWidget extends IBaseWidget<
|
||||
string,
|
||||
'selectbutton',
|
||||
RequiredProps<IWidgetOptions<string[]>, 'values'>
|
||||
> {
|
||||
type: 'selectbutton'
|
||||
value: string
|
||||
}
|
||||
@@ -230,8 +244,11 @@ export interface ITextareaWidget extends IBaseWidget<string, 'textarea'> {
|
||||
value: string
|
||||
}
|
||||
|
||||
export interface IAssetWidget
|
||||
extends IBaseWidget<string, 'asset', IWidgetOptions<string[]>> {
|
||||
export interface IAssetWidget extends IBaseWidget<
|
||||
string,
|
||||
'asset',
|
||||
IWidgetOptions<string[]>
|
||||
> {
|
||||
type: 'asset'
|
||||
value: string
|
||||
}
|
||||
|
||||
@@ -33,9 +33,9 @@ export interface WidgetEventOptions {
|
||||
canvas: LGraphCanvas
|
||||
}
|
||||
|
||||
export abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget>
|
||||
implements IBaseWidget
|
||||
{
|
||||
export abstract class BaseWidget<
|
||||
TWidget extends IBaseWidget = IBaseWidget
|
||||
> implements IBaseWidget {
|
||||
/** From node edge to widget edge */
|
||||
static margin = 15
|
||||
/** From widget edge to tip of arrow button */
|
||||
|
||||
Reference in New Issue
Block a user