Reformat typescript/**/*.d.ts

pull/2587/head
Rob Pilling 2023-02-19 18:01:08 +00:00
parent 8a3c9a26e5
commit 12575cda34
4 changed files with 205 additions and 205 deletions

View File

@ -1,56 +1,56 @@
declare module ClockFace_ {
export class ClockFace {
constructor(options: Options | Draw);
export class ClockFace {
constructor(options: Options | Draw);
is12Hour: boolean;
paused: boolean;
showDate: boolean; // default true
loadWidgets: boolean; // default true
is12Hour: boolean;
paused: boolean;
showDate: boolean; // default true
loadWidgets: boolean; // default true
start(): void;
start(): void;
tick(): void;
pause(): void;
resume(): void;
remove(): void;
redraw(): void;
}
tick(): void;
pause(): void;
resume(): void;
remove(): void;
redraw(): void;
}
type Options = {
precision?: number, // seconds
type Options = {
precision?: number, // seconds
init?: () => void,
init?: () => void,
pause?: () => void,
resume?: () => void,
remove?: () => void,
pause?: () => void,
resume?: () => void,
remove?: () => void,
settingsFile?: string,
} & (
{
draw: Draw
} | {
update: Update,
} | {
draw: Draw,
update: Update,
}
) & (
{
up?: () => void,
down?: () => void,
} | {
upDown?: (dir: -1 | 1) => void,
}
);
settingsFile?: string,
} & (
{
draw: Draw
} | {
update: Update,
} | {
draw: Draw,
update: Update,
}
) & (
{
up?: () => void,
down?: () => void,
} | {
upDown?: (dir: -1 | 1) => void,
}
);
type Draw = (d: Date, changed: Changed<true>) => void;
type Update = (d: Date, changed: Changed) => void;
type Draw = (d: Date, changed: Changed<true>) => void;
type Update = (d: Date, changed: Changed) => void;
type Changed<T extends boolean = boolean> = {
d: T,
h: T,
m: T,
s: T,
}
type Changed<T extends boolean = boolean> = {
d: T,
h: T,
m: T,
s: T,
}
}

View File

@ -1,58 +1,58 @@
declare module ClockInfo {
function load(): Menu[];
function addInteractive(menu: Menu[], options: Options): InteractiveOptions;
function load(): Menu[];
function addInteractive(menu: Menu[], options: Options): InteractiveOptions;
type Menu = {
name: string,
img: string,
dynamic?: boolean,
items: MenuItem[],
};
type Menu = {
name: string,
img: string,
dynamic?: boolean,
items: MenuItem[],
};
type MenuItem = {
name: string,
show(): void,
hide(): void,
on(what: "redraw", cb: () => void): void, // extending from Object
run?(): void,
} & (
{
hasRange: true,
get(): RangeItem,
} | {
hasRange: false,
get(): Item,
}
);
type MenuItem = {
name: string,
show(): void,
hide(): void,
on(what: "redraw", cb: () => void): void, // extending from Object
run?(): void,
} & (
{
hasRange: true,
get(): RangeItem,
} | {
hasRange: false,
get(): Item,
}
);
type Item = {
text: string,
short?: string,
img?: string,
};
type Item = {
text: string,
short?: string,
img?: string,
};
type RangeItem =
Item & {
v: number,
min: number,
max: number,
};
type RangeItem =
Item & {
v: number,
min: number,
max: number,
};
type Options = {
x: number,
y: number,
w: number,
h: number,
draw(itm: MenuItem, info: Item, options: InteractiveOptions): void,
};
type Options = {
x: number,
y: number,
w: number,
h: number,
draw(itm: MenuItem, info: Item, options: InteractiveOptions): void,
};
type InteractiveOptions =
Options & {
index: number,
menuA: number,
menuB: number,
remove(): void,
redraw(): void,
focus: boolean,
};
type InteractiveOptions =
Options & {
index: number,
menuA: number,
menuB: number,
remove(): void,
redraw(): void,
focus: boolean,
};
}

View File

