ouider 0.0.7 → 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>;
@@ -229,6 +437,9 @@ declare class OUIDBridge implements OUIDBridgeInterface {
229
437
  fetch(url: string, input: RequestData, encodeAs: "json"): Promise<any>;
230
438
  fetch(url: string, input: RequestData, encodeAs: "text"): Promise<string>;
231
439
  fetch(url: string, input: RequestData, encodeAs: "base64"): Promise<string>;
440
+ alert(message: string): Promise<void>;
441
+ prompt(message: string): Promise<void>;
442
+ newObject(ctr: string, ...args: any[]): Promise<ODOM.OObject | null>;
232
443
  }
233
444
  declare const OUID: OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;
234
445
  declare global {
@@ -257,6 +468,7 @@ declare class RenderContext {
257
468
  get hostElement(): ODOM.OElement;
258
469
  get stack(): Record<string, any>[];
259
470
  set stack(value: Record<string, any>[]);
471
+ getMountedComponent(node: ODOM.OElement): OComponent | undefined;
260
472
  bind(binding: Binding): void;
261
473
  directive(directive: Directive): void;
262
474
  evaluateExpression(expr: string | null | undefined): boolean;
@@ -285,7 +497,7 @@ declare class RenderContext {
285
497
  name: string;
286
498
  value: any;
287
499
  expr?: string;
288
- }>, emits?: O): Promise<void>;
500
+ }>, emits?: O): Promise<OComponent>;
289
501
  unmountComponent(node: ODOM.OElement): Promise<void>;
290
502
  }
291
503
  type Binding = {
@@ -407,6 +619,8 @@ interface Component<P extends Record<string, any>, O extends Record<string, any>
407
619
  state: State<any>;
408
620
  readonly emits: Emits<O>;
409
621
  readonly props: ComponentProps<P>;
622
+ onActivated(): void;
623
+ onDeactivated(): void;
410
624
  onMounted(): void;
411
625
  willMount(): void;
412
626
  willUnmount(): void;
@@ -427,6 +641,8 @@ declare class OComponent<P extends Record<string, any> = {}, O extends Record<st
427
641
  readonly props: ComponentProps<P>;
428
642
  private provides;
429
643
  constructor(props?: P, emits?: O);
644
+ onActivated(): void;
645
+ onDeactivated(): void;
430
646
  onMounted(): void;
431
647
  willMount(): void;
432
648
  willUnmount(): void;
@@ -492,9 +708,14 @@ declare class Router implements Plugin<any> {
492
708
  private windowObject;
493
709
  private guards;
494
710
  private eventRegistration;
711
+ private compiled;
712
+ private outletEl;
713
+ private keepAlive;
714
+ private keepAliveLimit;
715
+ private pendingNav;
495
716
  constructor(routes: Routes);
496
717
  install(app: App): void;
497
- resolve(path: string): MatchedRoute | null;
718
+ resolve(url: string): MatchedRoute | null;
498
719
  push(options: {
499
720
  name?: string;
500
721
  path?: string;
@@ -517,4 +738,4 @@ declare class OIcon extends OComponent {
517
738
 
518
739
  declare function components(): Record<string, OComponent<any, any>>;
519
740
 
520
- 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 };