ouider 0.0.8 → 0.1.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.cts CHANGED
@@ -70,13 +70,13 @@ declare namespace ODOM {
70
70
  export class BatchUpdates {
71
71
  private node;
72
72
  private operations;
73
- constructor(node: OElement);
73
+ constructor(node: OObject);
74
74
  exec(): Promise<any>;
75
75
  private append;
76
76
  add(fn: () => void): this;
77
- addEventListener(event: string, callback: (...args: any[]) => void): BatchUpdates;
77
+ addEventListener(event: string, callback: (...args: any[]) => void, options?: EventListenerOptions, policy?: EventControlPolicy): BatchUpdates;
78
78
  setProperty(key: string, value: string): BatchUpdates;
79
- dettachEventListener(event: string, cbId: string): BatchUpdates;
79
+ dettachEventListener(cbId: string): BatchUpdates;
80
80
  invoke(fn: string, ...args: any[]): BatchUpdates;
81
81
  dispatchEvent(eventName: string, eventClass?: string, initDict?: any): BatchUpdates;
82
82
  addClass(...tokens: string[]): BatchUpdates;
@@ -91,7 +91,7 @@ declare namespace ODOM {
91
91
  innerHTML(html: string): BatchUpdates;
92
92
  replaceChildNode(node: ONode, child: ONode): BatchUpdates;
93
93
  replaceWith(node: ONode): BatchUpdates;
94
- after(node: ONode): BatchUpdates;
94
+ after(toInsert: ONode): BatchUpdates;
95
95
  setInnerText(text: string): BatchUpdates;
96
96
  setContentText(text: string): BatchUpdates;
97
97
  insertBefore(element: ONode, node: ONode): BatchUpdates;
@@ -107,12 +107,22 @@ declare namespace ODOM {
107
107
  uid: string;
108
108
  tag: string;
109
109
  constructor(uid: string, tag: string);
110
- addEventListener(event: string, callback: (...args: any[]) => void): Promise<string>;
111
- dettachEventListener(event: string, cbId: string): Promise<void>;
112
- invoke(fn: string, ...args: any[]): Promise<void>;
110
+ release(): Promise<void>;
111
+ addEventListener(event: string, callback: (...args: any[]) => void, extra?: {
112
+ options?: EventListenerOptions;
113
+ policy?: EventControlPolicy;
114
+ }): Promise<string>;
115
+ dettachEventListener(cbId: string): Promise<void>;
116
+ invoke<T>(fn: string, ...args: any[]): Promise<T | null>;
117
+ invokeAndHold(fn: string, ...args: any[]): Promise<OObject | null>;
113
118
  getProperty<T>(name: string): Promise<T | null>;
114
119
  setProperty<T>(name: string, value: T): Promise<void>;
115
120
  dispatchEvent(eventName: string, eventClass?: string, initDict?: any): Promise<void>;
121
+ updates(): BatchUpdates;
122
+ batches(): BatchUpdates;
123
+ get ref(): {
124
+ __ref__: string;
125
+ };
116
126
  }
117
127
  export abstract class ONode extends OObject {
118
128
  textContent?: string | null;
@@ -124,6 +134,7 @@ declare namespace ODOM {
124
134
  constructor(node: ONode);
125
135
  }
126
136
  export class OElement extends ONode {
137
+ [x: string]: any;
127
138
  private _hydrated;
128
139
  constructor(node: ONode);
129
140
  addClass(...tokens: string[]): Promise<void>;
@@ -138,7 +149,7 @@ declare namespace ODOM {
138
149
  removeChild(child: ONode): Promise<void>;
139
150
  replaceChildNode(node: ONode, child: ONode): Promise<void>;
140
151
  replaceWith(node: ONode): Promise<void>;
141
- after(node: ONode): Promise<void>;
152
+ after(toInsert: ONode): Promise<void>;
142
153
  setHTML(html: string): Promise<void>;
143
154
  HTML(): Promise<string>;
144
155
  setInnerText(text: string): Promise<void>;
@@ -154,20 +165,214 @@ declare namespace ODOM {
154
165
  parentNode(): Promise<OElement | null>;
155
166
  insertBefore(element: ONode, node: ONode): Promise<void>;
156
167
  setInputValue(value: string): Promise<void>;
157
- inputValue(value: string): Promise<string>;
168
+ inputValue(): Promise<string>;
158
169
  get hydrated(): boolean;
159
170
  hydrate(): void;
160
171
  query(selector: string, filter?: QueryFilter[]): Promise<OElement | null>;
161
172
  queryAll(selector: string, filter?: QueryFilter[]): Promise<OElement[] | null>;
162
- release(): Promise<void>;
163
173
  setStyle(key: string, value: any): Promise<void>;
164
- updates(): BatchUpdates;
174
+ }
175
+ export class CanvasGradient extends OObject {
176
+ constructor(obj: OObject);
177
+ addColorStop(offset: number, color: string): this;
178
+ }
179
+ export class DOMMatrix extends OObject {
180
+ batch: BatchUpdates;
181
+ constructor(obj: OObject);
182
+ static new(): Promise<DOMMatrix>;
183
+ static new(initString: string): Promise<DOMMatrix>;
184
+ static new(initArray: number[]): Promise<DOMMatrix>;
185
+ invertSelf(): this;
186
+ multiplySelf(): DOMMatrix;
187
+ premultiplySelf(): DOMMatrix;
188
+ rotateAxisAngleSelf(rotX?: number, rotY?: number, rotZ?: number, angle?: number): this;
189
+ rotateFromVectorSelf(rotX?: number, rotY?: number): this;
190
+ rotateSelf(rotX?: number, rotY?: number, rotZ?: number): this;
191
+ scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): this;
192
+ scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): this;
193
+ setMatrixValue(transformList: string): this;
194
+ skewXSelf(sX: number): this;
195
+ skewYSelf(sX: number): this;
196
+ translateSelf(translateX: number, translateY: number, translateZ?: number): this;
197
+ commit(): Promise<void>;
198
+ is2D(): Promise<boolean>;
199
+ isIdentity(): Promise<boolean>;
200
+ flipX(): Promise<DOMMatrix | null>;
201
+ flipY(): Promise<DOMMatrix | null>;
202
+ inverse(): Promise<DOMMatrix | null>;
203
+ multiply(other?: DOMMatrix): Promise<DOMMatrix | null>;
204
+ rotate(rotX?: number, rotY?: number, rotZ?: number): Promise<DOMMatrix | null>;
205
+ rotateAxisAngle(rotX?: number, rotY?: number, rotZ?: number, angle?: number): Promise<DOMMatrix | null>;
206
+ rotateFromVector(rotX?: number, rotY?: number): Promise<DOMMatrix | null>;
207
+ scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): Promise<DOMMatrix | null>;
208
+ scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): Promise<DOMMatrix | null>;
209
+ skewX(sX?: number): Promise<DOMMatrix | null>;
210
+ skewY(sY?: number): Promise<DOMMatrix | null>;
211
+ toJSON(): Promise<any>;
212
+ toString(): Promise<string | null>;
213
+ translate(translateX?: number, translateY?: number, translateZ?: number): Promise<DOMMatrix | null>;
214
+ }
215
+ export class CanvasPattern extends OObject {
216
+ constructor(obj: OObject);
217
+ setTransform(matrix: DOMMatrix): void;
218
+ }
219
+ export class Canvas2DContext extends OObject {
220
+ private batch;
221
+ constructor(uid: string);
222
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
223
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
224
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): this;
225
+ clearRect(x: number, y: number, width: number, height: number): this;
226
+ clip(path?: CanvasPath2D): Canvas2DContext;
227
+ clip(fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext;
228
+ clip(path: CanvasPath2D, fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext;
229
+ beginPath(): this;
230
+ closePath(): this;
231
+ createConicGradient(startAngle: number, x: number, y: number): Promise<CanvasGradient | null>;
232
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): Promise<CanvasGradient | null>;
233
+ createPattern(image: OObject, repetition?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | ''): Promise<CanvasPattern | null>;
234
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): Promise<CanvasGradient | null>;
235
+ drawImage(image: Image | OObject, dx: number, dy: number): Canvas2DContext;
236
+ drawImage(image: Image | OObject, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext;
237
+ drawImage(image: Image | OObject, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext;
238
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
239
+ fill(path?: CanvasPath2D | 'nonzero' | 'evenodd', fillRule?: 'nonzero' | 'evenodd'): this;
240
+ fillRect(x: number, y: number, width: number, height: number): this;
241
+ fillText(text: string, x: number, y: number, maxWidth?: number): this;
242
+ getImageData(sx: number, sy: number, sw: number, sh: number, settings?: {
243
+ colorSpace: 'srgb' | 'display-p3';
244
+ pixelFormat: 'rgba-unorm8' | 'rgba-float16';
245
+ }): Promise<OObject | null>;
246
+ getLineDash(): Promise<number[] | null>;
247
+ getTransform(): Promise<DOMMatrix | null>;
248
+ isContextLost(): Promise<boolean | null>;
249
+ isPointInPath(x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;
250
+ isPointInPath(path: CanvasPath2D, x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;
251
+ isPointInStroke(x: number, y: number): Promise<boolean>;
252
+ isPointInStroke(path: CanvasPath2D, x: number, y: number): Promise<boolean>;
253
+ lineTo(x: number, y: number): Canvas2DContext;
254
+ measureText(text: number): Promise<number>;
255
+ moveTo(x: number, y: number): Canvas2DContext;
256
+ putImageData(imageData: OObject, dx: number, dy: number): Canvas2DContext;
257
+ putImageData(imageData: OObject, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): Canvas2DContext;
258
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): this;
259
+ rect(x: number, y: number, width: number, height: number): this;
260
+ reset(): void;
261
+ resetTransform(): void;
262
+ restore(): Promise<void | null>;
263
+ rotate(angle: number): Canvas2DContext;
264
+ roundRect(x: number, y: number, width: number, height: number, radii: number | number[]): this;
265
+ save(): Promise<void | null>;
266
+ scale(x: number, y: number): Canvas2DContext;
267
+ setLineDash(segments: number[]): Promise<void | null>;
268
+ setTransform(matrix: DOMMatrix): Promise<void>;
269
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): Promise<void>;
270
+ stroke(path?: CanvasPath2D): Canvas2DContext;
271
+ strokeRect(x: number, y: number, width: number, height: number): Canvas2DContext;
272
+ strokeText(text: string, x: number, y: number, maxWidth?: number): Canvas2DContext;
273
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): Canvas2DContext;
274
+ translate(x: number, y: number): Canvas2DContext;
275
+ set fillStyle(value: string | CanvasGradient | CanvasPattern);
276
+ setFillStyle(style: string | CanvasGradient | CanvasPattern): Promise<Canvas2DContext>;
277
+ set filter(value: string);
278
+ setFilter(filter: string): Promise<this>;
279
+ set font(value: string);
280
+ setFont(font: string): Promise<this>;
281
+ set fontKerning(value: string);
282
+ setFontKerning(kerning: string): Promise<this>;
283
+ set fontStretch(value: string);
284
+ setFontStretch(value: string): Promise<this>;
285
+ set fontVariantCaps(value: string);
286
+ setFontVariantCaps(value: string): Promise<this>;
287
+ set globalAlpha(value: number);
288
+ setGlobalAlpha(value: number): Promise<this>;
289
+ set globalCompositeOperation(value: string);
290
+ setGlobalCompositeOperation(value: string): Promise<this>;
291
+ set imageSmoothingEnabled(value: boolean);
292
+ setImageSmoothingEnabled(value: boolean): Promise<this>;
293
+ set imageSmoothingQuality(value: string);
294
+ setImageSmoothingQuality(value: string): Promise<this>;
295
+ set letterSpacing(value: string);
296
+ setLetterSpacing(value: string): Promise<this>;
297
+ set lineCap(value: string);
298
+ setLineCap(value: string): Promise<this>;
299
+ set lineDashOffset(value: number);
300
+ setLineDashOffset(value: number): Promise<this>;
301
+ set lineJoin(value: string);
302
+ setLineJoin(value: string): Promise<this>;
303
+ set lineWidth(value: number);
304
+ setLineWidth(value: number): Promise<this>;
305
+ set miterLimit(value: number);
306
+ setMiterLimit(value: number): Promise<this>;
307
+ set shadowBlur(value: number);
308
+ setShadowBlur(value: number): Promise<this>;
309
+ set shadowColor(value: string);
310
+ setShadowColor(value: string): Promise<this>;
311
+ set shadowOffsetX(value: number);
312
+ setShadowOffsetX(value: number): Promise<this>;
313
+ set shadowOffsetY(value: number);
314
+ setShadowOffsetY(value: number): Promise<this>;
315
+ set strokeStyle(value: any);
316
+ setStrokeStyle(value: any): Promise<this>;
317
+ set textAlign(value: string);
318
+ setTextAlign(value: string): Promise<this>;
319
+ set textBaseline(value: string);
320
+ setTextBaseline(value: string): Promise<this>;
321
+ set wordSpacing(value: string);
322
+ setWordSpacing(value: string): Promise<this>;
323
+ set textRendering(value: string);
324
+ setTextRendering(value: string): Promise<this>;
325
+ commit(): Promise<void>;
326
+ }
327
+ export class Image extends OObject {
328
+ constructor(obj: OObject);
329
+ static new(width?: number, height?: number): Promise<Image | null>;
330
+ width(): Promise<number>;
331
+ height(): Promise<number>;
332
+ naturalWidth(): Promise<number>;
333
+ naturalHeight(): Promise<number>;
334
+ src(): Promise<string | null>;
335
+ currentSrc(): Promise<string | null>;
336
+ setSrc(src: string): Promise<void>;
337
+ }
338
+ export class CanvasPath2D extends OObject {
339
+ private batch;
340
+ constructor(obj: OObject);
341
+ static create(): Promise<CanvasPath2D | null>;
342
+ addPath(path: CanvasPath2D): this;
343
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
344
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
345
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): this;
346
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): this;
347
+ closePath(): this;
348
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): this;
349
+ moveTo(x: number, y: number): this;
350
+ lineTo(x: number, y: number): this;
351
+ rect(x: number, y: number, width: number, height: number): this;
352
+ roundRect(x: number, y: number, width: number, height: number, radii: number | number[]): this;
353
+ commit(): Promise<void>;
354
+ }
355
+ export class CanvasElement extends OElement {
356
+ constructor(node: OElement);
357
+ width(): Promise<number | null>;
358
+ height(): Promise<number | null>;
359
+ setWidth(width: number): Promise<void>;
360
+ setHeight(height: number): Promise<void>;
361
+ getContext(context: string): Promise<Canvas2DContext | null>;
362
+ static of(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<CanvasElement | null>;
165
363
  }
166
364
  export { };
167
365
  }
