nine-9 1.11.3 → 1.14.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 +95 -47
- package/dist/index.js +1 -1
- package/package.json +44 -44
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,13 @@ interface SubcriberCallback<T extends unknown[], R> {
|
|
|
4
4
|
(...data: T): R;
|
|
5
5
|
}
|
|
6
6
|
declare class EventSubcriber<T extends unknown[], R = void> {
|
|
7
|
+
parent?: EventSubcriber<T, R>;
|
|
8
|
+
bubbleable: boolean;
|
|
7
9
|
private subcribers;
|
|
8
10
|
private emitting;
|
|
11
|
+
constructor(config?: {
|
|
12
|
+
bubbleable?: boolean;
|
|
13
|
+
}, parent?: EventSubcriber<T, R>);
|
|
9
14
|
subcribe(callback: SubcriberCallback<T, R>, once?: boolean): void;
|
|
10
15
|
emit(...data: T): R[] | void;
|
|
11
16
|
}
|
|
@@ -42,7 +47,42 @@ declare function wrap<T>(initialState: T, wrapperOptions?: Partial<Wrapper<T>>):
|
|
|
42
47
|
|
|
43
48
|
declare function sync<R>(effectRenderer: () => R, dependencies?: unknown[]): Wrapper<R>;
|
|
44
49
|
|
|
45
|
-
declare function when(condition: Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[]): Wrapper<SourceTree[]>;
|
|
50
|
+
declare function when(condition: boolean | Wrapper<boolean> | (() => boolean), tree: () => SourceTree, dependencies?: unknown[], elseTree?: () => SourceTree): Wrapper<SourceTree[]>;
|
|
51
|
+
|
|
52
|
+
interface RevokeOldDataMethod<T> {
|
|
53
|
+
(oldState: T): void;
|
|
54
|
+
}
|
|
55
|
+
interface ValidateMethod<T> {
|
|
56
|
+
(data: unknown): data is T;
|
|
57
|
+
}
|
|
58
|
+
interface StructWatcher<T> {
|
|
59
|
+
validate: ValidateMethod<T>;
|
|
60
|
+
duplicate(data: T): T;
|
|
61
|
+
patch(data: T, snapshot: (currentState: T) => T, update: (newState: T) => void, wrapper: Wrapper<T>): {
|
|
62
|
+
data: T;
|
|
63
|
+
revoke: RevokeOldDataMethod<T>;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
declare function defineWatcher<T>(watcher: StructWatcher<T>): StructWatcher<T>;
|
|
67
|
+
|
|
68
|
+
declare const arrayModifiableActions: string[];
|
|
69
|
+
declare const _default$2: StructWatcher<any[]>;
|
|
70
|
+
|
|
71
|
+
declare const array_arrayModifiableActions: typeof arrayModifiableActions;
|
|
72
|
+
declare namespace array {
|
|
73
|
+
export { array_arrayModifiableActions as arrayModifiableActions, _default$2 as default };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
declare const _default$1: StructWatcher<Record<PropertyKey, unknown>>;
|
|
77
|
+
|
|
78
|
+
declare namespace object {
|
|
79
|
+
export { _default$1 as default };
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
declare const _default: {
|
|
83
|
+
array: typeof array;
|
|
84
|
+
object: typeof object;
|
|
85
|
+
};
|
|
46
86
|
|
|
47
87
|
interface HostTreeHooks {
|
|
48
88
|
treeUpdated: [newTrees: HostTree[], oldTrees: HostTree[]];
|
|
@@ -51,17 +91,29 @@ interface HostTreeHooks {
|
|
|
51
91
|
$preventEvent: [ObjectToEntryUnion<SupportedEventHandlerMap>, boolean | void];
|
|
52
92
|
}
|
|
53
93
|
type HostTreeHookStore = {
|
|
54
|
-
[K in keyof HostTreeHooks as K extends `$${infer R}` ? R : K]: K extends `$${string}` ? HostTreeHooks[K] extends [infer E extends unknown[], infer R] ? EventSubcriber<E, R> : EventSubcriber<HostTreeHooks[K]> : EventSubcriber<HostTreeHooks[K]>;
|
|
94
|
+
readonly [K in keyof HostTreeHooks as K extends `$${infer R}` ? R : K]: K extends `$${string}` ? HostTreeHooks[K] extends [infer E extends unknown[], infer R] ? EventSubcriber<E, R> : EventSubcriber<HostTreeHooks[K]> : EventSubcriber<HostTreeHooks[K]>;
|
|
95
|
+
};
|
|
96
|
+
interface HostTreeAddEventListener<E extends SupportedHTMLElements> {
|
|
97
|
+
<K extends keyof SupportedEventHandlerMap>(key: K, handler: SupportedEventHandlerMap[K], options?: AddEventListenerOptions): HostTree<E>;
|
|
98
|
+
(key: string, handler: (...args: unknown[]) => unknown, options?: AddEventListenerOptions): HostTree<E>;
|
|
99
|
+
}
|
|
100
|
+
type HostTreeOnMethod<E extends SupportedHTMLElements> = HostTreeAddEventListener<E> & {
|
|
101
|
+
prevent: HostTreeAddEventListener<E> & {
|
|
102
|
+
stop: HostTreeAddEventListener<E>;
|
|
103
|
+
};
|
|
104
|
+
stop: HostTreeAddEventListener<E> & {
|
|
105
|
+
prevent: HostTreeAddEventListener<E>;
|
|
106
|
+
};
|
|
55
107
|
};
|
|
56
108
|
type HostTree<E extends SupportedHTMLElements = SupportedHTMLElements, T = HTMLElementTagNameMap[E], A = SupportedHTMLRawAttributes[E]> = {
|
|
57
109
|
[K in string & keyof A as KebabToCamel<K>]-?: (data: A[K] | Wrapper<A[K]>) => HostTree<E>;
|
|
58
110
|
} & {
|
|
59
|
-
element: T;
|
|
60
|
-
hooks: HostTreeHookStore;
|
|
111
|
+
readonly element: T;
|
|
112
|
+
readonly hooks: HostTreeHookStore;
|
|
61
113
|
append(...children: (RawSourceTree | HostTree | RawSourceTree[] | HostTree[] | (RawSourceTree | HostTree)[] | Wrapper<HostTree> | Wrapper<RawSourceTree> | Wrapper<RawSourceTree | HostTree> | Wrapper<(RawSourceTree | HostTree)[]> | Wrapper<RawSourceTree | RawSourceTree[]>)[]): HostTree<E>;
|
|
62
114
|
use(styleSet: StyleSet | Wrapper<StyleSet>): HostTree<E>;
|
|
63
|
-
|
|
64
|
-
on
|
|
115
|
+
data(datasets: Record<string, string | Wrapper<string>>): HostTree<E>;
|
|
116
|
+
on: HostTreeOnMethod<E>;
|
|
65
117
|
};
|
|
66
118
|
declare function tree<E extends SupportedHTMLElements>(data: E | Node): HostTree<E, HTMLElementTagNameMap[E], SupportedHTMLRawAttributes[E]>;
|
|
67
119
|
|
|
@@ -75,13 +127,15 @@ type SupportedEventHandlerMap = {
|
|
|
75
127
|
[K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
|
|
76
128
|
};
|
|
77
129
|
|
|
78
|
-
declare function camelToHyphen<T extends string>(str: T): T;
|
|
79
|
-
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
80
|
-
|
|
81
130
|
declare function typedIsArray<T>(arr: unknown[]): arr is T[];
|
|
82
131
|
declare function putIntoArray<T>(data: T): PutIntoIterable<T>;
|
|
83
132
|
declare function createArray<T>(length: number, filler: () => T): T[];
|
|
84
133
|
|
|
134
|
+
declare function camelToHyphen<T extends string>(str: T): T;
|
|
135
|
+
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
136
|
+
|
|
137
|
+
declare function duplicateObject<T>(target: T, duplicator?: (data: unknown) => boolean, hash?: WeakMap<WeakKey, any>): T;
|
|
138
|
+
|
|
85
139
|
interface PropertyTransformer<I, O> {
|
|
86
140
|
(data: I): O;
|
|
87
141
|
}
|
|
@@ -155,6 +209,7 @@ interface ComponentOption<P extends ComponentPropertyStore, E extends ComponentE
|
|
|
155
209
|
events?: E;
|
|
156
210
|
styles?: StyleSet[];
|
|
157
211
|
slots?: S;
|
|
212
|
+
uuid?: string;
|
|
158
213
|
}
|
|
159
214
|
type ComponentInstance<E extends ComponentEventStore = ComponentEventStore> = {
|
|
160
215
|
mount(to: string | HTMLElement): void;
|
|
@@ -177,47 +232,40 @@ declare function flagment<T extends string>(uuid: T): `nine_${string}`;
|
|
|
177
232
|
declare function attachUUID(root: Node, uuid: string): Node;
|
|
178
233
|
declare function createComponent<P extends ComponentPropertyStore, E extends EventDescriptor, S extends SlotDescriptor>(options: ComponentOption<P, E[], S[]>, internalRenderer: ComponentInternalRender<P, E[], S[]>): Component<P, E[], S[]>;
|
|
179
234
|
|
|
180
|
-
|
|
235
|
+
type FlagMap<T> = {
|
|
236
|
+
[K in typeof HOST_TREE]: HostTree;
|
|
237
|
+
} & {
|
|
238
|
+
[K in typeof COMPONENT_INSTANCE]: ComponentInstance;
|
|
239
|
+
} & {
|
|
240
|
+
[K in typeof WRAPPER]: Wrapper<T>;
|
|
241
|
+
};
|
|
242
|
+
declare const HOST_TREE: unique symbol;
|
|
243
|
+
declare const COMPONENT_INSTANCE: unique symbol;
|
|
244
|
+
declare const WRAPPER: unique symbol;
|
|
245
|
+
declare function attachFlag<T extends object, F extends keyof FlagMap<unknown>>(data: T, flag: F): T & { [K in F]: true; };
|
|
246
|
+
declare function matchFlag<T, K extends keyof FlagMap<T>>(data: unknown, flag: K): data is FlagMap<T>[K];
|
|
247
|
+
|
|
248
|
+
declare class ValidationFailed extends Error {
|
|
249
|
+
}
|
|
250
|
+
declare class MissingError extends Error {
|
|
251
|
+
}
|
|
252
|
+
declare class ConflictionError extends Error {
|
|
253
|
+
}
|
|
254
|
+
declare class AccessError extends Error {
|
|
255
|
+
}
|
|
256
|
+
declare class BrokenRendererError extends Error {
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
declare namespace _9 {
|
|
181
260
|
export { };
|
|
182
261
|
}
|
|
183
262
|
|
|
184
|
-
declare
|
|
185
|
-
|
|
186
|
-
export { index_logo as logo };
|
|
263
|
+
declare namespace Nine_9 {
|
|
264
|
+
export { };
|
|
187
265
|
}
|
|
188
266
|
|
|
189
|
-
declare
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
validate: (number: unknown) => boolean;
|
|
193
|
-
transform: NumberConstructor;
|
|
194
|
-
required: false;
|
|
195
|
-
shadow: number;
|
|
196
|
-
downloadable: true;
|
|
197
|
-
uploadable: true;
|
|
198
|
-
};
|
|
199
|
-
}, (EventDescriptor<string, "up"> | EventDescriptor<number, "down">)[], SlotDescriptor[]>;
|
|
200
|
-
Selector: Component<{
|
|
201
|
-
items: {
|
|
202
|
-
validate: (arg: any) => arg is any[];
|
|
203
|
-
transform: PropertyTransformer<unknown, string[]>;
|
|
204
|
-
required: true;
|
|
205
|
-
shadow: string[];
|
|
206
|
-
downloadable: true;
|
|
207
|
-
uploadable: false;
|
|
208
|
-
};
|
|
209
|
-
value: {
|
|
210
|
-
transform: NumberConstructor;
|
|
211
|
-
uploadable: true;
|
|
212
|
-
required: true;
|
|
213
|
-
};
|
|
214
|
-
}, (EventDescriptor<number, "select"> | EventDescriptor<boolean, "toggleState">)[], {
|
|
215
|
-
template: string;
|
|
216
|
-
required?: boolean | undefined;
|
|
217
|
-
defaultValue?: SourceTree;
|
|
218
|
-
name: "title";
|
|
219
|
-
}[]>;
|
|
220
|
-
ObjectWatcher: Component<ComponentPropertyStore, EventDescriptor[], SlotDescriptor[]>;
|
|
221
|
-
};
|
|
267
|
+
declare namespace index {
|
|
268
|
+
export { _9 as logo, Nine_9 as logoTitle };
|
|
269
|
+
}
|
|
222
270
|
|
|
223
|
-
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,
|
|
271
|
+
export { $, AccessError, BrokenRendererError, COMPONENT_INSTANCE, type Component, type ComponentEventStore, type ComponentInstance, type ComponentInternalRender, type ComponentOption, type ComponentPropertyStore, type ComponentRenderEntry, type ComponentSlotStore, ConflictionError, type EmptyValue, type EventDescriptor, type EventOptions, EventSubcriber, HOST_TREE, type HostTree, type HostTreeAddEventListener, type HostTreeHookStore, type HostTreeHooks, type HostTreeOnMethod, type KebabToCamel, MissingError, type Normalize, type ObjectToEntryUnion, type PropertyDescriptor, type PropertyInputDict, type PropertyOutputDict, type PropertyTransformer, type PutIntoIterable, type RawSourceTree, type RevokeOldDataMethod, type SlotDescriptor, type SlotInput, type SlotInputDict, type SlotOptions, type SlotOutput, type SlotOutputDict, type SourceTree, type StructWatcher, type StyleSet, type SupportedEventHandlerMap, type SupportedHTMLElements, type SupportedHTMLRawAttributes, type ValidateMethod, ValidationFailed, type Valueof, WRAPPER, type Wrapper, index as assets, attachFlag, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, defineWatcher, duplicateObject, flagment, hostdown, hyphenToCamel, matchFlag, normalizePropertyDescriptor, normalizeRenderer, normalizeWrap, putIntoArray, render, renderSlots, _default as structWatchers, styleSet, sync, tree, typed, typedIsArray, validateStore, when, wrap };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var V=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var U=(e,t)=>{for(var n in t)V(e,n,{get:t[n],enumerable:!0})},de=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ue(t))!ce.call(e,s)&&s!==n&&V(e,s,{get:()=>t[s],enumerable:!(r=le(t,s))||r.enumerable});return e};var fe=e=>de(V({},"__esModule",{value:!0}),e);var ve={};U(ve,{$:()=>F,EventSubcriber:()=>v,assets:()=>ee,attachUUID:()=>j,camelToHyphen:()=>P,createArray:()=>z,createComponent:()=>h,defineEvent:()=>R,defineSlot:()=>Q,defineTemplate:()=>g,examples:()=>ie,flagment:()=>X,hostdown:()=>G,hyphenToCamel:()=>me,normalizePropertyDescriptor:()=>$,normalizeRenderer:()=>oe,normalizeWrap:()=>N,putIntoArray:()=>q,render:()=>D,renderSlots:()=>Z,styleSet:()=>w,sync:()=>b,tree:()=>l,typed:()=>B,typedIsArray:()=>Te,validateStore:()=>J,when:()=>W,wrap:()=>E});module.exports=fe(ve);var v=class{subcribers=[];emitting=!1;subcribe(t,n=!1){this.subcribers.push({callback:t,once:n})}emit(...t){if(this.emitting)return;this.emitting=!0;let n=[];for(let r of this.subcribers)n.push(r.callback(...t));return this.emitting=!1,n}};function P(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function me(e){return e.replace(/-([a-z])/g,t=>t[1].toUpperCase())}function g(){return null}function Te(e){return Array.isArray(e)}function q(e){return[...Array.isArray(e)?e:[e]]}function z(e,t){return new Array(Math.max(e,0)).fill(0).map(t)}function w(e){let t={},n=new Proxy({rules:t,selector:e,apply(r){let s=document.createElement("style");document.head.appendChild(s),s.textContent=`${this.selectorString(r)}{${this.ruleString()}}`},ruleString(){return Object.entries(t).map(([r,s])=>`${P(String(r))}:${s};`).join("")},selectorString(r){return(this.selector||"")+(r||"")||"*"}},{get(r,s,o){return Reflect.has(r,s)?Reflect.get(r,s,o):p=>(t[s]=String(p),n)}});return n}var K=Symbol("HostTreeFlag"),_=Symbol("ComponentInstanceFlag"),S=Symbol("WrapperFlag");function k(e,t){return Object.assign(e,{[t]:!0})}function f(e,t){return e!=null&&typeof e=="object"&&Object.hasOwn(e,t)&&e[t]===!0}function l(e){let t=typeof e=="string"?document.createElement(e):e,n={treeUpdated:new v,attributeUpdated:new v,initialized:new v,preventEvent:new v},r=new Proxy(k({element:t,hooks:n,append(...s){for(let o of s)if(f(o,S)){let p=[],a=new Comment("Tree anchor");t.appendChild(a);let i=u=>{let c=[...Array.isArray(u)?u:[u]].reverse(),m=[];for(let x of c){let d=D(x);m.push(d),t.insertBefore(d.element,a.nextSibling)}for(let x of p)x.element.remove();n.treeUpdated.emit(m,p),p=m};o.event.subcribe(i),i(o.get())}else{let p=o;for(let a of q(p))t.appendChild(D(a).element)}return r},use(s){if(t instanceof HTMLElement){let o=p=>{for(let[a,i]of Object.entries(p))t.style.setProperty(P(String(a)),i)};f(s,S)?(s.event.subcribe(p=>o(p.rules)),o(s.get().rules)):o(s.rules)}return r},on(s,o,p){return t instanceof EventTarget&&t.addEventListener(s,a=>{let i=n.preventEvent.emit(s,o);i&&!i.some(Boolean)&&o(a)},p),r}},K),{get(s,o,p){return Reflect.has(s,o)?Reflect.get(s,o,p):a=>{let i=(u,c)=>{Object.hasOwn(t,o)&&(t[o]=u),t instanceof Element&&t.setAttribute(P(o),String(u)),n.attributeUpdated.emit(o,u,c)};return f(a,S)?(a.event.subcribe(i),i(a.get(),a.get())):i(a,a),r}}});return Promise.resolve().then(()=>n.initialized.emit(r)),r}var A=class extends Error{},C=class extends Error{},M=class extends Error{},O=class extends Error{},I=class extends Error{};var Se=[Array.prototype.push,Array.prototype.pop,Array.prototype.shift,Array.prototype.unshift,Array.prototype.splice,Array.prototype.sort,Array.prototype.reverse,Array.prototype.fill,Array.prototype.copyWithin].map(e=>e.name),te={validate:Array.isArray,duplicate:e=>[...e],patch(e,t,n){let{proxy:r,revoke:s}=Proxy.revocable(e,{get(o,p,a){if(Se.includes(p)){let i=Reflect.get(o,p,a);return typeof i=="function"?(...u)=>{t(o);let c=i.call(o,...u);return n(o),c}:Reflect.get(o,p,a)}else return Reflect.get(o,p,a)},set(o,p,a,i){if(Reflect.get(o,p,i)!==a){t(o);let c=Reflect.set(o,p,a,i);return n(o),c}return Reflect.set(o,p,a,i)}});return{data:r,revoke:s}}};function H(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){let r=new Map;return t.set(e,r),e.forEach((s,o)=>{r.set(H(o,t),H(s,t))}),r}if(e instanceof Set){let r=new Set;return t.set(e,r),e.forEach(s=>{r.add(H(s,t))}),r}let n=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return t.set(e,n),Reflect.ownKeys(e).forEach(r=>{n[r]=H(e[r],t)}),typeof e=="function"?e:n}var re={validate(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)},duplicate:H,patch(e,t,n){let{proxy:r,revoke:s}=Proxy.revocable(e,{set(o,p,a,i){if(Reflect.get(o,p,i)!==a){t(o);let c=Reflect.set(o,p,a,i);return n(o),c}return Reflect.set(o,p,a,i)},deleteProperty(o,p){if(Reflect.has(o,p)){t(o);let a=Reflect.deleteProperty(o,p);return n(o),a}return Reflect.deleteProperty(o,p)},defineProperty(o,p,a){let i=Reflect.getOwnPropertyDescriptor(o,p);if(!i||"value"in a&&i.value!==a.value||"get"in a&&i.get!==a.get||"set"in a&&i.set!==a.set||"enumerable"in a&&i.enumerable!==a.enumerable||"configurable"in a&&i.configurable!==a.configurable||"writable"in a&&i.writable!==a.writable){t(o);let c=Reflect.defineProperty(o,p,a);return n(o),c}return Reflect.defineProperty(o,p,a)}});return{data:r,revoke:s}}};var ne=[te,re];function N(e){return f(e,S)?e:E(e)}function E(e,t){let n=new v,r=i=>{let u=null,c=null;for(let m of ne)if(m.validate(e)){u=m;break}if(u){let m=null,{data:x,revoke:d}=u.patch(i,T=>(u&&(m=u.duplicate(T)),m),T=>{if(!m)throw new O("StructWatcher updated a new data before snapshotting.");s.event.emit(T,m)},s);return c=d,{data:x,tryRevokeOld:(T,y)=>{if(u.validate(y)&&c)return y=u.duplicate(y),c(y),[r(T).data,y,!0];{let{data:L}=r(T);return[L,y,!0]}}}}else return{data:i,tryRevokeOld:(m,x)=>[m,x,!1]}},s=k({get(){return p},set(i){if(p!==i){let[u,c]=a(i,p);p=u,this.event.emit(u,c)}},updateOnly(){this.event.emit(this.get(),this.get())},event:n},S),o=r(e),p=o.data,a=o.tryRevokeOld;return{...s,...t??{}}}function b(e,t=[]){let n=E(e()),r=()=>{let s=e();n.get()!==s&&n.set(s)};for(let s of t)f(s,S)&&s.event.subcribe(r);return n}function W(e,t,n=[]){return b(()=>{let r;return typeof e=="function"?r=e():r=e.get(),[r?t():null]},[...n,...f(e,S)?[e]:[]])}function B(){return e=>e}function $(e){return Object.assign({validate:()=>!0,transform:t=>t,shadow:null,required:!1,downloadable:!0,uploadable:!1},e)}function J(e){for(let t in e){let n=e[t];if(n.shadow){if(n.required)throw new M(`The required property ${t} can't have a shadow.`);if(n.validate&&!n.validate(n.shadow))throw new A(`The shadow of ${t} can't pass the validation.`)}}}function G(e,t){e||(e={});let n={};for(let r in t){let s=$(t[r]),o=a=>{if(f(n[r],S))n[r].set(a);else{let i=E(a);n[r]=i,i.event.subcribe(u=>{if(!(!f(e[r],S)||!f(n[r],S))&&n[r].get()!==e[r].get()){if(!s.uploadable)throw new O(`Property ${r} isn't uploadable but being set.`);e[r].set(u)}})}},p=(a,i)=>{if(!i&&!s.downloadable){console.warn(`Property ${r} isn't downloadable but being emitted.`);return}if(!s.validate(a))throw new A(`The input value of ${r} can't pass the validation.`);o(s.transform(a))};if(!Object.hasOwn(e,r)){if(s.required)throw new C(`Missing a required property ${r}.`);o(s.shadow);continue}f(e[r],S)?(e[r].event.subcribe(a=>p(a,!1)),p(e[r].get(),!0)):p(e[r],!0)}return n}function oe(e){return t=>N(e(N(t)))}function Z(e,t){if(!t)return{};let n=e;return Object.fromEntries(t.map(r=>{if(r.required&&(!n||!Object.hasOwn(n,r.name)))throw new C(`Missing a required slot ${r.name}.`);return n?[r.name,oe(n[r.name])]:[r.name,()=>null]}))}function Q(e,t){return{name:e,...t}}function R(e,t){return{name:e,...t??{}}}function D(e){let t;if(e instanceof Node)t=l(e);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")t=l(new Text(String(e)));else if(f(e,_))t=e.$;else if(e==null)t=l(new Comment("Empty tree context"));else if(f(e,K))t=e;else throw new I(`Failed to render ${e} into a Node.`);return t}function F(e){return e}function X(e){return`nine_${e.replaceAll("-","_")}`}function j(e,t){for(let n of[e,...e.childNodes])n instanceof HTMLElement&&(n.dataset[X(t)]="true"),n!==e&&n.childNodes.length>0&&j(n,t);return e}function h(e,t){J(e.props??{});let n=Object.fromEntries(Object.entries(e.props??{}).map(([p,a])=>[p,$(a)])),r=crypto.randomUUID(),s=X(r);if(e.styles)for(let p of e.styles)p.apply(`[data-${s}="true"]`);return Object.assign((p,a)=>{let i=!1,u=[],c=()=>{i&&(u.forEach(([d,T,y])=>x.element.dispatchEvent(new CustomEvent(d,{detail:T,bubbles:y.bubbleable,cancelable:!1}))),u=[])},m=t(G(p,n),Z(a,e.slots),(d,T)=>{let y=e.events?.find(L=>L.name===d);if(!y)throw new TypeError(`No events named ${d} to emit.`);u.push([d,T,y]),c()}),x=D(m);return j(x.element,r),x.hooks.treeUpdated.subcribe(d=>d.forEach(T=>j(T.element,r))),i=!0,c(),k({mount(d){let T=typeof d=="string"?[...document.querySelectorAll(d)]:[d];for(let y of T)y.appendChild(x.element)},on(d,T){return x.on(d,y=>y instanceof CustomEvent?T(y.detail):null),this},$:x},_)},{props:n,events:e.events})}var ee={};U(ee,{logo:()=>Y});var Y={};U(Y,{default:()=>be});var be='data:image/svg+xml,<svg width="337" height="395" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="hidden"><defs><filter id="fx0" x="-10%" y="-10%" width="120%" height="120%" filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="discrete" tableValues="1 1"/><feFuncG type="discrete" tableValues="0.752941 0.752941"/><feFuncB type="discrete" tableValues="0 0"/><feFuncA type="linear" slope="0.4" intercept="0"/></feComponentTransfer><feGaussianBlur stdDeviation="0 0"/></filter><clipPath id="clip1"><rect x="119" y="90" width="93" height="142"/></clipPath></defs><g transform="translate(-119 -128)"><g clip-path="url(%23clip1)" filter="url(%23fx0)" transform="translate(125 135)"><g><path d="M37.352-111.688C33.9173-107.395 32.2-101.261 32.2-93.288 32.2-85.4373 33.9173-79.5493 37.352-75.624 40.7867-71.6987 45.5093-69.736 51.52-69.736 60.5973-69.736 68.08-74.6427 73.968-84.456 71.76-107.027 63.9707-118.312 50.6-118.312 45.3253-118.312 40.9093-116.104 37.352-111.688ZM84.088-16.008C74.0293-3.61867 61.5787 2.576 46.736 2.576 32.016 2.576 21.5893-0.797334 15.456-7.544 13.3707-9.26133 11.96-8.34133 11.224-4.784 10.12-10.1813 11.96-15.5787 16.744-20.976 21.528-26.496 25.944-27.4773 29.992-23.92 31.832-20.976 36.9227-19.504 45.264-19.504 53.6053-19.504 60.352-23.0613 65.504-30.176 70.7787-37.4133 73.4773-45.8773 73.6-55.568 73.8453-58.6347 75.1333-60.1067 77.464-59.984 75.3787-63.4187 72.128-63.296 67.712-59.616 63.4187-56.0587 58.7573-53.2987 53.728-51.336 53.6053-50.7227 51.152-50.416 46.368-50.416 34.592-50.416 25.1467-54.0347 18.032-61.272 10.9173-68.632 7.36-79.1813 7.36-92.92 7.36-106.781 11.4693-117.883 19.688-126.224 28.0293-134.565 38.2107-138.736 50.232-138.736 64.216-138.736 75.8693-133.032 85.192-121.624 94.5147-110.339 99.176-93.0427 99.176-69.736 99.176-46.4293 94.1467-28.52 84.088-16.008Z" fill="%23ED7D31" transform="translate(111.796 229)"/></g></g><text fill="%23ED7D31" font-family="Swei Fist Sans CJK JP,Swei Fist Sans CJK JP_MSFontService,sans-serif" font-weight="700" font-size="184" transform="translate(229.799 357)">9</text></g></svg>';var ae=h({props:{value:{validate:Number.isInteger,transform:Number,required:!1,shadow:0,downloadable:!0,uploadable:!0}},events:[R("up",{template:g(),bubbleable:!0}),R("down",{template:g(),bubbleable:!0})]},(e,t,n)=>{let r=b(()=>e.value.get()*2,[e.value]);return r.event.subcribe(console.log),n("down",0),n("up",""),l("div").use(w().fontSize("20px").padding("10px")).append("\u6572\u6728\u9C7C",l("br"),l("button").on("click",()=>e.value.set(e.value.get()+1)).append("\u70B9\u51FB\u52A0\u4E00"),l("button").on("click",()=>e.value.set(e.value.get()-1)).append("\u70B9\u51FB\u51CF\u4E00"),l("br"),"\u5F53\u524D\u503C\uFF1A",e.value,"\u53CC\u500D\u503C\uFF1A",r,b(()=>z(r.get(),()=>l("div").append("\u4F60\u70B9\u4E86\u4E00\u4E0B")),[r]),W(()=>e.value.get()>10,()=>l("p").append("count > 10 \u65F6\u663E\u793A"),[e.value]))});var pe=h({props:{items:{validate:Array.isArray,transform:B(),required:!0,shadow:["OptionA","OptionB","OptionC"],downloadable:!0,uploadable:!1},value:{transform:Number,uploadable:!0,required:!0}},events:[R("select",{template:g()}),R("toggleState",{template:g()})],styles:[w(".item").backgroundColor("blue").color("white"),w(".flexdown").display("flex").flexDirection("column")],slots:[Q("title",{template:g(),required:!1})]},(e,t,n)=>{let r=E(!1),s=b(()=>e.items.get()[e.value.get()],[e.items,e.value]),o=p=>{e.value.set(p),r.set(!1),n("select",e.value.get())};return r.event.subcribe(p=>{n("toggleState",p)}),l("div").class("flexdown").ariaAtomic("false").append(l("span").class("item").use(w().backgroundColor("red")).append(l("div").append(s),t.title(s)).on("click",()=>r.set(!r.get())),W(r,()=>l("div").class("flexdown").append(b(()=>e.items.get().map((p,a)=>l("span").class("item").append(p).on("click",()=>o(a))),[e.items]))))});var se=h({},()=>{let e=E({count:0,label:"hello",enabled:!0}),t=b(()=>JSON.stringify(e.get()),[e]),n=b(()=>Object.keys(e.get()).join(", "),[e]),r=()=>{e.get().count+=1},s=()=>{e.get().enabled=!e.get().enabled},o=()=>{e.get().label=`label-${e.get().count}`},p=()=>{delete e.get().label},a=()=>{Object.defineProperty(e.get(),"extra",{value:`extra-${Date.now()}`,configurable:!0,enumerable:!0,writable:!0})};return l("div").use(w().padding("10px").border("1px solid #ddd").fontFamily("monospace")).append(l("h3").append("Object Watcher Test"),l("div").append("keys: ",n),l("div").append("json: ",t),l("div").use(w().display("flex").gap("6px").marginTop("8px").flexWrap("wrap")).append(l("button").append("count++").on("click",r),l("button").append("toggle enabled").on("click",s),l("button").append("rename label").on("click",o),l("button").append("delete label").on("click",p),l("button").append("define extra").on("click",a)))});var ie={Counter:ae,Selector:pe,ObjectWatcher:se};window.__ENV_9__?.mode==="development"&&console.warn("[Nine-9] Initialized in development mode.");0&&(module.exports={$,EventSubcriber,assets,attachUUID,camelToHyphen,createArray,createComponent,defineEvent,defineSlot,defineTemplate,examples,flagment,hostdown,hyphenToCamel,normalizePropertyDescriptor,normalizeRenderer,normalizeWrap,putIntoArray,render,renderSlots,styleSet,sync,tree,typed,typedIsArray,validateStore,when,wrap});
|
|
1
|
+
"use strict";var F=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var R=(e,t)=>{for(var r in t)F(e,r,{get:t[r],enumerable:!0})},oe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of re(t))!ne.call(e,o)&&o!==r&&F(e,o,{get:()=>t[o],enumerable:!(n=te(t,o))||n.enumerable});return e};var se=e=>oe(F({},"__esModule",{value:!0}),e);var we={};R(we,{$:()=>ye,AccessError:()=>C,BrokenRendererError:()=>W,COMPONENT_INSTANCE:()=>D,ConflictionError:()=>O,EventSubcriber:()=>b,HOST_TREE:()=>h,MissingError:()=>w,ValidationFailed:()=>g,WRAPPER:()=>m,assets:()=>J,attachFlag:()=>L,attachUUID:()=>N,camelToHyphen:()=>E,createArray:()=>ae,createComponent:()=>xe,defineEvent:()=>Se,defineSlot:()=>Te,defineTemplate:()=>le,defineWatcher:()=>$,duplicateObject:()=>v,flagment:()=>B,hostdown:()=>z,hyphenToCamel:()=>ie,matchFlag:()=>f,normalizePropertyDescriptor:()=>I,normalizeRenderer:()=>Y,normalizeWrap:()=>A,putIntoArray:()=>j,render:()=>k,renderSlots:()=>_,structWatchers:()=>K,styleSet:()=>ue,sync:()=>Z,tree:()=>M,typed:()=>me,typedIsArray:()=>pe,validateStore:()=>q,when:()=>de,wrap:()=>P});module.exports=se(we);var b=class{parent;bubbleable;subcribers=[];emitting=!1;constructor(t,r){this.parent=r,this.bubbleable=t?.bubbleable??!1}subcribe(t,r=!1){this.subcribers.push({callback:t,once:r})}emit(...t){if(this.emitting)return;this.emitting=!0;let r=[];for(let n of this.subcribers)r.push(n.callback(...t));return this.bubbleable&&this.parent&&this.parent.emit(...t),this.emitting=!1,r}};var h=Symbol("HostTreeFlag"),D=Symbol("ComponentInstanceFlag"),m=Symbol("WrapperFlag");function L(e,t){return Object.assign(e,{[t]:!0})}function f(e,t){return e!=null&&typeof e=="object"&&Object.hasOwn(e,t)&&e[t]===!0}function pe(e){return Array.isArray(e)}function j(e){return[...Array.isArray(e)?e:[e]]}function ae(e,t){return new Array(Math.max(e,0)).fill(0).map(t)}function E(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function ie(e){return e.replace(/-([a-z])/g,t=>t[1].toUpperCase())}function v(e,t,r=new WeakMap){if(t&&typeof t=="function"&&!t(e)||e===null||typeof e!="object")return e;if(r.has(e))return r.get(e);if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){let o=new Map;return r.set(e,o),e.forEach((p,a)=>{o.set(v(a,t,r),v(p,t,r))}),o}if(e instanceof Set){let o=new Set;return r.set(e,o),e.forEach(p=>{o.add(v(p,t,r))}),o}let n=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return r.set(e,n),Reflect.ownKeys(e).forEach(o=>{n[o]=v(e[o],t,r)}),typeof e=="function"?e:n}function le(){return null}function ue(e){let t={},r=new Proxy({rules:t,selector:e,apply(n){let o=document.createElement("style");document.head.appendChild(o),o.textContent=`${this.selectorString(n)}{${this.ruleString()}}`},ruleString(){return Object.entries(t).map(([n,o])=>`${E(String(n))}:${o};`).join("")},selectorString(n){return(this.selector||"")+(n||"")||"*"}},{get(n,o,p){return Reflect.has(n,o)?Reflect.get(n,o,p):a=>(t[o]=String(a),r)}});return r}function H(e,t,r,n,o){return(p,a,s)=>(e instanceof EventTarget&&e.addEventListener(p,i=>{if(i instanceof CustomEvent)return;r&&i.preventDefault(),n&&i.stopPropagation();let l=o.preventEvent.emit(p,a);l&&!l.some(Boolean)&&a(i)},s),t)}function M(e){let t=typeof e=="string"?document.createElement(e):e,r={treeUpdated:new b({bubbleable:!0}),attributeUpdated:new b,initialized:new b,preventEvent:new b},n=new Proxy(L({element:t,hooks:r,append(...o){for(let p of o)if(f(p,m)){let a=[],s=new Comment("Tree anchor");t.appendChild(s);let i=l=>{let u=[...Array.isArray(l)?l:[l]].reverse(),S=[];for(let d of u){let c=k(d);c.hooks.treeUpdated.parent=r.treeUpdated,S.push(c),t.insertBefore(c.element,s.nextSibling)}for(let d of a)d.element.remove();r.treeUpdated.emit(S,a),a=S};p.event.subcribe(i),i(p.get())}else{let a=p,s=[];for(let i of j(a)){let l=f(i,h)?i:k(i);l.hooks.treeUpdated.parent=r.treeUpdated,t.appendChild(l.element),s.push(l)}r.treeUpdated.emit(s,[])}return n},use(o){if(t instanceof HTMLElement){let p=a=>{for(let[s,i]of Object.entries(a))t.style.setProperty(E(String(s)),i)};f(o,m)?(o.event.subcribe(a=>p(a.rules)),p(o.get().rules)):p(o.rules)}return n},data(o){if(t instanceof HTMLElement){for(let[p,a]of Object.entries(o)){let s=i=>t.dataset[p]=i;f(a,m)?(a.event.subcribe(s),s(a.get())):s(a)}return n}}},h),{get(o,p,a){return Reflect.has(o,p)?Reflect.get(o,p,a):s=>{let i=(l,u)=>{t[p]=l,t instanceof Element&&t.setAttribute(E(p),String(l)),r.attributeUpdated.emit(p,l,u)};return f(s,m)?(s.event.subcribe(i),i(s.get(),s.get())):i(s,s),n}}});return n.on=Object.assign(H(t,n,!1,!1,r),{stop:Object.assign(H(t,n,!1,!0,r),{prevent:H(t,n,!0,!0,r)}),prevent:Object.assign(H(t,n,!0,!1,r),{stop:H(t,n,!0,!0,r)})}),Promise.resolve().then(()=>r.initialized.emit(n)),n}var g=class extends Error{},w=class extends Error{},O=class extends Error{},C=class extends Error{},W=class extends Error{};var U={};R(U,{arrayModifiableActions:()=>X,default:()=>ce});function $(e){return e}var X=["push","pop","shift","unshift","splice","sort","reverse","fill"],ce={validate:Array.isArray,duplicate:e=>[...e],patch(e,t,r){let{proxy:n,revoke:o}=Proxy.revocable(e,{get(p,a,s){if(X.includes(a)){let i=Reflect.get(p,a,s);return typeof i=="function"?(...l)=>{t(p);let u=i.call(p,...l);return r(p),u}:Reflect.get(p,a,s)}else return Reflect.get(p,a,s)},set(p,a,s,i){if(Reflect.get(p,a,i)!==s){t(p);let u=Reflect.set(p,a,s,i);return r(p),u}return Reflect.set(p,a,s,i)}});return{data:n,revoke:o}}};var V={};R(V,{default:()=>fe});var fe={validate(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)},duplicate:e=>v(e,t=>!f(t,m)),patch(e,t,r){let{proxy:n,revoke:o}=Proxy.revocable(e,{set(p,a,s,i){if(Reflect.get(p,a,i)!==s){t(p);let u=Reflect.set(p,a,s,i);return r(p),u}return Reflect.set(p,a,s,i)},deleteProperty(p,a){if(Reflect.has(p,a)){t(p);let s=Reflect.deleteProperty(p,a);return r(p),s}return Reflect.deleteProperty(p,a)},defineProperty(p,a,s){let i=Reflect.getOwnPropertyDescriptor(p,a);if(!i||"value"in s&&i.value!==s.value||"get"in s&&i.get!==s.get||"set"in s&&i.set!==s.set||"enumerable"in s&&i.enumerable!==s.enumerable||"configurable"in s&&i.configurable!==s.configurable||"writable"in s&&i.writable!==s.writable){t(p);let u=Reflect.defineProperty(p,a,s);return r(p),u}return Reflect.defineProperty(p,a,s)}});return{data:n,revoke:o}}};var K={array:U,object:V};function A(e){return f(e,m)?e:P(e)}function P(e,t){let r=new b,n=(l,u)=>{try{return l(u)}catch(S){console.warn("Failed to validate data:",S)}},o=l=>{let u=null,S=null;for(let d of Object.values(K).map(c=>c.default))if(n(d.validate,e)){u=d;break}if(u){let d=null,{data:c,revoke:y}=u.patch(l,T=>(u&&(d=u.duplicate(T)),d),T=>{if(!d)throw new C("StructWatcher updated a new data before snapshotting.");p.event.emit(T,d)},p);return S=y,{data:c,tryRevokeOld:(T,x)=>{if(n(u.validate,x)&&S)return x=u.duplicate(x),S(x),[o(T).data,x,!0];{let{data:ee}=o(T);return[ee,x,!0]}}}}else return{data:l,tryRevokeOld:(d,c)=>[d,c,!1]}},p=L({get(){return s},set(l){if(s!==l){let[u,S]=i(l,s);s=u,this.event.emit(u,S)}},updateOnly(){this.event.emit(this.get(),this.get())},event:r},m),a=o(e),s=a.data,i=a.tryRevokeOld;return{...p,...t??{}}}function Z(e,t=[]){let r=P(e()),n=()=>{let o=e();r.get()!==o&&r.set(o)};for(let o of t)f(o,m)&&o.event.subcribe(n);return r}function de(e,t,r=[],n=()=>null){return Z(()=>{let o;return typeof e=="function"?o=e():typeof e=="boolean"?o=e:o=e.get(),[o?t():n()]},[...r,...f(e,m)?[e]:[]])}function me(){return e=>e}function I(e){return Object.assign({validate:()=>!0,transform:t=>t,shadow:null,required:!1,downloadable:!0,uploadable:!1},e)}function q(e){for(let t in e){let r=e[t];if(r.shadow){if(r.required)throw new O(`The required property ${t} can't have a shadow.`);if(r.validate&&!r.validate(r.shadow))throw new g(`The shadow of ${t} can't pass the validation.`)}}}function z(e,t){e||(e={});let r={};for(let n in t){let o=I(t[n]),p=s=>{if(f(r[n],m))r[n].set(s);else{let i=P(s);r[n]=i,i.event.subcribe(l=>{!f(e[n],m)||!f(r[n],m)||r[n].get()!==e[n].get()&&o.uploadable&&e[n].set(l)})}},a=(s,i)=>{if(!i&&!o.downloadable){console.warn(`Property ${n} isn't downloadable but being emitted.`);return}if(!o.validate(s))throw new g(`The input value of ${n} can't pass the validation.`);p(o.transform(s))};if(!Object.hasOwn(e,n)){if(o.required)throw new w(`Missing a required property ${n}.`);p(o.shadow);continue}f(e[n],m)?(e[n].event.subcribe(s=>a(s,!1)),a(e[n].get(),!0)):a(e[n],!0)}return r}function Y(e){return t=>A(e(A(t)))}function _(e,t){if(!t)return{};let r=e;return Object.fromEntries(t.map(n=>{if(n.required&&(!r||!Object.hasOwn(r,n.name)))throw new w(`Missing a required slot ${n.name}.`);return!r||!r[n.name]?[n.name,()=>null]:[n.name,Y(r[n.name])]}))}function Te(e,t){return{name:e,...t}}function Se(e,t){return{name:e,...t??{}}}function k(e){let t;if(e instanceof Node)t=M(e);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")t=M(new Text(String(e)));else if(f(e,D))t=e.$;else if(e==null)t=M(new Comment("Empty tree context"));else if(f(e,h))t=e;else throw new W(`Failed to render ${e} into a Node.`);return t}function ye(e){return e}function B(e){return`nine_${e.replaceAll("-","_")}`}function N(e,t){for(let r of[e,...e.childNodes])r instanceof HTMLElement&&(r.dataset[B(t)]="true"),r!==e&&r.childNodes.length>0&&N(r,t);return e}function xe(e,t){q(e.props??{});let r=Object.fromEntries(Object.entries(e.props??{}).map(([a,s])=>[a,I(s)])),n=E(e.uuid||crypto.randomUUID()),o=B(n);if(e.styles)for(let a of e.styles)a.apply(`[data-${o}="true"]`);return Object.assign((a,s)=>{let i=!1,l=[],u=()=>{if(i)for(;l.length>0;){let c=l.shift();if(!c)return;let[y,T,x]=c;d.element.dispatchEvent(new CustomEvent(y,{detail:T,bubbles:x.bubbleable,cancelable:!1}))}},S=t(z(a,r),_(s,e.slots),(c,y)=>{let T=e.events?.find(x=>x.name===c);if(!T)throw new TypeError(`No events named ${c} to emit.`);l.push([c,y,T]),u()}),d=k(S);return N(d.element,n),d.hooks.treeUpdated.subcribe(c=>{for(let y of c)N(y.element,n)}),i=!0,u(),L({mount(c){let y=typeof c=="string"?[...document.querySelectorAll(c)]:[c];for(let T of y)T.appendChild(d.element)},on(c,y){return d.element.addEventListener(c,T=>T instanceof CustomEvent?y(T.detail):null),this},$:d},D)},{props:r,events:e.events})}var J={};R(J,{logo:()=>Q,logoTitle:()=>G});var Q={};R(Q,{default:()=>Ee});var Ee='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="17" viewBox="0 0 20 17"><g><path d="M4.4589844,10.628906L0.38085938,8.0917969L0.38085938,7.125L4.4589844,4.4941406L4.4589844,5.8769531L1.4179688,7.5585938L4.4589844,9.2929688L4.4589844,10.628906ZM9.7089844,12L9.7089844,10.447266L10.681641,10.447266L10.681641,5.7773438L9.7089844,5.7773438L9.7089844,4.2246094L11.71875,4.2246094L13.271484,5.7773438L13.271484,10.447266L11.71875,12L9.7089844,12ZM7.3125,9.09375L5.7539062,7.5351562L5.7539062,5.7773438L7.3125,4.2246094L9.3105469,4.2246094L9.3105469,5.7773438L8.34375,5.7773438L8.34375,7.5351562L10.283203,7.5351562L10.283203,9.09375L7.3125,9.09375ZM7.3125,12L5.7539062,10.447266L5.7539062,9.9257812L8.34375,9.9257812L8.34375,10.447266L9.3105469,10.447266L9.3105469,12L7.3125,12ZM18.703125,8.0917969L14.613281,10.628906L14.613281,9.2988281L17.660156,7.5644531L14.613281,5.8769531L14.613281,4.4941406L18.703125,7.125L18.703125,8.0917969Z" fill="%23FF7700" fill-opacity="1"/></g></svg>';var G={};R(G,{default:()=>ve});var ve='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="51" height="17" viewBox="0 0 51 17"><g><path d="M4.4589844,10.628906L0.38085938,8.0917969L0.38085938,7.125L4.4589844,4.4941406L4.4589844,5.8769531L1.4179688,7.5585938L4.4589844,9.2929688L4.4589844,10.628906Z" fill="%23FF9232" fill-opacity="1"/><path d="M10.517578,12L5.8066406,4.2246094L8.5429688,4.2246094L13.271484,12L10.517578,12ZM13.271484,11.261719L11.015625,7.546875L11.015625,4.2246094L13.271484,4.2246094L13.271484,11.261719ZM5.8066406,12L5.8066406,4.9628906L8.0625,8.6601562L8.0625,12L5.8066406,12ZM14.513672,5.0039062L14.513672,3.3515625L17.109375,3.3515625L17.109375,5.0039062L14.513672,5.0039062ZM14.513672,12L14.513672,5.7773438L17.109375,5.7773438L17.109375,12L14.513672,12ZM22.482422,12L22.482422,7.3300781L21.369141,7.3300781L21.369141,6.6503906L22.236328,5.7773438L23.677734,5.7773438L25.078125,7.1777344L25.078125,12L22.482422,12ZM18.333984,12L18.333984,5.7773438L20.947266,5.7773438L20.947266,12L18.333984,12ZM27.779297,12L26.226562,10.447266L26.226562,7.3300781L27.779297,5.7773438L28.816406,5.7773438L28.816406,12L27.779297,12ZM29.226562,9.5039062L29.226562,8.4199219L30.591797,8.4199219L30.591797,7.3300781L29.226562,7.3300781L29.226562,5.7773438L31.423828,5.7773438L32.976562,7.3300781L32.976562,9.5039062L29.226562,9.5039062ZM29.226562,12L29.226562,10.546875L32.707031,10.546875L32.707031,11.220703L31.933594,12L29.226562,12ZM41.162109,12L41.162109,10.447266L42.134766,10.447266L42.134766,5.7773438L41.162109,5.7773438L41.162109,4.2246094L43.171875,4.2246094L44.724609,5.7773438L44.724609,10.447266L43.171875,12L41.162109,12ZM38.765625,9.09375L37.207031,7.5351562L37.207031,5.7773438L38.765625,4.2246094L40.763672,4.2246094L40.763672,5.7773438L39.796875,5.7773438L39.796875,7.5351562L41.736328,7.5351562L41.736328,9.09375L38.765625,9.09375ZM38.765625,12L37.207031,10.447266L37.207031,9.9257812L39.796875,9.9257812L39.796875,10.447266L40.763672,10.447266L40.763672,12L38.765625,12Z" fill="%23FF7700" fill-opacity="1"/><path d="M50.15625,8.0917969L46.066406,10.628906L46.066406,9.2988281L49.113281,7.5644531L46.066406,5.8769531L46.066406,4.4941406L50.15625,7.125L50.15625,8.0917969Z" fill="%23FF9232" fill-opacity="1"/></g></svg>';window.__ENV_9__?.mode==="development"&&console.warn("[Nine-9] Initialized in development mode.");0&&(module.exports={$,AccessError,BrokenRendererError,COMPONENT_INSTANCE,ConflictionError,EventSubcriber,HOST_TREE,MissingError,ValidationFailed,WRAPPER,assets,attachFlag,attachUUID,camelToHyphen,createArray,createComponent,defineEvent,defineSlot,defineTemplate,defineWatcher,duplicateObject,flagment,hostdown,hyphenToCamel,matchFlag,normalizePropertyDescriptor,normalizeRenderer,normalizeWrap,putIntoArray,render,renderSlots,structWatchers,styleSet,sync,tree,typed,typedIsArray,validateStore,when,wrap});
|
package/package.json
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "nine-9",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "一个轻量、高性能、类型安全的 Vanilla DOM 响应式 UI 框架。",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist"
|
|
9
|
-
],
|
|
10
|
-
"readme": "readme.md",
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "https://github.com/Rundll86/nine.git"
|
|
14
|
-
},
|
|
15
|
-
"homepage": "https://github.com/Rundll86/nine#readme",
|
|
16
|
-
"keywords": [
|
|
17
|
-
"ui",
|
|
18
|
-
"framework",
|
|
19
|
-
"vanilla",
|
|
20
|
-
"reactive"
|
|
21
|
-
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"dev": "tsup --watch --env.NODE_ENV development",
|
|
24
|
-
"build": "tsup --env.NODE_ENV production",
|
|
25
|
-
"lint": "run-s lint:*",
|
|
26
|
-
"lint:es": "eslint . --fix",
|
|
27
|
-
"lint:type": "tsc --noEmit",
|
|
28
|
-
"prepublishOnly": "run-s build"
|
|
29
|
-
},
|
|
30
|
-
"license": "MIT",
|
|
31
|
-
"packageManager": "pnpm@10.28.2",
|
|
32
|
-
"devDependencies": {
|
|
33
|
-
"@eslint/js": "^10.0.1",
|
|
34
|
-
"@
|
|
35
|
-
"@vue/runtime-dom": "^3.5.29",
|
|
36
|
-
"cross-env": "^10.1.0",
|
|
37
|
-
"eslint": "^10.0.2",
|
|
38
|
-
"globals": "^17.3.0",
|
|
39
|
-
"jiti": "^2.6.1",
|
|
40
|
-
"npm-run-all": "^4.1.5",
|
|
41
|
-
"tsup": "^8.5.1",
|
|
42
|
-
"typescript": "^5.9.3",
|
|
43
|
-
"typescript-eslint": "^8.56.1"
|
|
44
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "nine-9",
|
|
3
|
+
"version": "1.14.0",
|
|
4
|
+
"description": "一个轻量、高性能、类型安全的 Vanilla DOM 响应式 UI 框架。",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"readme": "readme.md",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/Rundll86/nine.git"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/Rundll86/nine#readme",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ui",
|
|
18
|
+
"framework",
|
|
19
|
+
"vanilla",
|
|
20
|
+
"reactive"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"dev": "tsup --watch --env.NODE_ENV development",
|
|
24
|
+
"build": "tsup --env.NODE_ENV production",
|
|
25
|
+
"lint": "run-s lint:*",
|
|
26
|
+
"lint:es": "eslint . --fix",
|
|
27
|
+
"lint:type": "tsc --noEmit",
|
|
28
|
+
"prepublishOnly": "run-s build"
|
|
29
|
+
},
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"packageManager": "pnpm@10.28.2",
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@eslint/js": "^10.0.1",
|
|
34
|
+
"@types/node": "^25.3.3",
|
|
35
|
+
"@vue/runtime-dom": "^3.5.29",
|
|
36
|
+
"cross-env": "^10.1.0",
|
|
37
|
+
"eslint": "^10.0.2",
|
|
38
|
+
"globals": "^17.3.0",
|
|
39
|
+
"jiti": "^2.6.1",
|
|
40
|
+
"npm-run-all": "^4.1.5",
|
|
41
|
+
"tsup": "^8.5.1",
|
|
42
|
+
"typescript": "^5.9.3",
|
|
43
|
+
"typescript-eslint": "^8.56.1"
|
|
44
|
+
}
|
|
45
45
|
}
|