nine-9 1.11.2 → 1.12.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/README.md +7 -7
- package/dist/index.d.ts +61 -48
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
一个轻量、高性能、类型安全的 Vanilla DOM 响应式 UI 框架。
|
|
4
4
|
|
|
5
5
|
融合了 Vue 模板指令和 React Hooks 的优点,取两者之长。
|
|
6
|
-
|
|
6
|
+
同时运行及其轻量,甚至打包后🉑以用于 **UserScript**。
|
|
7
7
|
|
|
8
8
|
## 特性
|
|
9
9
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
- **轻量级** - 无依赖,打包后体积小巧
|
|
14
14
|
- **链式 API** - 流畅的 DOM 操作
|
|
15
15
|
- **Vue 风格指令** - 熟悉的 v-if、v-for 模式
|
|
16
|
-
- **JSX 风格表达式** -
|
|
16
|
+
- **JSX 风格表达式** - 响应式表达式🉑以放在模板任意位置
|
|
17
17
|
- **数据同步系统** - 使用完全基于表达式的语法实现数据实时响应
|
|
18
18
|
|
|
19
19
|
## 安装
|
|
@@ -48,8 +48,8 @@ export default createComponent({
|
|
|
48
48
|
transform: typed<string[]>(), //将输入的参数进行标准化,typed()函数不进行任何处理,只是类型投射
|
|
49
49
|
required: true, //参数是否必填
|
|
50
50
|
shadow: ["OptionA", "OptionB", "OptionC"], //默认值
|
|
51
|
-
downloadable: true,
|
|
52
|
-
uploadable: false
|
|
51
|
+
downloadable: true, //是否🉑下载,即上游组件向下游传递值
|
|
52
|
+
uploadable: false //是否🉑上传,即下游组件向上游传递值
|
|
53
53
|
},
|
|
54
54
|
value: {
|
|
55
55
|
transform: Number,
|
|
@@ -108,7 +108,7 @@ export default createComponent({
|
|
|
108
108
|
tree("div")
|
|
109
109
|
.class("flexdown")
|
|
110
110
|
.append(
|
|
111
|
-
$(sync(() =>
|
|
111
|
+
$(sync(() => //只要包装器返回的数据🉑以被渲染,就🉑以通过$函数进行引用
|
|
112
112
|
props.items.get().map((label, index) =>
|
|
113
113
|
tree("span")
|
|
114
114
|
.class("item")
|
|
@@ -143,9 +143,9 @@ export default createComponent({
|
|
|
143
143
|
|
|
144
144
|
欢迎提交Issue和Pull Request!
|
|
145
145
|
|
|
146
|
-
##
|
|
146
|
+
## 许🉑证
|
|
147
147
|
|
|
148
|
-
本项目采用 MIT
|
|
148
|
+
本项目采用 MIT 许🉑证 - 详见 [LICENSE](LICENSE) 文件
|
|
149
149
|
|
|
150
150
|
## 联系方式
|
|
151
151
|
|
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,7 @@ 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[]): Wrapper<SourceTree[]>;
|
|
46
51
|
|
|
47
52
|
interface HostTreeHooks {
|
|
48
53
|
treeUpdated: [newTrees: HostTree[], oldTrees: HostTree[]];
|
|
@@ -51,17 +56,29 @@ interface HostTreeHooks {
|
|
|
51
56
|
$preventEvent: [ObjectToEntryUnion<SupportedEventHandlerMap>, boolean | void];
|
|
52
57
|
}
|
|
53
58
|
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]>;
|
|
59
|
+
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]>;
|
|
60
|
+
};
|
|
61
|
+
interface HostTreeAddEventListener<E extends SupportedHTMLElements> {
|
|
62
|
+
<K extends keyof SupportedEventHandlerMap>(key: K, handler: SupportedEventHandlerMap[K], options?: AddEventListenerOptions): HostTree<E>;
|
|
63
|
+
(key: string, handler: (...args: unknown[]) => unknown, options?: AddEventListenerOptions): HostTree<E>;
|
|
64
|
+
}
|
|
65
|
+
type HostTreeOnMethod<E extends SupportedHTMLElements> = HostTreeAddEventListener<E> & {
|
|
66
|
+
prevent: HostTreeAddEventListener<E> & {
|
|
67
|
+
stop: HostTreeAddEventListener<E>;
|
|
68
|
+
};
|
|
69
|
+
stop: HostTreeAddEventListener<E> & {
|
|
70
|
+
prevent: HostTreeAddEventListener<E>;
|
|
71
|
+
};
|
|
55
72
|
};
|
|
56
73
|
type HostTree<E extends SupportedHTMLElements = SupportedHTMLElements, T = HTMLElementTagNameMap[E], A = SupportedHTMLRawAttributes[E]> = {
|
|
57
74
|
[K in string & keyof A as KebabToCamel<K>]-?: (data: A[K] | Wrapper<A[K]>) => HostTree<E>;
|
|
58
75
|
} & {
|
|
59
|
-
element: T;
|
|
60
|
-
hooks: HostTreeHookStore;
|
|
76
|
+
readonly element: T;
|
|
77
|
+
readonly hooks: HostTreeHookStore;
|
|
61
78
|
append(...children: (RawSourceTree | HostTree | RawSourceTree[] | HostTree[] | (RawSourceTree | HostTree)[] | Wrapper<HostTree> | Wrapper<RawSourceTree> | Wrapper<RawSourceTree | HostTree> | Wrapper<(RawSourceTree | HostTree)[]> | Wrapper<RawSourceTree | RawSourceTree[]>)[]): HostTree<E>;
|
|
62
79
|
use(styleSet: StyleSet | Wrapper<StyleSet>): HostTree<E>;
|
|
63
|
-
|
|
64
|
-
on
|
|
80
|
+
data(datasets: Record<string, string | Wrapper<string>>): HostTree<E>;
|
|
81
|
+
on: HostTreeOnMethod<E>;
|
|
65
82
|
};
|
|
66
83
|
declare function tree<E extends SupportedHTMLElements>(data: E | Node): HostTree<E, HTMLElementTagNameMap[E], SupportedHTMLRawAttributes[E]>;
|
|
67
84
|
|
|
@@ -75,13 +92,15 @@ type SupportedEventHandlerMap = {
|
|
|
75
92
|
[K in VueEventAttributes as HTMLEventName<K>]: (event: Events[K]) => void;
|
|
76
93
|
};
|
|
77
94
|
|
|
78
|
-
declare function camelToHyphen<T extends string>(str: T): T;
|
|
79
|
-
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
80
|
-
|
|
81
95
|
declare function typedIsArray<T>(arr: unknown[]): arr is T[];
|
|
82
96
|
declare function putIntoArray<T>(data: T): PutIntoIterable<T>;
|
|
83
97
|
declare function createArray<T>(length: number, filler: () => T): T[];
|
|
84
98
|
|
|
99
|
+
declare function camelToHyphen<T extends string>(str: T): T;
|
|
100
|
+
declare function hyphenToCamel<T extends string>(str: T): T;
|
|
101
|
+
|
|
102
|
+
declare function duplicateObject<T>(target: T, hash?: WeakMap<WeakKey, any>): T;
|
|
103
|
+
|
|
85
104
|
interface PropertyTransformer<I, O> {
|
|
86
105
|
(data: I): O;
|
|
87
106
|
}
|
|
@@ -155,6 +174,7 @@ interface ComponentOption<P extends ComponentPropertyStore, E extends ComponentE
|
|
|
155
174
|
events?: E;
|
|
156
175
|
styles?: StyleSet[];
|
|
157
176
|
slots?: S;
|
|
177
|
+
uuid?: string;
|
|
158
178
|
}
|
|
159
179
|
type ComponentInstance<E extends ComponentEventStore = ComponentEventStore> = {
|
|
160
180
|
mount(to: string | HTMLElement): void;
|
|
@@ -177,47 +197,40 @@ declare function flagment<T extends string>(uuid: T): `nine_${string}`;
|
|
|
177
197
|
declare function attachUUID(root: Node, uuid: string): Node;
|
|
178
198
|
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
199
|
|
|
180
|
-
|
|
200
|
+
type FlagMap<T> = {
|
|
201
|
+
[K in typeof HOST_TREE]: HostTree;
|
|
202
|
+
} & {
|
|
203
|
+
[K in typeof COMPONENT_INSTANCE]: ComponentInstance;
|
|
204
|
+
} & {
|
|
205
|
+
[K in typeof WRAPPER]: Wrapper<T>;
|
|
206
|
+
};
|
|
207
|
+
declare const HOST_TREE: unique symbol;
|
|
208
|
+
declare const COMPONENT_INSTANCE: unique symbol;
|
|
209
|
+
declare const WRAPPER: unique symbol;
|
|
210
|
+
declare function attachFlag<T extends object, F extends keyof FlagMap<unknown>>(data: T, flag: F): T & { [K in F]: true; };
|
|
211
|
+
declare function matchFlag<T, K extends keyof FlagMap<T>>(data: unknown, flag: K): data is FlagMap<T>[K];
|
|
212
|
+
|
|
213
|
+
declare class ValidationFailed extends Error {
|
|
214
|
+
}
|
|
215
|
+
declare class MissingError extends Error {
|
|
216
|
+
}
|
|
217
|
+
declare class ConflictionError extends Error {
|
|
218
|
+
}
|
|
219
|
+
declare class AccessError extends Error {
|
|
220
|
+
}
|
|
221
|
+
declare class BrokenRendererError extends Error {
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
declare namespace _9 {
|
|
225
|
+
export { };
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
declare namespace Nine_9 {
|
|
181
229
|
export { };
|
|
182
230
|
}
|
|
183
231
|
|
|
184
|
-
declare const index_logo: typeof logo;
|
|
185
232
|
declare namespace index {
|
|
186
|
-
export {
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
declare const _default: {
|
|
190
|
-
Counter: Component<{
|
|
191
|
-
value: {
|
|
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
|
-
};
|
|
233
|
+
export { _9 as logo, Nine_9 as logoTitle };
|
|
234
|
+
}
|
|
222
235
|
|
|
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,
|
|
236
|
+
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 SlotDescriptor, type SlotInput, type SlotInputDict, type SlotOptions, type SlotOutput, type SlotOutputDict, type SourceTree, type StyleSet, type SupportedEventHandlerMap, type SupportedHTMLElements, type SupportedHTMLRawAttributes, ValidationFailed, type Valueof, WRAPPER, type Wrapper, index as assets, attachFlag, attachUUID, camelToHyphen, createArray, createComponent, defineEvent, defineSlot, defineTemplate, duplicateObject, flagment, hostdown, hyphenToCamel, matchFlag, normalizePropertyDescriptor, normalizeRenderer, normalizeWrap, putIntoArray, render, renderSlots, 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 N=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var o in t)N(e,o,{get:t[o],enumerable:!0})},te=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Y(t))!ee.call(e,a)&&a!==o&&N(e,a,{get:()=>t[a],enumerable:!(r=X(t,a))||r.enumerable});return e};var re=e=>te(N({},"__esModule",{value:!0}),e);var Ee={};A(Ee,{$:()=>me,AccessError:()=>v,BrokenRendererError:()=>M,COMPONENT_INSTANCE:()=>W,ConflictionError:()=>C,EventSubcriber:()=>x,HOST_TREE:()=>R,MissingError:()=>w,ValidationFailed:()=>h,WRAPPER:()=>f,assets:()=>_,attachFlag:()=>E,attachUUID:()=>I,camelToHyphen:()=>b,createArray:()=>ne,createComponent:()=>Te,defineEvent:()=>fe,defineSlot:()=>de,defineTemplate:()=>se,duplicateObject:()=>L,flagment:()=>V,hostdown:()=>U,hyphenToCamel:()=>pe,matchFlag:()=>u,normalizePropertyDescriptor:()=>K,normalizeRenderer:()=>J,normalizeWrap:()=>D,putIntoArray:()=>F,render:()=>k,renderSlots:()=>Z,styleSet:()=>ae,sync:()=>j,tree:()=>O,typed:()=>ce,typedIsArray:()=>oe,validateStore:()=>$,when:()=>ue,wrap:()=>g});module.exports=re(Ee);var x=class{parent;bubbleable;subcribers=[];emitting=!1;constructor(t,o){this.parent=o,this.bubbleable=t?.bubbleable??!1}subcribe(t,o=!1){this.subcribers.push({callback:t,once:o})}emit(...t){if(this.emitting)return;this.emitting=!0;let o=[];for(let r of this.subcribers)o.push(r.callback(...t));return this.bubbleable&&this.parent&&this.parent.emit(...t),this.emitting=!1,o}};var R=Symbol("HostTreeFlag"),W=Symbol("ComponentInstanceFlag"),f=Symbol("WrapperFlag");function E(e,t){return Object.assign(e,{[t]:!0})}function u(e,t){return e!=null&&typeof e=="object"&&Object.hasOwn(e,t)&&e[t]===!0}function oe(e){return Array.isArray(e)}function F(e){return[...Array.isArray(e)?e:[e]]}function ne(e,t){return new Array(Math.max(e,0)).fill(0).map(t)}function b(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function pe(e){return e.replace(/-([a-z])/g,t=>t[1].toUpperCase())}function L(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((a,n)=>{r.set(L(n,t),L(a,t))}),r}if(e instanceof Set){let r=new Set;return t.set(e,r),e.forEach(a=>{r.add(L(a,t))}),r}let o=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return t.set(e,o),Reflect.ownKeys(e).forEach(r=>{o[r]=L(e[r],t)}),typeof e=="function"?e:o}function se(){return null}function ae(e){let t={},o=new Proxy({rules:t,selector:e,apply(r){let a=document.createElement("style");document.head.appendChild(a),a.textContent=`${this.selectorString(r)}{${this.ruleString()}}`},ruleString(){return Object.entries(t).map(([r,a])=>`${b(String(r))}:${a};`).join("")},selectorString(r){return(this.selector||"")+(r||"")||"*"}},{get(r,a,n){return Reflect.has(r,a)?Reflect.get(r,a,n):s=>(t[a]=String(s),o)}});return o}function H(e,t,o,r,a){return(n,s,p)=>(e instanceof EventTarget&&e.addEventListener(n,i=>{if(i instanceof CustomEvent)return;o&&i.preventDefault(),r&&i.stopPropagation();let l=a.preventEvent.emit(n,s);l&&!l.some(Boolean)&&s(i)},p),t)}function O(e){let t=typeof e=="string"?document.createElement(e):e,o={treeUpdated:new x({bubbleable:!0}),attributeUpdated:new x,initialized:new x,preventEvent:new x},r=new Proxy(E({element:t,hooks:o,append(...a){for(let n of a)if(u(n,f)){let s=[],p=new Comment("Tree anchor");t.appendChild(p);let i=l=>{let c=[...Array.isArray(l)?l:[l]].reverse(),m=[];for(let S of c){let d=k(S);d.hooks.treeUpdated.parent=o.treeUpdated,m.push(d),t.insertBefore(d.element,p.nextSibling)}for(let S of s)S.element.remove();o.treeUpdated.emit(m,s),s=m};n.event.subcribe(i),i(n.get())}else{let s=n,p=[];for(let i of F(s)){let l=u(i,R)?i:k(i);l.hooks.treeUpdated.parent=o.treeUpdated,t.appendChild(l.element),p.push(l)}o.treeUpdated.emit(p,[])}return r},use(a){if(t instanceof HTMLElement){let n=s=>{for(let[p,i]of Object.entries(s))t.style.setProperty(b(String(p)),i)};u(a,f)?(a.event.subcribe(s=>n(s.rules)),n(a.get().rules)):n(a.rules)}return r},data(a){if(t instanceof HTMLElement){for(let[n,s]of Object.entries(a)){let p=i=>t.dataset[n]=i;u(s,f)?(s.event.subcribe(p),p(s.get())):p(s)}return r}}},R),{get(a,n,s){return Reflect.has(a,n)?Reflect.get(a,n,s):p=>{let i=(l,c)=>{Object.hasOwn(t,n)&&(t[n]=l),t instanceof Element&&t.setAttribute(b(n),String(l)),o.attributeUpdated.emit(n,l,c)};return u(p,f)?(p.event.subcribe(i),i(p.get(),p.get())):i(p,p),r}}});return r.on=Object.assign(H(t,r,!1,!1,o),{stop:Object.assign(H(t,r,!1,!0,o),{prevent:H(t,r,!0,!0,o)}),prevent:Object.assign(H(t,r,!0,!1,o),{stop:H(t,r,!0,!0,o)})}),Promise.resolve().then(()=>o.initialized.emit(r)),r}var h=class extends Error{},w=class extends Error{},C=class extends Error{},v=class extends Error{},M=class extends Error{};var le=[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),B={validate:Array.isArray,duplicate:e=>[...e],patch(e,t,o){let{proxy:r,revoke:a}=Proxy.revocable(e,{get(n,s,p){if(le.includes(s)){let i=Reflect.get(n,s,p);return typeof i=="function"?(...l)=>{t(n);let c=i.call(n,...l);return o(n),c}:Reflect.get(n,s,p)}else return Reflect.get(n,s,p)},set(n,s,p,i){if(Reflect.get(n,s,i)!==p){t(n);let c=Reflect.set(n,s,p,i);return o(n),c}return Reflect.set(n,s,p,i)}});return{data:r,revoke:a}}};var Q={validate(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)},duplicate:L,patch(e,t,o){let{proxy:r,revoke:a}=Proxy.revocable(e,{set(n,s,p,i){if(Reflect.get(n,s,i)!==p){t(n);let c=Reflect.set(n,s,p,i);return o(n),c}return Reflect.set(n,s,p,i)},deleteProperty(n,s){if(Reflect.has(n,s)){t(n);let p=Reflect.deleteProperty(n,s);return o(n),p}return Reflect.deleteProperty(n,s)},defineProperty(n,s,p){let i=Reflect.getOwnPropertyDescriptor(n,s);if(!i||"value"in p&&i.value!==p.value||"get"in p&&i.get!==p.get||"set"in p&&i.set!==p.set||"enumerable"in p&&i.enumerable!==p.enumerable||"configurable"in p&&i.configurable!==p.configurable||"writable"in p&&i.writable!==p.writable){t(n);let c=Reflect.defineProperty(n,s,p);return o(n),c}return Reflect.defineProperty(n,s,p)}});return{data:r,revoke:a}}};var G=[B,Q];function D(e){return u(e,f)?e:g(e)}function g(e,t){let o=new x,r=i=>{let l=null,c=null;for(let m of G)if(m.validate(e)){l=m;break}if(l){let m=null,{data:S,revoke:d}=l.patch(i,T=>(l&&(m=l.duplicate(T)),m),T=>{if(!m)throw new v("StructWatcher updated a new data before snapshotting.");a.event.emit(T,m)},a);return c=d,{data:S,tryRevokeOld:(T,y)=>{if(l.validate(y)&&c)return y=l.duplicate(y),c(y),[r(T).data,y,!0];{let{data:P}=r(T);return[P,y,!0]}}}}else return{data:i,tryRevokeOld:(m,S)=>[m,S,!1]}},a=E({get(){return s},set(i){if(s!==i){let[l,c]=p(i,s);s=l,this.event.emit(l,c)}},updateOnly(){this.event.emit(this.get(),this.get())},event:o},f),n=r(e),s=n.data,p=n.tryRevokeOld;return{...a,...t??{}}}function j(e,t=[]){let o=g(e()),r=()=>{let a=e();o.get()!==a&&o.set(a)};for(let a of t)u(a,f)&&a.event.subcribe(r);return o}function ue(e,t,o=[]){return j(()=>{let r;return typeof e=="function"?r=e():typeof e=="boolean"?r=e:r=e.get(),[r?t():null]},[...o,...u(e,f)?[e]:[]])}function ce(){return e=>e}function K(e){return Object.assign({validate:()=>!0,transform:t=>t,shadow:null,required:!1,downloadable:!0,uploadable:!1},e)}function $(e){for(let t in e){let o=e[t];if(o.shadow){if(o.required)throw new C(`The required property ${t} can't have a shadow.`);if(o.validate&&!o.validate(o.shadow))throw new h(`The shadow of ${t} can't pass the validation.`)}}}function U(e,t){e||(e={});let o={};for(let r in t){let a=K(t[r]),n=p=>{if(u(o[r],f))o[r].set(p);else{let i=g(p);o[r]=i,i.event.subcribe(l=>{if(!(!u(e[r],f)||!u(o[r],f))&&o[r].get()!==e[r].get()){if(!a.uploadable)throw new v(`Property ${r} isn't uploadable but being set.`);e[r].set(l)}})}},s=(p,i)=>{if(!i&&!a.downloadable){console.warn(`Property ${r} isn't downloadable but being emitted.`);return}if(!a.validate(p))throw new h(`The input value of ${r} can't pass the validation.`);n(a.transform(p))};if(!Object.hasOwn(e,r)){if(a.required)throw new w(`Missing a required property ${r}.`);n(a.shadow);continue}u(e[r],f)?(e[r].event.subcribe(p=>s(p,!1)),s(e[r].get(),!0)):s(e[r],!0)}return o}function J(e){return t=>D(e(D(t)))}function Z(e,t){if(!t)return{};let o=e;return Object.fromEntries(t.map(r=>{if(r.required&&(!o||!Object.hasOwn(o,r.name)))throw new w(`Missing a required slot ${r.name}.`);return!o||!o[r.name]?[r.name,()=>null]:[r.name,J(o[r.name])]}))}function de(e,t){return{name:e,...t}}function fe(e,t){return{name:e,...t??{}}}function k(e){let t;if(e instanceof Node)t=O(e);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")t=O(new Text(String(e)));else if(u(e,W))t=e.$;else if(e==null)t=O(new Comment("Empty tree context"));else if(u(e,R))t=e;else throw new M(`Failed to render ${e} into a Node.`);return t}function me(e){return e}function V(e){return`nine_${e.replaceAll("-","_")}`}function I(e,t){for(let o of[e,...e.childNodes])o instanceof HTMLElement&&(o.dataset[V(t)]="true"),o!==e&&o.childNodes.length>0&&I(o,t);return e}function Te(e,t){$(e.props??{});let o=Object.fromEntries(Object.entries(e.props??{}).map(([s,p])=>[s,K(p)])),r=b(e.uuid||crypto.randomUUID()),a=V(r);if(e.styles)for(let s of e.styles)s.apply(`[data-${a}="true"]`);return Object.assign((s,p)=>{let i=!1,l=[],c=()=>{if(i)for(;l.length>0;){let d=l.shift();if(!d)return;let[T,y,P]=d;S.element.dispatchEvent(new CustomEvent(T,{detail:y,bubbles:P.bubbleable,cancelable:!1}))}},m=t(U(s,o),Z(p,e.slots),(d,T)=>{let y=e.events?.find(P=>P.name===d);if(!y)throw new TypeError(`No events named ${d} to emit.`);l.push([d,T,y]),c()}),S=k(m);return I(S.element,r),S.hooks.treeUpdated.subcribe(d=>{for(let T of d)I(T.element,r)}),i=!0,c(),E({mount(d){let T=typeof d=="string"?[...document.querySelectorAll(d)]:[d];for(let y of T)y.appendChild(S.element)},on(d,T){return S.on(d,y=>y instanceof CustomEvent?T(y.detail):null),this},$:S},W)},{props:o,events:e.events})}var _={};A(_,{logo:()=>q,logoTitle:()=>z});var q={};A(q,{default:()=>Se});var Se='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 z={};A(z,{default:()=>be});var be='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,duplicateObject,flagment,hostdown,hyphenToCamel,matchFlag,normalizePropertyDescriptor,normalizeRenderer,normalizeWrap,putIntoArray,render,renderSlots,styleSet,sync,tree,typed,typedIsArray,validateStore,when,wrap});
|