j-templates 7.0.25 → 7.0.26

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/DOM/elements.d.ts CHANGED
@@ -86,4 +86,12 @@ export declare const img: <T>(config: {
86
86
  on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
87
87
  data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
88
88
  }, children?: import("../Node/vNode.types").vNode[] | import("../Node/vNode.types").vNodeChildrenFunction<T>) => import("../Node/vNode.types").vNode;
89
+ export declare const video: <T>(config: {
90
+ props?: import("../Node/vNode.types").FunctionOr<import("../Utils/utils.types").RecursivePartial<HTMLVideoElement>>;
91
+ attrs?: import("../Node/vNode.types").FunctionOr<{
92
+ [name: string]: string;
93
+ }>;
94
+ on?: import("../Node/vNode.types").FunctionOr<import("../Node/vNode.types").vNodeEvents<HTMLElementEventMap>>;
95
+ data?: () => T | Array<T> | Promise<Array<T>> | Promise<T>;
96
+ }, children?: import("../Node/vNode.types").vNode[] | import("../Node/vNode.types").vNodeChildrenFunction<T>) => import("../Node/vNode.types").vNode;
89
97
  export declare const text: (callback: () => string) => import("../Node/vNode.types").vNode;
package/DOM/elements.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.text = exports.img = exports.td = exports.tr = exports.tbody = exports.table = exports.span = exports.input = exports.h1 = exports.button = exports.a = exports.div = void 0;
3
+ exports.text = exports.video = exports.img = exports.td = exports.tr = exports.tbody = exports.table = exports.span = exports.input = exports.h1 = exports.button = exports.a = exports.div = void 0;
4
4
  const vNode_1 = require("../Node/vNode");
5
5
  exports.div = vNode_1.vNode.ToFunction("div");
6
6
  exports.a = vNode_1.vNode.ToFunction("a");
@@ -13,6 +13,7 @@ exports.tbody = vNode_1.vNode.ToFunction("tbody");
13
13
  exports.tr = vNode_1.vNode.ToFunction("tr");
14
14
  exports.td = vNode_1.vNode.ToFunction("td");
15
15
  exports.img = vNode_1.vNode.ToFunction("img");
16
+ exports.video = vNode_1.vNode.ToFunction("video");
16
17
  const textElement = vNode_1.vNode.ToFunction("text");
17
18
  const text = function (callback) {
18
19
  return textElement({ props: () => ({ nodeValue: callback() }) });
@@ -222,7 +222,7 @@ function UpdateEmitters(scope, right) {
222
222
  }
223
223
  return;
224
224
  }
225
- (0, array_1.ReconcileSortedArrays)(scope.emitters, right, function (emitter) {
225
+ (0, array_1.ReconcileSortedEmitters)(scope.emitters, right, function (emitter) {
226
226
  emitter_1.Emitter.On(emitter, scope.setCallback);
227
227
  }, function (emitter) {
228
228
  emitter_1.Emitter.Remove(emitter, scope.setCallback);
package/Utils/array.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export declare function RemoveNulls(array: (unknown | null)[], startIndex?: number): void;
2
2
  export declare function ArrayDiff(source: any[], target: any[]): boolean;
3
+ export declare function ReconcileSortedEmitters<T extends [number]>(left: T[], right: T[], add: (value: T) => void, remove: (value: T) => void): void;
3
4
  export declare function ReconcileSortedArrays<T>(left: T[], right: T[], add: (value: T) => void, remove: (value: T) => void): void;
package/Utils/array.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RemoveNulls = RemoveNulls;
4
4
  exports.ArrayDiff = ArrayDiff;
5
+ exports.ReconcileSortedEmitters = ReconcileSortedEmitters;
5
6
  exports.ReconcileSortedArrays = ReconcileSortedArrays;
6
7
  function RemoveNulls(array, startIndex = 0) {
7
8
  let nullIndex = startIndex;
@@ -25,6 +26,28 @@ function ArrayDiff(source, target) {
25
26
  for (; x < source.length && source[x] === target[x]; x++) { }
26
27
  return x < source.length;
27
28
  }
29
+ function ReconcileSortedEmitters(left, right, add, remove) {
30
+ let leftIndex = 0;
31
+ let rightIndex = 0;
32
+ while (leftIndex < left.length && rightIndex < right.length) {
33
+ let li = leftIndex;
34
+ let ri = rightIndex;
35
+ for (; li < left.length && left[li][0] < right[ri][0]; li++)
36
+ remove(left[li]);
37
+ while (li < left.length && ri < right.length && left[li][0] === right[ri][0]) {
38
+ li++;
39
+ ri++;
40
+ }
41
+ for (; ri < right.length && li < left.length && right[ri][0] < left[li][0]; ri++)
42
+ add(right[ri]);
43
+ leftIndex = li;
44
+ rightIndex = ri;
45
+ }
46
+ for (let li = leftIndex; li < left.length; li++)
47
+ remove(left[li]);
48
+ for (let ri = rightIndex; ri < right.length; ri++)
49
+ add(right[ri]);
50
+ }
28
51
  function ReconcileSortedArrays(left, right, add, remove) {
29
52
  let leftIndex = 0;
30
53
  let rightIndex = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "j-templates",
3
- "version": "7.0.25",
3
+ "version": "7.0.26",
4
4
  "description": "j-templates",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/TypesInCode/jTemplates",