@ -1,125 +1,125 @@
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
type ExtractIds<T extends Layout_.Hierarchy, Depth extends Prev[number] = 9> =
[Depth] extends [never]
? never
: (T extends { id: infer Id extends string }
? { [k in Id]: T }
: never)
|
(
T extends { c: Array<infer Sub extends Layout_.Hierarchy> }
? ExtractIds<Sub, Prev[Depth]>
: never
);
[Depth] extends [never]
? never
: (T extends { id: infer Id extends string }
? { [k in Id]: T }
: never)
|
(
T extends { c: Array<infer Sub extends Layout_.Hierarchy> }
? ExtractIds<Sub, Prev[Depth]>
: never
);
declare module Layout_ {
type Layouter<T extends Hierarchy> =
ExtractIds<T>
&
{
// these actually change T
render(l?: T): void;
layout(l: T): void;
type Layouter<T extends Hierarchy> =
ExtractIds<T>
&
{
// these actually change T
render(l?: T): void;
layout(l: T): void;
debug(l?: T, c?: ColorResolvable): void;
update(): void; // changes layoutObject into a RenderedHierarchy
clear(obj?: T): void;
debug(l?: T, c?: ColorResolvable): void;
update(): void; // changes layoutObject into a RenderedHierarchy
clear(obj?: T): void;
forgetLazyState(): void;
forgetLazyState(): void;
setUI(): void;
};
setUI(): void;
};
var Layout: {
new <T extends Hierarchy>(
hier: T,
options?: {
lazy: boolean,
btns?: {
label: string,
cb: () => void,
cbl: () => void,
}[],
back?: () => void,
remove?: () => void,
},
): Layouter<T>;
};
var Layout: {
new <T extends Hierarchy>(
hier: T,
options?: {
lazy: boolean,
btns?: {
label: string,
cb: () => void,
cbl: () => void,
}[],
back?: () => void,
remove?: () => void,
},
): Layouter<T>;
};
export type Layout = typeof Layout;
export type Layout = typeof Layout;
type Image = string;
type Image = string;
type Fill = 0 | 1 | 2; // 0=no, 1=yes, 2=2x more space
type Fill = 0 | 1 | 2; // 0=no, 1=yes, 2=2x more space
type RenderedHierarchy =
Hierarchy & {
// top left position
x: number,
y: number,
// width and height
w: number,
h: number,
// minimum width and height
_w: number,
_h: number,
};
type RenderedHierarchy =
Hierarchy & {
// top left position
x: number,
y: number,
// width and height
w: number,
h: number,
// minimum width and height
_w: number,
_h: number,
};
type Hierarchy =
HierarchyParts & {
id?: string,
font?: FontNameWithScaleFactor,
scale?: number,
col?: ColorResolvable,
bgCol?: ColorResolvable,
pad?: number,
fillx?: Fill,
filly?: Fill,
width?: number,
height?: number,
} & (
{
r?: number, // 0: 0°, 1: 90°, 2: 180°, 3: 270°.
} | {
wrap?: boolean,
}
);
type Hierarchy =
HierarchyParts & {
id?: string,
font?: FontNameWithScaleFactor,
scale?: number,
col?: ColorResolvable,
bgCol?: ColorResolvable,
pad?: number,
fillx?: Fill,
filly?: Fill,
width?: number,
height?: number,
} & (
{
r?: number, // 0: 0°, 1: 90°, 2: 180°, 3: 270°.
} | {
wrap?: boolean,
}
);
type Align = -1 | 0 | 1;
type Align = -1 | 0 | 1;
type HierarchyParts =
{
type: "v",
c: Hierarchy[],
halign?: Align,
} | {
type: "h"
c: Hierarchy[],
valign?: Align,
} | {
type: "txt",
label: string,
font: FontNameWithScaleFactor,
} | {
type: undefined, // blank, for padding
} | (
{
type: "btn",
src: Image,
cb: () => void,
} | {
type: "btn",
cb: () => void,
label: string,
font?: FontNameWithScaleFactor,
scale?: number,
}
) | {
type: "img",
src: Image | (() => Image),
} | {
type: "custom",
render: (h: Hierarchy) => void,
};
type HierarchyParts =
{
type: "v",
c: Hierarchy[],
halign?: Align,
} | {
type: "h"
c: Hierarchy[],
valign?: Align,
} | {
type: "txt",
label: string,
font: FontNameWithScaleFactor,
} | {
type: undefined, // blank, for padding
} | (
{
type: "btn",
src: Image,
cb: () => void,
} | {
type: "btn",
cb: () => void,
label: string,
font?: FontNameWithScaleFactor,
scale?: number,
}
) | {
type: "img",
src: Image | (() => Image),
} | {
type: "custom",
render: (h: Hierarchy) => void,
};
}

View File

@ -54,7 +54,7 @@ type MenuOptions = {
type Menu = {
""?: MenuOptions;
[key: string]:
| MenuOptions // not actually an option here
| MenuOptions
| (() => void)
| MenuBooleanItem
| MenuNumberItem