verstak 0.22.412 → 0.22.500

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.
@@ -1,19 +1,19 @@
1
1
  import { Item } from 'reactronic';
2
- import { RxNode, NodeFactory } from '../core/api';
3
- export declare abstract class ElementNodeFactory<E extends Element> extends NodeFactory<E> {
4
- initialize(node: RxNode<E>, element: E | undefined): void;
5
- finalize(node: RxNode<E>, isLeader: boolean): boolean;
6
- arrange(node: RxNode<E>, strict: boolean): void;
7
- render(node: RxNode<E>): void | Promise<void>;
2
+ import { Block, BlockFactory } from '../core/api';
3
+ export declare abstract class AbstractHtmlBlockFactory<T extends Element> extends BlockFactory<T> {
4
+ initialize(block: Block<T>, element: T | undefined): void;
5
+ finalize(block: Block<T>, isLeader: boolean): boolean;
6
+ layout(block: Block<T>, strict: boolean): void;
7
+ render(block: Block<T>): void | Promise<void>;
8
8
  static get blinkingEffect(): string | undefined;
9
9
  static set blinkingEffect(value: string | undefined);
10
- static findNearestParentHtmlElementNode(node: RxNode): RxNode<Element>;
11
- static findPrevSiblingHtmlElementNode(item: Item<RxNode>): Item<RxNode<Element>> | undefined;
12
- protected abstract createElement(node: RxNode<E>): E;
10
+ static findNearestParentHtmlBlock(block: Block<any>): Block<Element>;
11
+ static findPrevSiblingHtmlBlock(item: Item<Block<any>>): Item<Block<Element>> | undefined;
12
+ protected abstract createElement(block: Block<T>): T;
13
13
  }
14
- export declare class HtmlElementNodeFactory<E extends HTMLElement> extends ElementNodeFactory<E> {
15
- protected createElement(node: RxNode<E>): E;
14
+ export declare class HtmlBlockFactory<T extends HTMLElement> extends AbstractHtmlBlockFactory<T> {
15
+ protected createElement(block: Block<T>): T;
16
16
  }
17
- export declare class SvgElementNodeFactory<E extends SVGElement> extends ElementNodeFactory<E> {
18
- protected createElement(node: RxNode<E>): E;
17
+ export declare class SvgBlockFactory<T extends SVGElement> extends AbstractHtmlBlockFactory<T> {
18
+ protected createElement(block: Block<T>): T;
19
19
  }
@@ -1,36 +1,36 @@
1
1
  import { Rx } from 'reactronic';
2
- import { RxNode, NodeFactory } from '../core/api';
3
- export class ElementNodeFactory extends NodeFactory {
4
- initialize(node, element) {
5
- element = this.createElement(node);
2
+ import { Block, BlockFactory } from '../core/api';
3
+ export class AbstractHtmlBlockFactory extends BlockFactory {
4
+ initialize(block, element) {
5
+ element = this.createElement(block);
6
6
  if (Rx.isLogging)
7
- element.id = node.name;
8
- super.initialize(node, element);
7
+ element.id = block.name;
8
+ super.initialize(block, element);
9
9
  }
10
- finalize(node, isLeader) {
10
+ finalize(block, isLeader) {
11
11
  var _a;
12
- const e = node.element;
12
+ const e = block.impl;
13
13
  if (e) {
14
14
  (_a = e.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(e);
15
15
  if (isLeader)
16
16
  e.remove();
17
17
  }
18
- super.finalize(node, isLeader);
18
+ super.finalize(block, isLeader);
19
19
  return false;
20
20
  }
21
- arrange(node, strict) {
22
- const e = node.element;
21
+ layout(block, strict) {
22
+ const e = block.impl;
23
23
  if (e) {
24
- const nativeParent = ElementNodeFactory.findNearestParentHtmlElementNode(node).element;
24
+ const nativeParent = AbstractHtmlBlockFactory.findNearestParentHtmlBlock(block).impl;
25
25
  if (nativeParent) {
26
26
  if (strict) {
27
- const after = ElementNodeFactory.findPrevSiblingHtmlElementNode(node.item);
27
+ const after = AbstractHtmlBlockFactory.findPrevSiblingHtmlBlock(block.item);
28
28
  if (after === undefined) {
29
29
  if (nativeParent !== e.parentNode || !e.previousSibling)
30
30
  nativeParent.prepend(e);
31
31
  }
32
- else if (after.self.parent.element === nativeParent) {
33
- const nativeAfter = after.self.element;
32
+ else if (after.self.parent.impl === nativeParent) {
33
+ const nativeAfter = after.self.impl;
34
34
  if (nativeAfter instanceof Element) {
35
35
  if (nativeAfter.nextSibling !== e)
36
36
  nativeParent.insertBefore(e, nativeAfter.nextSibling);
@@ -42,10 +42,10 @@ export class ElementNodeFactory extends NodeFactory {
42
42
  }
43
43
  }
44
44
  }
45
- render(node) {
46
- const result = super.render(node);
45
+ render(block) {
46
+ const result = super.render(block);
47
47
  if (gBlinkingEffect)
48
- blink(node.element, RxNode.currentRenderingPriority, node.stamp);
48
+ blink(block.impl, Block.currentRenderingPriority, block.stamp);
49
49
  return result;
50
50
  }
51
51
  static get blinkingEffect() {
@@ -54,34 +54,34 @@ export class ElementNodeFactory extends NodeFactory {
54
54
  static set blinkingEffect(value) {
55
55
  if (value === undefined) {
56
56
  const effect = gBlinkingEffect;
57
- RxNode.forAllNodesDo((e) => {
57
+ Block.forAllBlocksDo((e) => {
58
58
  if (e instanceof HTMLElement)
59
59
  e.classList.remove(`${effect}-0`, `${effect}-1`);
60
60
  });
61
61
  }
62
62
  gBlinkingEffect = value;
63
63
  }
64
- static findNearestParentHtmlElementNode(node) {
65
- let p = node.parent;
66
- while (p.element instanceof Element === false && p !== node)
64
+ static findNearestParentHtmlBlock(block) {
65
+ let p = block.parent;
66
+ while (p.impl instanceof Element === false && p !== block)
67
67
  p = p.parent;
68
68
  return p;
69
69
  }
70
- static findPrevSiblingHtmlElementNode(item) {
70
+ static findPrevSiblingHtmlBlock(item) {
71
71
  let p = item.prev;
72
- while (p && !(p.self.element instanceof Element))
72
+ while (p && !(p.self.impl instanceof Element))
73
73
  p = p.prev;
74
74
  return p;
75
75
  }
76
76
  }
77
- export class HtmlElementNodeFactory extends ElementNodeFactory {
78
- createElement(node) {
79
- return document.createElement(node.factory.name);
77
+ export class HtmlBlockFactory extends AbstractHtmlBlockFactory {
78
+ createElement(block) {
79
+ return document.createElement(block.factory.name);
80
80
  }
81
81
  }
82
- export class SvgElementNodeFactory extends ElementNodeFactory {
83
- createElement(node) {
84
- return document.createElementNS('http://www.w3.org/2000/svg', node.factory.name);
82
+ export class SvgBlockFactory extends AbstractHtmlBlockFactory {
83
+ createElement(block) {
84
+ return document.createElementNS('http://www.w3.org/2000/svg', block.factory.name);
85
85
  }
86
86
  }
87
87
  function blink(e, priority, revision) {
@@ -1,11 +1,11 @@
1
1
  import { Reaction } from '../core/Elements';
2
2
  export function RxFocuser(name, target, model, switchEditMode = undefined) {
3
- Reaction(name, { target, model }, (_, node) => {
3
+ Reaction(name, { triggers: { target, model }, throttling: 0 }, () => {
4
4
  if (switchEditMode !== undefined) {
5
5
  switchEditMode(model);
6
6
  }
7
7
  else {
8
8
  model.isEditMode ? target.focus() : target.blur();
9
9
  }
10
- }, undefined, undefined, 0);
10
+ });
11
11
  }
@@ -2,7 +2,6 @@ export * from './HtmlNodeFactory';
2
2
  export * from './HtmlElements';
3
3
  export * from './HtmlApiExt';
4
4
  export * from './RxFocuser';
5
- export * from './CellRange';
6
5
  export * from './sensors/Sensor';
7
6
  export * from './sensors/PointerSensor';
8
7
  export * from './sensors/BasePointerSensor';
@@ -2,7 +2,6 @@ export * from './HtmlNodeFactory';
2
2
  export * from './HtmlElements';
3
3
  export * from './HtmlApiExt';
4
4
  export * from './RxFocuser';
5
- export * from './CellRange';
6
5
  export * from './sensors/Sensor';
7
6
  export * from './sensors/PointerSensor';
8
7
  export * from './sensors/BasePointerSensor';
@@ -1,4 +1,4 @@
1
- import { RxNode } from '../../core/api';
1
+ import { Block } from '../../core/api';
2
2
  import { Sensor } from './Sensor';
3
3
  export interface ResizedElement {
4
4
  readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>;
@@ -11,7 +11,7 @@ export declare class ResizeSensor extends Sensor {
11
11
  resizedElements: Array<ResizedElement>;
12
12
  constructor();
13
13
  reset(): void;
14
- observeResizing(node: RxNode<any, any, any>, value: boolean, boxSizing?: ResizeObserverBoxOptions): void;
14
+ observeResizing(block: Block<any, any, any>, value: boolean, boxSizing?: ResizeObserverBoxOptions): void;
15
15
  protected onResize(entries: Array<ResizeObserverEntry>): void;
16
16
  protected resize(entries: Array<ResizeObserverEntry>): void;
17
17
  protected doReset(): void;
@@ -18,24 +18,24 @@ export class ResizeSensor extends Sensor {
18
18
  reset() {
19
19
  this.doReset();
20
20
  }
21
- observeResizing(node, value, boxSizing = 'content-box') {
22
- const native = node.element;
23
- if (native instanceof Element) {
21
+ observeResizing(block, value, boxSizing = 'content-box') {
22
+ const impl = block.impl;
23
+ if (impl instanceof Element) {
24
24
  if (value) {
25
- if (native.resizeObserver !== undefined && native.resizeObserver !== this.observer)
26
- native.resizeObserver.unobserve(native);
27
- native.resizeObserver = this.observer;
28
- this.observer.observe(native, { box: boxSizing });
25
+ if (impl.resizeObserver !== undefined && impl.resizeObserver !== this.observer)
26
+ impl.resizeObserver.unobserve(impl);
27
+ impl.resizeObserver = this.observer;
28
+ this.observer.observe(impl, { box: boxSizing });
29
29
  }
30
30
  else {
31
- if (native.resizeObserver === this.observer) {
32
- this.observer.unobserve(native);
33
- native.resizeObserver = undefined;
31
+ if (impl.resizeObserver === this.observer) {
32
+ this.observer.unobserve(impl);
33
+ impl.resizeObserver = undefined;
34
34
  }
35
35
  }
36
36
  }
37
37
  else
38
- throw new Error('cannot observe resizing of non-HTML node');
38
+ throw new Error('cannot observe resizing of non-HTML block');
39
39
  }
40
40
  onResize(entries) {
41
41
  this.resize(entries);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verstak",
3
- "version": "0.22.412",
3
+ "version": "0.22.500",
4
4
  "description": "Verstak - Transactional Reactive Front-End Development Framework",
5
5
  "publisher": "Nezaboodka Software",
6
6
  "license": "Apache-2.0",
@@ -34,15 +34,15 @@
34
34
  "reactronic": "^0.22.411"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "18.7.18",
38
- "@typescript-eslint/eslint-plugin": "5.37.0",
39
- "@typescript-eslint/parser": "5.37.0",
37
+ "@types/node": "18.11.7",
38
+ "@typescript-eslint/eslint-plugin": "5.41.0",
39
+ "@typescript-eslint/parser": "5.41.0",
40
40
  "ava": "4.3.3",
41
41
  "c8": "7.12.0",
42
- "eslint": "8.23.1",
42
+ "eslint": "8.26.0",
43
43
  "ts-node": "10.9.1",
44
44
  "tsconfig-paths": "4.1.0",
45
- "typescript": "4.8.2"
45
+ "typescript": "4.8.4"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "eslint source/**/*.ts test/**/*.ts && tsc",
@@ -1,59 +0,0 @@
1
- import { Monitor, LoggingOptions, Item, CollectionReader } from 'reactronic';
2
- export declare type Callback<E = unknown> = (element: E) => void;
3
- export declare type Render<E = unknown, M = unknown, R = void> = (element: E, node: RxNode<E, M, R>) => R;
4
- export declare type AsyncRender<E = unknown, M = unknown> = (element: E, node: RxNode<E, M, Promise<void>>) => Promise<void>;
5
- export declare const enum Priority {
6
- SyncP0 = 0,
7
- AsyncP1 = 1,
8
- AsyncP2 = 2
9
- }
10
- export declare abstract class RxNode<E = any, M = unknown, R = void> {
11
- static currentRenderingPriority: Priority;
12
- static readonly shortFrameDuration = 16;
13
- static readonly longFrameDuration = 300;
14
- static frameDuration: number;
15
- abstract readonly name: string;
16
- abstract readonly factory: NodeFactory<E>;
17
- abstract readonly inline: boolean;
18
- abstract readonly triggers: unknown;
19
- abstract readonly renderer: Render<E, M, R>;
20
- abstract readonly wrapper: Render<E, M, R> | undefined;
21
- abstract readonly monitor?: Monitor;
22
- abstract readonly throttling?: number;
23
- abstract readonly logging?: Partial<LoggingOptions>;
24
- abstract readonly priority: Priority;
25
- abstract readonly shuffle: boolean;
26
- abstract model?: M;
27
- abstract readonly level: number;
28
- abstract readonly parent: RxNode;
29
- abstract readonly children: CollectionReader<RxNode>;
30
- abstract readonly item: Item<RxNode> | undefined;
31
- abstract readonly stamp: number;
32
- abstract readonly element?: E;
33
- render(): R;
34
- get isInitialRendering(): boolean;
35
- abstract wrapBy(renderer: Render<E, M, R> | undefined): this;
36
- static root(render: () => void): void;
37
- static get current(): RxNode;
38
- static shuffleChildrenRendering(shuffle: boolean): void;
39
- static renderChildrenThenDo(action: (error: unknown) => void): void;
40
- static forAllNodesDo<E>(action: (e: E) => void): void;
41
- static claim<E = undefined, M = unknown, R = void>(name: string, triggers: unknown, inline: boolean, renderer: Render<E, M, R>, priority?: Priority, monitor?: Monitor, throttling?: number, logging?: Partial<LoggingOptions>, factory?: NodeFactory<E>): RxNode<E, M, R>;
42
- static getDefaultLoggingOptions(): LoggingOptions | undefined;
43
- static setDefaultLoggingOptions(logging?: LoggingOptions): void;
44
- }
45
- export declare class NodeFactory<E> {
46
- static readonly default: NodeFactory<any>;
47
- readonly name: string;
48
- readonly strict: boolean;
49
- constructor(name: string, strict: boolean);
50
- initialize(node: RxNode<E>, element: E | undefined): void;
51
- finalize(node: RxNode<E>, isLeader: boolean): boolean;
52
- arrange(node: RxNode<E>, strict: boolean): void;
53
- render(node: RxNode<E>): void | Promise<void>;
54
- }
55
- export declare class StaticNodeFactory<E> extends NodeFactory<E> {
56
- readonly element: E;
57
- constructor(name: string, sequential: boolean, element: E);
58
- initialize(node: RxNode<E>, element: E | undefined): void;
59
- }
@@ -1,11 +0,0 @@
1
- export interface CellRange {
2
- x1: number;
3
- y1: number;
4
- x2: number;
5
- y2: number;
6
- }
7
- export declare class CellRangeUtils {
8
- static parseCellRange(text: string, result: CellRange): CellRange;
9
- static emitCellRange(value: CellRange): string;
10
- private static emitCellPos;
11
- }