168
- declare function Native(): (clazz: any, fnName: string, descriptor: {
169
- value: Function;
170
- } | Record<string, any>) => void;
366
+ interface EventListenerOptions {
367
+ once?: boolean;
368
+ passive?: boolean;
369
+ capture?: boolean;
370
+ }
371
+ interface EventControlPolicy {
372
+ alwaysPreventDefault?: boolean;
373
+ alwaysStopPropagation?: boolean;
374
+ alwaysStopImmediatePropagation?: boolean;
375
+ }
171
376
  interface OUIDBridgeInterface {
172
377
  invoke(name: string): Promise<any>;
173
378
  emit(event: string, data: any): void;
@@ -216,8 +421,11 @@ declare class OUIDBridge implements OUIDBridgeInterface {
216
421
  queryAll(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<ODOM.OElement[] | null>;
217
422
  createElement(tag: string, props?: Record<string, string>): Promise<ODOM.OElement | null>;
218
423
  createComment(data: string): Promise<ODOM.OElement | null>;
219
- addEventListener(node: ODOM.OObject | 'window' | 'document', event: string, callback: (...args: any[]) => void): Promise<string>;
220
- dettachEventListener(node: ODOM.OObject | 'window' | 'document', event: string, cbId: string): Promise<void>;
424
+ addEventListener(node: ODOM.OObject | 'window' | 'document', event: string, callback: (...args: any[]) => void, extra?: {
425
+ options?: EventListenerOptions;
426
+ policy?: EventControlPolicy;
427
+ }): Promise<string>;
428
+ dettachEventListener(cbId: string): Promise<void>;
221
429
  injectComponentStyles(css: string): Promise<ODOM.OElement | null>;
222
430
  rejectComponentStyles(cssNode: ODOM.ONode): Promise<void>;
223
431
  getOObject(id: string): Promise<ODOM.OObject | null>;
@@ -231,6 +439,7 @@ declare class OUIDBridge implements OUIDBridgeInterface {
231
439
  fetch(url: string, input: RequestData, encodeAs: "base64"): Promise<string>;
232
440
  alert(message: string): Promise<void>;
233
441
  prompt(message: string): Promise<void>;
442
+ newObject(ctr: string, ...args: any[]): Promise<ODOM.OObject | null>;
234
443
  }
235
444
  declare const OUID: OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;
236
445
  declare global {
@@ -259,6 +468,7 @@ declare class RenderContext {
259
468
  get hostElement(): ODOM.OElement;
260
469
  get stack(): Record<string, any>[];
261
470
  set stack(value: Record<string, any>[]);
471
+ getMountedComponent(node: ODOM.OElement): OComponent | undefined;
262
472
  bind(binding: Binding): void;
263
473
  directive(directive: Directive): void;
264
474
  evaluateExpression(expr: string | null | undefined): boolean;
@@ -287,7 +497,7 @@ declare class RenderContext {
287
497
  name: string;
288
498
  value: any;
289
499
  expr?: string;
290
- }>, emits?: O): Promise<void>;
500
+ }>, emits?: O): Promise<OComponent>;
291
501
  unmountComponent(node: ODOM.OElement): Promise<void>;
292
502
  }
293
503
  type Binding = {
@@ -409,6 +619,8 @@ interface Component<P extends Record<string, any>, O extends Record<string, any>
409
619
  state: State<any>;
410
620
  readonly emits: Emits<O>;
411
621
  readonly props: ComponentProps<P>;
622
+ onActivated(): void;
623
+ onDeactivated(): void;
412
624
  onMounted(): void;
413
625
  willMount(): void;
414
626
  willUnmount(): void;
@@ -429,6 +641,8 @@ declare class OComponent<P extends Record<string, any> = {}, O extends Record<st
429
641
  readonly props: ComponentProps<P>;
430
642
  private provides;
431
643
  constructor(props?: P, emits?: O);
644
+ onActivated(): void;
645
+ onDeactivated(): void;
432
646
  onMounted(): void;
433
647
  willMount(): void;
434
648
  willUnmount(): void;
@@ -494,9 +708,14 @@ declare class Router implements Plugin<any> {
494
708
  private windowObject;
495
709
  private guards;
496
710
  private eventRegistration;
711
+ private compiled;
712
+ private outletEl;
713
+ private keepAlive;
714
+ private keepAliveLimit;
715
+ private pendingNav;
497
716
  constructor(routes: Routes);
498
717
  install(app: App): void;
499
- resolve(path: string): MatchedRoute | null;
718
+ resolve(url: string): MatchedRoute | null;
500
719
  push(options: {
501
720
  name?: string;
502
721
  path?: string;
@@ -519,4 +738,4 @@ declare class OIcon extends OComponent {
519
738
 
520
739
  declare function components(): Record<string, OComponent<any, any>>;
521
740
 
522
- export { ACTIVE_ROUTE_TOKEN, App, type Binding, Component, type ComponentConstructor, type ComponentProps, type Directive, Emits, type InjectionKey, type LazyLoader, Native, OComponent, type OComponentType, ODOM, OIcon, ORouter, OUID, OUIDBridge, type OUIDBridgeInterface, type OUIDConfig, type Plugin, type Promised, type Provider, type Providers, ROUTER_INJECTION_TOKEN, RenderContext, RenderNode, type Route, type RouteGaurdFunction, type RouteGuard, type RouteGuardReturn, type RouteLocationNamed, Router, type Routes, State, type StateWatcher, Stated, StyleData, WebOUID, components, createComponent, createRouter, deferMacro, deferMicro, inject, isStated, node, o, provide, stated, useRouter };
741
+ export { ACTIVE_ROUTE_TOKEN, App, type Binding, Component, type ComponentConstructor, type ComponentProps, type Directive, Emits, type EventControlPolicy, type EventListenerOptions, type InjectionKey, type LazyLoader, OComponent, type OComponentType, ODOM, OIcon, ORouter, OUID, OUIDBridge, type OUIDBridgeInterface, type OUIDConfig, type Plugin, type Promised, type Provider, type Providers, ROUTER_INJECTION_TOKEN, RenderContext, RenderNode, type Route, type RouteGaurdFunction, type RouteGuard, type RouteGuardReturn, type RouteLocationNamed, Router, type Routes, State, type StateWatcher, Stated, StyleData, WebOUID, components, createComponent, createRouter, deferMacro, deferMicro, inject, isStated, node, o, provide, stated, useRouter };