UNPKG

969 BTypeScriptView Raw
1import { SimpleElement } from '@simple-dom/interface';
2import { Arguments } from '../runtime';
3import { Capabilities } from './capabilities';
4
5export interface ModifierCapabilitiesVersions {
6 '3.13': {
7 disableAutoTracking?: boolean;
8 };
9
10 // passes factoryFor(...).class to `.createModifier`
11 // uses args proxy, does not provide a way to opt-out
12 '3.22': {
13 disableAutoTracking?: boolean;
14 };
15}
16
17export interface ModifierCapabilities extends Capabilities {
18 disableAutoTracking: boolean;
19 useArgsProxy: boolean;
20 passFactoryToCreate: boolean;
21}
22
23export interface ModifierManager<ModifierStateBucket> {
24 capabilities: ModifierCapabilities;
25 createModifier(factory: unknown, args: Arguments): ModifierStateBucket;
26 installModifier(instance: ModifierStateBucket, element: Element, args: Arguments): void;
27 updateModifier(instance: ModifierStateBucket, args: Arguments): void;
28 destroyModifier(instance: ModifierStateBucket, args: Arguments): void;
29}