verstak 0.24.112 → 0.24.114

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,6 +1,7 @@
1
1
  import { SimpleDelegate, RxNode } from "reactronic";
2
2
  import { El, ElDriver } from "./El.js";
3
- export declare class VerstakDriver<T extends Element, M = unknown, C = unknown> extends ElDriver<T, M, C> {
3
+ export declare abstract class WebDriver<T extends Element, M = unknown, C = unknown> extends ElDriver<T, M, C> {
4
+ abstract acquireNativeElement(element: El<T, M, C>): T;
4
5
  initialize(element: El<T, M, C>): void;
5
6
  finalize(element: El<T, M, C>, isLeader: boolean): boolean;
6
7
  mount(element: El<T, M, C>): void;
@@ -10,15 +11,15 @@ export declare class VerstakDriver<T extends Element, M = unknown, C = unknown>
10
11
  static get blinkingEffectMarker(): string | undefined;
11
12
  static set blinkingEffectMarker(value: string | undefined);
12
13
  }
13
- export declare class StaticDriver<T extends HTMLElement> extends VerstakDriver<T> {
14
+ export declare class StaticDriver<T extends HTMLElement> extends WebDriver<T> {
14
15
  readonly native: T;
15
16
  constructor(native: T, name: string, isRow: boolean, predefine?: SimpleDelegate<El<T>>);
16
- initialize(element: El<T>): void;
17
+ acquireNativeElement(): T;
17
18
  }
18
- export declare class HtmlDriver<T extends HTMLElement, M = any, C = any> extends VerstakDriver<T, M, C> {
19
+ export declare class HtmlDriver<T extends HTMLElement, M = any, C = any> extends WebDriver<T, M, C> {
19
20
  static readonly group: HtmlDriver<any, any, any>;
20
- initialize(element: El<T, any, C, void>): void;
21
+ acquireNativeElement(element: El<T, M, C>): T;
21
22
  }
22
- export declare class SvgDriver<T extends SVGElement, M = any, C = any> extends VerstakDriver<T, M, C> {
23
- initialize(element: El<T, any, C, void>): void;
23
+ export declare class SvgDriver<T extends SVGElement, M = any, C = any> extends WebDriver<T, M, C> {
24
+ acquireNativeElement(element: El<T, M, C>): T;
24
25
  }
@@ -1,9 +1,10 @@
1
1
  import { RxSystem, RxTree } from "reactronic";
2
2
  import { Constants, ElDriver, ElImpl, ElKind } from "./El.js";
3
- export class VerstakDriver extends ElDriver {
3
+ export class WebDriver extends ElDriver {
4
4
  initialize(element) {
5
+ const native = element.native = this.acquireNativeElement(element);
5
6
  if (RxSystem.isLogging && !element.node.driver.isPartitionSeparator)
6
- element.native.setAttribute(Constants.keyAttrName, element.node.key);
7
+ native.setAttribute(Constants.keyAttrName, element.node.key);
7
8
  super.initialize(element);
8
9
  }
9
10
  finalize(element, isLeader) {
@@ -15,6 +16,7 @@ export class VerstakDriver extends ElDriver {
15
16
  native.remove();
16
17
  }
17
18
  super.finalize(element, isLeader);
19
+ element.native = null;
18
20
  return false;
19
21
  }
20
22
  mount(element) {
@@ -70,27 +72,24 @@ export class VerstakDriver extends ElDriver {
70
72
  gBlinkingEffectMarker = value;
71
73
  }
72
74
  }
73
- export class StaticDriver extends VerstakDriver {
75
+ export class StaticDriver extends WebDriver {
74
76
  constructor(native, name, isRow, predefine) {
75
77
  super(name, isRow, predefine);
76
78
  this.native = native;
77
79
  }
78
- initialize(element) {
79
- element.native = this.native;
80
- super.initialize(element);
80
+ acquireNativeElement() {
81
+ return this.native;
81
82
  }
82
83
  }
83
- export class HtmlDriver extends VerstakDriver {
84
- initialize(element) {
85
- element.native = document.createElement(element.node.driver.name);
86
- super.initialize(element);
84
+ export class HtmlDriver extends WebDriver {
85
+ acquireNativeElement(element) {
86
+ return document.createElement(element.node.driver.name);
87
87
  }
88
88
  }
89
89
  HtmlDriver.group = new HtmlDriver("group", false, el => el.kind = ElKind.Group);
90
- export class SvgDriver extends VerstakDriver {
91
- initialize(element) {
92
- element.native = document.createElementNS("http://www.w3.org/2000/svg", element.node.driver.name);
93
- super.initialize(element);
90
+ export class SvgDriver extends WebDriver {
91
+ acquireNativeElement(element) {
92
+ return document.createElementNS("http://www.w3.org/2000/svg", element.node.driver.name);
94
93
  }
95
94
  }
96
95
  function blink(element, priority, revision) {
@@ -3,7 +3,7 @@ import { Fragment } from "./Elements.js";
3
3
  export function FocuserReaction(key, target, model, switchEditMode = undefined) {
4
4
  Fragment({
5
5
  key,
6
- mode: Mode.PinpointUpdate,
6
+ mode: Mode.IndependentUpdate,
7
7
  triggers: { target, model },
8
8
  initialize(b) {
9
9
  b.node.configureReactronic({ throttling: 0 });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verstak",
3
- "version": "0.24.112",
3
+ "version": "0.24.114",
4
4
  "description": "Verstak - Front-End Library",
5
5
  "publisher": "Nezaboodka Software",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "homepage": "https://github.com/nezaboodka/verstak/blob/master/README.md#readme",
33
33
  "dependencies": {
34
- "reactronic": "^0.24.112"
34
+ "reactronic": "^0.24.114"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "20.10.4",