j-templates 7.0.25 → 7.0.27

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() }) });
package/Node/vNode.js CHANGED
@@ -201,7 +201,7 @@ function DynamicChildren(vnode, children, data) {
201
201
  vnode.children = Store_1.ObservableScope.Value(childrenScope);
202
202
  }
203
203
  function WrapDynamicChildren(dataScope, nodeList, injector, children) {
204
- return function () {
204
+ const func = function () {
205
205
  const nextData = Store_1.ObservableScope.Value(dataScope);
206
206
  const nodeMap = list_1.List.ToNodeMap(nodeList, function (data) {
207
207
  return data.data;
@@ -257,6 +257,7 @@ function WrapDynamicChildren(dataScope, nodeList, injector, children) {
257
257
  list_1.List.Append(nodeList, nextNodeList);
258
258
  return nextNodeArray;
259
259
  };
260
+ return func;
260
261
  }
261
262
  function UpdateChildren(vnode, init = false, skipInit = false) {
262
263
  if (!vnode.children)
@@ -289,7 +290,7 @@ function UpdateChildren(vnode, init = false, skipInit = false) {
289
290
  });
290
291
  }
291
292
  function ToArray(callback) {
292
- return function (...args) {
293
+ const func = function (...args) {
293
294
  const result = callback(...args);
294
295
  if (Array.isArray(result))
295
296
  return result;
@@ -297,6 +298,8 @@ function ToArray(callback) {
297
298
  return [];
298
299
  return [result];
299
300
  };
301
+ func[Symbol.toStringTag] = callback[Symbol.toStringTag];
302
+ return func;
300
303
  }
301
304
  function ScheduledAssignment(assign) {
302
305
  let scheduled = false;
@@ -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.27",
4
4
  "description": "j-templates",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/TypesInCode/jTemplates",