nine-9 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +51 -48
- package/dist/index.js +309 -113
- package/dist/index.js.map +1 -1
- package/dist/test.js +308 -110
- package/dist/test.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,19 +17,9 @@ type KebabToCamel<S extends string> = S extends `${infer First}-${infer Rest}` ?
|
|
|
17
17
|
type ObjectToEntryUnion<T> = {
|
|
18
18
|
[K in keyof T]: [K, T[K]];
|
|
19
19
|
}[keyof T];
|
|
20
|
+
type PutIntoIterable<T> = T extends unknown[] ? T : [T];
|
|
20
21
|
declare function defineTemplate<T = void>(): T;
|
|
21
22
|
|
|
22
|
-
type Wrapper<T> = {
|
|
23
|
-
get(): T;
|
|
24
|
-
set(newData: T): void;
|
|
25
|
-
updateOnly(): void;
|
|
26
|
-
event: EventSubcriber<[T, T]>;
|
|
27
|
-
};
|
|
28
|
-
declare function normalizeWrap<T>(data: T | Wrapper<T>): Wrapper<T>;
|
|
29
|
-
declare function wrap<T>(initialData: T, wrapperOptions?: Partial<Wrapper<T>>): Wrapper<T>;
|
|
30
|
-
declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
|
|
31
|
-
declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
|
|
32
|
-
|
|
33
23
|
type StyleSet = {
|
|
34
24
|
[K in keyof CSSStyleDeclaration]: (data: string) => StyleSet;
|
|
35
25
|
} & {
|
|
@@ -41,15 +31,18 @@ type StyleSet = {
|
|
|
41
31
|
};
|
|
42
32
|
declare function styleSet(selector?: string): StyleSet;
|
|
43
33
|
|
|
44
|
-
type
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
type SupportedEventHandlerMap = {
|
|
51
|
-
[K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
|
|
34
|
+
type Wrapper<T> = {
|
|
35
|
+
get(): T;
|
|
36
|
+
set(newData: T): void;
|
|
37
|
+
updateOnly(): void;
|
|
38
|
+
event: EventSubcriber<[T, T]>;
|
|
52
39
|
};
|
|
40
|
+
declare function normalizeWrap<T>(data: T | Wrapper<T>): Wrapper<T>;
|
|
41
|
+
declare function wrap<T>(initialState: T, wrapperOptions?: Partial<Wrapper<T>>): Wrapper<T>;
|
|
42
|
+
|
|
43
|
+
declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
|
|
44
|
+
|
|
45
|
+
declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
|
|
53
46
|
|
|
54
47
|
interface HostTreeHooks {
|
|
55
48
|
treeUpdated: [newTrees: HostTree[], oldTrees: HostTree[]];
|
|
@@ -72,14 +65,27 @@ type HostTree<E extends SupportedHTMLElements = SupportedHTMLElements, T = HTMLE
|
|
|
72
65
|
};
|
|
73
66
|
declare function tree<E extends SupportedHTMLElements>(data: E | Node): HostTree<E, HTMLElementTagNameMap[E], SupportedHTMLRawAttributes[E]>;
|
|
74
67
|
|
|
68
|
+
type VueEventAttributes = keyof Events;
|
|
69
|
+
type HTMLEventName<V extends string> = V extends `on${infer R extends string}` ? Uncapitalize<R> : never;
|
|
70
|
+
type SupportedHTMLElements = keyof HTMLElementTagNameMap & keyof IntrinsicElementAttributes;
|
|
71
|
+
type SupportedHTMLRawAttributes = {
|
|
72
|
+
[K in SupportedHTMLElements]: Omit<IntrinsicElementAttributes[K], VueEventAttributes>;
|
|
73
|
+
};
|
|
74
|
+
type SupportedEventHandlerMap = {
|
|
75
|
+
[K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
|
|
76
|
+
};
|
|
77
|
+
|
|
75
78
|
declare function camelToHyphen<T extends string>(str: T): T;
|
|
76
79
|
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
77
80
|
|
|
78
81
|
declare function typedIsArray<T>(arr: unknown[]): arr is T[];
|
|
79
|
-
declare function putIntoArray<T>(data: T): T
|
|
82
|
+
declare function putIntoArray<T>(data: T): PutIntoIterable<T>;
|
|
80
83
|
declare function createArray<T>(length: number, filler: () => T): T[];
|
|
81
84
|
|
|
82
|
-
interface
|
|
85
|
+
interface PropertyTransformer<I, O> {
|
|
86
|
+
(data: I): O;
|
|
87
|
+
}
|
|
88
|
+
interface PropertyDescriptor<I = unknown, O = unknown, R extends boolean = boolean> {
|
|
83
89
|
validate?: (data: I) => boolean;
|
|
84
90
|
transform: PropertyTransformer<I, O>;
|
|
85
91
|
shadow?: O;
|
|
@@ -87,18 +93,18 @@ interface ComponentPropertyDescriptor<I = unknown, O = unknown, R extends boolea
|
|
|
87
93
|
downloadable?: boolean;
|
|
88
94
|
uploadable?: boolean;
|
|
89
95
|
}
|
|
90
|
-
type
|
|
91
|
-
[K in keyof P as P[K]["required"] extends true ? K : never]: P[K] extends
|
|
96
|
+
type PropertyInputDict<P extends ComponentPropertyStore> = {
|
|
97
|
+
[K in keyof P as P[K]["required"] extends true ? K : never]: P[K] extends PropertyDescriptor<unknown, infer R> ? R | Wrapper<R> : never;
|
|
92
98
|
} & {
|
|
93
|
-
[K in keyof P as P[K]["required"] extends false | unknown ? K : never]?: P[K] extends
|
|
99
|
+
[K in keyof P as P[K]["required"] extends false | unknown ? K : never]?: P[K] extends PropertyDescriptor<unknown, infer R> ? R | Wrapper<R> | EmptyValue : never;
|
|
94
100
|
};
|
|
95
|
-
type
|
|
96
|
-
[K in keyof P]: P[K] extends
|
|
101
|
+
type PropertyOutputDict<P extends ComponentPropertyStore> = {
|
|
102
|
+
[K in keyof P]: P[K] extends PropertyDescriptor<unknown, infer R> ? Wrapper<R> : never;
|
|
97
103
|
};
|
|
98
|
-
declare function
|
|
99
|
-
declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor:
|
|
104
|
+
declare function typed<T>(): PropertyTransformer<unknown, T>;
|
|
105
|
+
declare function normalizePropertyDescriptor<I, O, R extends boolean>(descriptor: PropertyDescriptor<I, O, R>): Required<PropertyDescriptor<I, O, R>>;
|
|
100
106
|
declare function validateStore(store: ComponentPropertyStore): void;
|
|
101
|
-
declare function hostdown<T extends ComponentPropertyStore>(upstream?:
|
|
107
|
+
declare function hostdown<T extends ComponentPropertyStore>(upstream?: PropertyInputDict<T>, store?: T): PropertyOutputDict<T>;
|
|
102
108
|
|
|
103
109
|
type SlotDescriptor<T = unknown, N extends string = string, R extends boolean = boolean> = {
|
|
104
110
|
name: N;
|
|
@@ -110,14 +116,14 @@ interface SlotOptions<T, R extends boolean> {
|
|
|
110
116
|
}
|
|
111
117
|
type SlotInput<T> = (data: Wrapper<T>) => SourceTree | Wrapper<SourceTree>;
|
|
112
118
|
type SlotOutput<T> = (data: T | Wrapper<T>) => Wrapper<SourceTree>;
|
|
113
|
-
type
|
|
119
|
+
type SlotInputDict<T extends ComponentSlotStore> = {
|
|
114
120
|
[K in T[number] as K["name"]]?: SlotInput<K["template"]>;
|
|
115
121
|
};
|
|
116
|
-
type
|
|
122
|
+
type SlotOutputDict<T extends ComponentSlotStore> = {
|
|
117
123
|
[K in T[number] as K["name"]]-?: SlotOutput<K["template"]>;
|
|
118
124
|
};
|
|
119
|
-
declare function
|
|
120
|
-
declare function renderSlots<T extends ComponentSlotStore>(rawInput?:
|
|
125
|
+
declare function normalizeRenderer<T>(render: SlotInput<T>): SlotOutput<T>;
|
|
126
|
+
declare function renderSlots<T extends ComponentSlotStore>(rawInput?: SlotInputDict<T>, store?: T): SlotOutputDict<T>;
|
|
121
127
|
declare function defineSlot<N extends string, R extends boolean, T>(name: N, options: SlotOptions<T, R>): {
|
|
122
128
|
template: T;
|
|
123
129
|
required?: R | undefined;
|
|
@@ -135,16 +141,13 @@ interface EventOptions<T> {
|
|
|
135
141
|
declare function defineEvent<T, N extends string>(name: N, options?: EventOptions<T>): EventDescriptor<T, N>;
|
|
136
142
|
|
|
137
143
|
interface ComponentRenderEntry<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
138
|
-
(props?:
|
|
144
|
+
(props?: PropertyInputDict<P>, slot?: SlotInputDict<S>): ComponentInstance<E>;
|
|
139
145
|
}
|
|
140
146
|
interface ComponentInternalRender<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
141
|
-
(options:
|
|
147
|
+
(options: PropertyOutputDict<P>, slot: SlotOutputDict<S>, emit: <D extends E[number], K extends D["name"]>(key: K, data: D extends infer R extends EventDescriptor ? R["name"] extends K ? R["template"] : never : never) => void): SourceTree;
|
|
142
148
|
}
|
|
143
149
|
type Component<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> = ComponentRenderEntry<P, E, S> & ComponentOption<P, E, S>;
|
|
144
|
-
|
|
145
|
-
(data: I): O;
|
|
146
|
-
}
|
|
147
|
-
type ComponentPropertyStore = Record<string, ComponentPropertyDescriptor>;
|
|
150
|
+
type ComponentPropertyStore = Record<string, PropertyDescriptor>;
|
|
148
151
|
type ComponentEventStore = EventDescriptor[];
|
|
149
152
|
type ComponentSlotStore = SlotDescriptor[];
|
|
150
153
|
interface ComponentOption<P extends ComponentPropertyStore, E extends ComponentEventStore, S extends ComponentSlotStore> {
|
|
@@ -193,13 +196,7 @@ declare const _default: {
|
|
|
193
196
|
downloadable: true;
|
|
194
197
|
uploadable: true;
|
|
195
198
|
};
|
|
196
|
-
}, (EventDescriptor<
|
|
197
|
-
arg1: number;
|
|
198
|
-
arg2: boolean;
|
|
199
|
-
}, "up"> | EventDescriptor<{
|
|
200
|
-
arg3: string;
|
|
201
|
-
arg4: symbol;
|
|
202
|
-
}, "down">)[]>;
|
|
199
|
+
}, (EventDescriptor<string, "up"> | EventDescriptor<number, "down">)[], SlotDescriptor[]>;
|
|
203
200
|
Selector: Component<{
|
|
204
201
|
items: {
|
|
205
202
|
transform: PropertyTransformer<unknown, string[]>;
|
|
@@ -210,7 +207,13 @@ declare const _default: {
|
|
|
210
207
|
uploadable: true;
|
|
211
208
|
required: true;
|
|
212
209
|
};
|
|
213
|
-
}, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[]
|
|
210
|
+
}, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[], {
|
|
211
|
+
template: string;
|
|
212
|
+
required?: boolean | undefined;
|
|
213
|
+
defaultValue?: SourceTree;
|
|
214
|
+
name: "title";
|
|
215
|
+
}[]>;
|
|
216
|
+
ObjectWatcher: Component<ComponentPropertyStore, EventDescriptor[], SlotDescriptor[]>;
|
|
214
217
|
};
|
|
215
218
|
|
|
216
|
-
export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type
|
|
219
|
+
export { $, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyStore, type ComponentRenderEntry, type ComponentSlotStore, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, type HostTree, type HostTreeHookStore, type HostTreeHooks, type KebabToCamel, type Normalize, type ObjectToEntryUnion, type PropertyDescriptor, type PropertyInputDict, type PropertyOutputDict, type PropertyTransformer, type PutIntoIterable, type RawSourceTree, type SlotDescriptor, type SlotInput, type SlotInputDict, type SlotOptions, type SlotOutput, type SlotOutputDict, type SourceTree, type StyleSet, type SupportedEventHandlerMap, type SupportedHTMLElements, type SupportedHTMLRawAttributes, type Valueof, type Wrapper, index as assets, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, _default as examples, flagment, hostdown, hyphenToCamel, normalizePropertyDescriptor, normalizeRenderer, normalizeWrap, putIntoArray, render, renderSlots, styleSet, sync, tree, typed, typedIsArray, validateStore, when, wrap };
|