dothtml 6.0.0-beta.4 → 6.0.0-beta.40

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.
Files changed (110) hide show
  1. package/build_module/css/css-props.d.ts +8 -0
  2. package/build_module/css/css-props.js +40 -0
  3. package/build_module/css/css-props.js.map +1 -0
  4. package/build_module/css/css.js +1 -0
  5. package/build_module/css/css.js.map +1 -0
  6. package/build_module/css/format-css-type.d.ts +5 -0
  7. package/build_module/css/format-css-type.js +73 -0
  8. package/build_module/css/format-css-type.js.map +1 -0
  9. package/build_module/decoration/component.d.ts +9 -20
  10. package/build_module/decoration/component.js +20 -17
  11. package/build_module/decoration/component.js.map +1 -1
  12. package/build_module/decoration/use-styles.d.ts +14 -0
  13. package/build_module/decoration/use-styles.js +19 -0
  14. package/build_module/decoration/use-styles.js.map +1 -0
  15. package/build_module/dot.js +174 -349
  16. package/build_module/dot.js.map +1 -1
  17. package/build_module/helpers/render-css.d.ts +2 -0
  18. package/build_module/helpers/render-css.js +20 -0
  19. package/build_module/helpers/render-css.js.map +1 -0
  20. package/build_module/helpers/render-stylesheet.d.ts +2 -0
  21. package/build_module/helpers/render-stylesheet.js +27 -0
  22. package/build_module/helpers/render-stylesheet.js.map +1 -0
  23. package/build_module/helpers/tools.d.ts +3 -0
  24. package/build_module/helpers/tools.js +50 -0
  25. package/build_module/helpers/tools.js.map +1 -0
  26. package/build_module/helpers.d.ts +1 -0
  27. package/build_module/helpers.js +1 -0
  28. package/build_module/helpers.js.map +1 -1
  29. package/build_module/index.js +1 -0
  30. package/build_module/index.js.map +1 -1
  31. package/build_module/reactive.d.ts +10 -1
  32. package/build_module/reactive.js +34 -4
  33. package/build_module/reactive.js.map +1 -1
  34. package/build_module/reactivity/binding.d.ts +13 -0
  35. package/build_module/reactivity/binding.js +20 -0
  36. package/build_module/reactivity/binding.js.map +1 -0
  37. package/build_module/reactivity/bound-reactive.d.ts +13 -0
  38. package/build_module/reactivity/bound-reactive.js +20 -0
  39. package/build_module/reactivity/bound-reactive.js.map +1 -0
  40. package/build_module/reactivity/reactive-attr.d.ts +6 -0
  41. package/build_module/reactivity/reactive-attr.js +7 -0
  42. package/build_module/reactivity/reactive-attr.js.map +1 -0
  43. package/build_module/reactivity/reactive-style.d.ts +6 -0
  44. package/build_module/reactivity/reactive-style.js +7 -0
  45. package/build_module/reactivity/reactive-style.js.map +1 -0
  46. package/build_module/reactivity/reactive.d.ts +22 -0
  47. package/build_module/reactivity/reactive.js +54 -0
  48. package/build_module/reactivity/reactive.js.map +1 -0
  49. package/build_module/reactivity/subscription.d.ts +7 -0
  50. package/build_module/reactivity/subscription.js +41 -0
  51. package/build_module/reactivity/subscription.js.map +1 -0
  52. package/build_module/reactivity/watcher.d.ts +22 -0
  53. package/build_module/reactivity/watcher.js +61 -0
  54. package/build_module/reactivity/watcher.js.map +1 -0
  55. package/build_module/v-meta-nodes/attribute-v-node.d.ts +12 -0
  56. package/build_module/v-meta-nodes/attribute-v-node.js +53 -0
  57. package/build_module/v-meta-nodes/attribute-v-node.js.map +1 -0
  58. package/build_module/v-meta-nodes/style-v-node.d.ts +16 -0
  59. package/build_module/v-meta-nodes/style-v-node.js +135 -0
  60. package/build_module/v-meta-nodes/style-v-node.js.map +1 -0
  61. package/build_module/v-meta-nodes/v-meta-node.d.ts +5 -0
  62. package/build_module/v-meta-nodes/v-meta-node.js +3 -0
  63. package/build_module/v-meta-nodes/v-meta-node.js.map +1 -0
  64. package/build_module/v-style-nodes/base-v-style.d.ts +14 -0
  65. package/build_module/v-style-nodes/base-v-style.js +113 -0
  66. package/build_module/v-style-nodes/base-v-style.js.map +1 -0
  67. package/build_module/v-style-nodes/css-function-builder-v-style.d.ts +17 -0
  68. package/build_module/v-style-nodes/css-function-builder-v-style.js +28 -0
  69. package/build_module/v-style-nodes/css-function-builder-v-style.js.map +1 -0
  70. package/build_module/v-style-nodes/filter-v-style.d.ts +13 -0
  71. package/build_module/v-style-nodes/filter-v-style.js +35 -0
  72. package/build_module/v-style-nodes/filter-v-style.js.map +1 -0
  73. package/build_module/v-style-nodes/transform-v-style.d.ts +28 -0
  74. package/build_module/v-style-nodes/transform-v-style.js +76 -0
  75. package/build_module/v-style-nodes/transform-v-style.js.map +1 -0
  76. package/build_module/v-style-nodes/v-style.d.ts +6 -0
  77. package/build_module/v-style-nodes/v-style.js +6 -0
  78. package/build_module/v-style-nodes/v-style.js.map +1 -0
  79. package/build_module/vdom-nodes/collection-vdom.d.ts +3 -3
  80. package/build_module/vdom-nodes/collection-vdom.js +18 -15
  81. package/build_module/vdom-nodes/collection-vdom.js.map +1 -1
  82. package/build_module/vdom-nodes/component-vdom.d.ts +3 -4
  83. package/build_module/vdom-nodes/component-vdom.js +56 -15
  84. package/build_module/vdom-nodes/component-vdom.js.map +1 -1
  85. package/build_module/vdom-nodes/conditional-vdom.d.ts +4 -3
  86. package/build_module/vdom-nodes/conditional-vdom.js +35 -34
  87. package/build_module/vdom-nodes/conditional-vdom.js.map +1 -1
  88. package/build_module/vdom-nodes/container-vdom.d.ts +12 -8
  89. package/build_module/vdom-nodes/container-vdom.js +35 -11
  90. package/build_module/vdom-nodes/container-vdom.js.map +1 -1
  91. package/build_module/vdom-nodes/element-vdom.d.ts +10 -1
  92. package/build_module/vdom-nodes/element-vdom.js +71 -10
  93. package/build_module/vdom-nodes/element-vdom.js.map +1 -1
  94. package/build_module/vdom-nodes/html-vdom.d.ts +3 -3
  95. package/build_module/vdom-nodes/html-vdom.js +8 -8
  96. package/build_module/vdom-nodes/html-vdom.js.map +1 -1
  97. package/build_module/vdom-nodes/text-vdom.d.ts +3 -3
  98. package/build_module/vdom-nodes/text-vdom.js +7 -7
  99. package/build_module/vdom-nodes/text-vdom.js.map +1 -1
  100. package/build_module/vdom-nodes/vdom.d.ts +3 -0
  101. package/build_module/vdom-nodes/vdom.js +13 -0
  102. package/build_module/vdom-nodes/vdom.js.map +1 -1
  103. package/build_module/window-wrapper.d.ts +20 -0
  104. package/build_module/window-wrapper.js +39 -0
  105. package/build_module/window-wrapper.js.map +1 -0
  106. package/package.json +4 -3
  107. package/readme.md +1 -1
  108. package/build_module/decoration/style.js +0 -1
  109. package/build_module/decoration/style.js.map +0 -1
  110. /package/build_module/{decoration/style.d.ts → css/css.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
- import { deepEqual } from "../helpers";
2
- import Reactive from "../reactive";
1
+ import { deepEqual } from "../helpers/tools";
2
+ import Binding from "../reactivity/binding";
3
+ import Watcher from "../reactivity/watcher";
3
4
  import { TextVdom } from "./text-vdom";
4
5
  import { Vdom } from "./vdom";
5
6
  export default class CollectionVdom extends Vdom {
@@ -11,8 +12,8 @@ export default class CollectionVdom extends Vdom {
11
12
  this.renderCallback = renderCallback;
12
13
  }
13
14
  _render(target) {
14
- if (this.value instanceof Reactive) {
15
- this.observerId = this.value.subscribeCollection(this);
15
+ if (this.value instanceof Binding) {
16
+ this.observerId = this.value._subscribe(this);
16
17
  }
17
18
  this.startNode = target.ownerDocument.createTextNode("");
18
19
  this.endNode = target.ownerDocument.createTextNode("");
@@ -21,8 +22,8 @@ export default class CollectionVdom extends Vdom {
21
22
  this.updateList();
22
23
  }
23
24
  _unrender() {
24
- if (this.observerId && this.value instanceof Reactive) {
25
- this.value.detachBinding(this.observerId);
25
+ if (this.observerId && this.value instanceof Binding) {
26
+ this.value._unsubscribe(this.observerId);
26
27
  this.observerId = null;
27
28
  }
28
29
  for (let i = 0; i < this.mappedItems.length; i++) {
@@ -45,9 +46,9 @@ export default class CollectionVdom extends Vdom {
45
46
  let mappedData;
46
47
  {
47
48
  let unmappedCollection = null;
48
- if (this.value instanceof Reactive) {
49
- unmappedCollection = this.value.getValue();
50
- key = this.value.key ?? null;
49
+ if (this.value instanceof Binding) {
50
+ unmappedCollection = this.value._get();
51
+ key = this.value._source.key ?? null;
51
52
  }
52
53
  else {
53
54
  unmappedCollection = this.value;
@@ -55,12 +56,13 @@ export default class CollectionVdom extends Vdom {
55
56
  if (unmappedCollection instanceof Array) {
56
57
  mappedData = unmappedCollection.map((v, i) => {
57
58
  let kv = !!key ? v[key] : null;
59
+ let reactive = new Watcher();
58
60
  return {
59
61
  vdom: null,
60
62
  value: v,
61
63
  keyValue: kv,
62
64
  afterNode: null,
63
- observableIndex: new Reactive()
65
+ observableIndex: reactive.bind()
64
66
  };
65
67
  });
66
68
  }
@@ -69,12 +71,13 @@ export default class CollectionVdom extends Vdom {
69
71
  for (let k in unmappedCollection) {
70
72
  let v = unmappedCollection[k];
71
73
  let kv = !!key ? v[key] : k;
74
+ let reactive = new Watcher();
72
75
  mappedData.push({
73
76
  vdom: null,
74
77
  value: v,
75
78
  keyValue: kv,
76
79
  afterNode: null,
77
- observableIndex: new Reactive()
80
+ observableIndex: reactive.bind()
78
81
  });
79
82
  }
80
83
  }
@@ -113,12 +116,12 @@ export default class CollectionVdom extends Vdom {
113
116
  if (existing && ((candidate == existing) || (key && candidate.keyValue == existing.keyValue))) {
114
117
  if (!deepEqual(existing.value, candidate.value)) {
115
118
  existing.vdom._unrender();
116
- existing.vdom = this.renderCallback(candidate.value, this.value instanceof Reactive ? existing.observableIndex : ni, candidate.keyValue);
119
+ existing.vdom = this.renderCallback(candidate.value, this.value instanceof Binding ? existing.observableIndex : ni, candidate.keyValue);
117
120
  existing.value = candidate.value;
118
121
  existing.vdom._renderBefore(existing.afterNode);
119
122
  }
120
123
  else {
121
- existing.observableIndex.setValue(ni);
124
+ existing.observableIndex._set(ni);
122
125
  }
123
126
  afterTarget = existing.afterNode;
124
127
  ni++;
@@ -135,8 +138,8 @@ export default class CollectionVdom extends Vdom {
135
138
  this.startNode.parentElement.appendChild(beforeTarget);
136
139
  }
137
140
  candidate.afterNode = beforeTarget;
138
- candidate.observableIndex._value = ni;
139
- let content = this.renderCallback(candidate.value, this.value instanceof Reactive ? candidate.observableIndex : ni, candidate.keyValue);
141
+ candidate.observableIndex._set(ni);
142
+ let content = this.renderCallback(candidate.value, this.value instanceof Binding ? candidate.observableIndex : ni, candidate.keyValue);
140
143
  if (content instanceof Vdom) {
141
144
  candidate.vdom = content;
142
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/collection-vdom.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
- import { IComponent } from "dothtml-interfaces";
1
+ import { IDotComponent, IDotCore } from "dothtml-interfaces";
2
2
  import { Vdom } from "./vdom";
3
3
  import { ContainerVdom } from "./container-vdom";
4
4
  export declare class ComponentVdom extends Vdom {
5
- component: IComponent;
5
+ component: IDotComponent;
6
6
  shadowEl: HTMLElement;
7
7
  childShadowVdom: ContainerVdom;
8
- sharedStyles: CSSStyleSheet;
9
- constructor(component: IComponent);
8
+ constructor(dot: IDotCore, component: IDotComponent);
10
9
  private setupCustomElement;
11
10
  _render(node: HTMLElement): void;
12
11
  _unrender(): void;
@@ -1,33 +1,70 @@
1
1
  import { Vdom } from "./vdom";
2
+ import renderStylesheet from "../helpers/render-stylesheet";
3
+ let tagId = 0x10000;
2
4
  export class ComponentVdom extends Vdom {
3
- constructor(component) {
5
+ constructor(dot, component) {
4
6
  super();
5
7
  this.component = component;
6
- this.component.creating && this.component.creating();
7
- this.childShadowVdom = this.component.build && this.component.build(...component._._meta.args);
8
+ if (component._?._meta) {
9
+ throw new Error("Component has already been added to the VDOM.");
10
+ }
11
+ if (!component.constructor["_dotHtmlComponent"]) {
12
+ component.constructor["_dotHtmlComponent"] = {};
13
+ let ts = (Math.floor(performance.now() * 10000000000000)).toString(16);
14
+ let tId = (tagId++).toString(16);
15
+ component.constructor["_dotHtmlComponent"].tagName = `dothtml-${tId}${dot["_addTimestamp"] ? `-${ts}` : ""}`;
16
+ }
17
+ if (!component._) {
18
+ component._ = {};
19
+ }
20
+ component._.refs = {};
21
+ component._._meta = component._._meta || {};
22
+ component._._meta.isRendered = false;
23
+ component._._meta.tagName = component.constructor["_dotHtmlComponent"].tagName;
24
+ this.childShadowVdom = this.component.build(dot);
8
25
  this.component.built && this.component.built();
9
26
  }
10
- setupCustomElement(component, document) {
11
- let cvdom = this;
12
- let customElementConstructor = document.defaultView.customElements.get(component._._meta.tagName);
13
- if (customElementConstructor == undefined) {
14
- customElementConstructor = class extends HTMLElement {
27
+ setupCustomElement(document) {
28
+ let CustomElementConstructor = document.defaultView.customElements.get(this.component._._meta.tagName);
29
+ if (CustomElementConstructor == undefined) {
30
+ let styles = this.component.stylize && this.component.stylize() || [];
31
+ if (typeof styles == "string")
32
+ styles = [styles];
33
+ let sharedStylesheets = [];
34
+ let styleTags = [];
35
+ if (styles) {
36
+ for (let i = 0; i < styles.length; i++) {
37
+ let styleItem = renderStylesheet(styles[i], document);
38
+ if (styleItem instanceof document.defaultView.CSSStyleSheet) {
39
+ sharedStylesheets.push(styleItem);
40
+ }
41
+ else {
42
+ styleTags.push(styleItem);
43
+ }
44
+ }
45
+ }
46
+ let DocSpecificHtmlEl = document.defaultView.HTMLElement;
47
+ CustomElementConstructor = class extends DocSpecificHtmlEl {
15
48
  set component(value) {
16
49
  this._component = value;
17
50
  this._renderComponent();
18
51
  }
19
52
  _renderComponent() {
20
- if (cvdom instanceof Vdom) {
53
+ if (this.cvdom instanceof Vdom) {
21
54
  let shadow = this.attachShadow({ mode: 'open' });
22
- this._component._.root = shadow;
23
- cvdom.childShadowVdom._render(shadow);
55
+ shadow.adoptedStyleSheets = sharedStylesheets;
56
+ for (let i = 0; i < styleTags.length; i++) {
57
+ shadow.appendChild(styleTags[i]);
58
+ }
59
+ this._component._._meta.shadowRoot = shadow;
60
+ this.cvdom.childShadowVdom._render(shadow);
24
61
  }
25
62
  else {
26
63
  throw new Error("Component build function returned invalid object.");
27
64
  }
28
65
  }
29
66
  };
30
- document.defaultView.customElements.define(component._._meta.tagName, customElementConstructor);
67
+ document.defaultView.customElements.define(this.component._._meta.tagName, CustomElementConstructor);
31
68
  }
32
69
  }
33
70
  _render(node) {
@@ -37,21 +74,25 @@ export class ComponentVdom extends Vdom {
37
74
  throw new Error("Individual component instances cannot be rendered twice at once.");
38
75
  if (!this.component._._meta)
39
76
  this.component._._meta = {};
77
+ this.component.mounting && this.component.mounting();
40
78
  this.component._._meta.isRendered = true;
41
79
  let document = node.ownerDocument;
42
- this.setupCustomElement(this.component, document);
80
+ this.setupCustomElement(document);
43
81
  this.shadowEl = document.createElement(this.component._._meta.tagName);
82
+ this.shadowEl["cvdom"] = this;
44
83
  this.shadowEl["component"] = this.component;
84
+ this.component._.restyle && this.component._.restyle();
45
85
  node.appendChild(this.shadowEl);
86
+ this.component.mounted && this.component.mounted();
46
87
  }
47
88
  _unrender() {
48
- this.component.deleting && this.component.deleting();
89
+ this.component.unmounting && this.component.unmounting();
49
90
  this.childShadowVdom._unrender();
50
91
  this.childShadowVdom = null;
51
92
  this.shadowEl.remove();
52
93
  this.shadowEl = null;
53
94
  this.component._._meta.isRendered = false;
54
- this.component.deleted && this.component.deleted();
95
+ this.component.unmounted && this.component.unmounted();
55
96
  }
56
97
  toString() {
57
98
  return `<${this.component._._meta.tagName}></${this.component._._meta.tagName}>`;
@@ -1 +1 @@
1
- {"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/component-vdom.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import Reactive from "../reactive";
1
+ import Binding from "../reactivity/binding";
2
2
  import { ContainerVdom } from "./container-vdom";
3
3
  import { Vdom } from "./vdom";
4
4
  import { ConditionalNodeItem } from "./vdom-types";
@@ -6,9 +6,10 @@ export declare class ConditionalVdom extends Vdom {
6
6
  private conditions;
7
7
  private sealed;
8
8
  private renderedIndex;
9
- addCondition(condition: Reactive | boolean, vNode: ContainerVdom, seal?: boolean): void;
10
- addAnchor(C: ConditionalNodeItem, node: HTMLElement): void;
9
+ addCondition(condition: Binding | boolean, vNode: ContainerVdom, seal?: boolean): void;
10
+ private renderClause;
11
11
  _render(node: HTMLElement): void;
12
+ removeCNode(C: ConditionalNodeItem): void;
12
13
  _unrender(): void;
13
14
  updateConditions(): void;
14
15
  }
@@ -1,4 +1,4 @@
1
- import Reactive from "../reactive";
1
+ import Binding from "../reactivity/binding";
2
2
  import { Vdom } from "./vdom";
3
3
  export class ConditionalVdom extends Vdom {
4
4
  constructor() {
@@ -20,51 +20,52 @@ export class ConditionalVdom extends Vdom {
20
20
  observerId: 0
21
21
  };
22
22
  this.conditions.push(C);
23
- if (this.conditions[0].startAnchor) {
24
- this.addAnchor(C, this.conditions[0].startAnchor.parentElement);
25
- if (condition instanceof Reactive) {
26
- C.observerId = condition.subscribeCond(this);
23
+ if (this._isRendered) {
24
+ this.renderClause(C, this.conditions[0].startAnchor.parentElement);
25
+ if (this.renderedIndex == -1) {
26
+ this.updateConditions();
27
27
  }
28
- this.updateConditions();
29
28
  }
30
29
  }
31
- addAnchor(C, node) {
30
+ renderClause(C, node) {
31
+ if (C.startAnchor)
32
+ throw new Error("Item is already rendered.");
32
33
  C.startAnchor = node.ownerDocument.createTextNode("");
33
34
  C.endAnchor = node.ownerDocument.createTextNode("");
34
35
  node.appendChild(C.startAnchor);
35
36
  node.appendChild(C.endAnchor);
37
+ if (C.condition instanceof Binding) {
38
+ C.observerId = C.condition._subscribe(this);
39
+ }
36
40
  }
37
41
  _render(node) {
42
+ this._isRendered = true;
38
43
  for (let c = 0; c < this.conditions.length; c++) {
39
- let C = this.conditions[c];
40
- if (C.startAnchor) {
41
- throw new Error("Item is already rendered.");
42
- }
43
- this.addAnchor(C, node);
44
- if (C.condition instanceof Reactive) {
45
- C.observerId = C.condition.subscribeCond(this);
46
- }
44
+ this.renderClause(this.conditions[c], node);
47
45
  }
48
- if (this.conditions.length)
49
- this.updateConditions();
46
+ this.updateConditions();
47
+ }
48
+ removeCNode(C) {
49
+ if (C.condition instanceof Binding) {
50
+ C.condition._unsubscribe(C.observerId);
51
+ C.observerId = 0;
52
+ }
53
+ let start = C.startAnchor;
54
+ let end = C.endAnchor;
55
+ start.parentElement.removeChild(start);
56
+ end.parentElement.removeChild(end);
57
+ C.startAnchor = null;
58
+ C.endAnchor = null;
59
+ C.vNode._unrender();
50
60
  }
51
61
  _unrender() {
52
- if (this.conditions[0].startAnchor) {
53
- for (let i = 0; i < this.conditions.length; i++) {
54
- let C = this.conditions[i];
55
- let start = C.startAnchor;
56
- let end = C.endAnchor;
57
- C.vNode._unrender();
58
- start.parentElement.removeChild(start);
59
- end.parentElement.removeChild(end);
60
- C.startAnchor = null;
61
- C.endAnchor = null;
62
- if (C.condition instanceof Reactive) {
63
- C.condition.detachBinding(C.observerId);
64
- C.observerId = 0;
65
- }
66
- }
67
- this.renderedIndex = -1;
62
+ if (!this._isRendered)
63
+ return;
64
+ this._isRendered = false;
65
+ this.renderedIndex = -1;
66
+ for (let i = 0; i < this.conditions.length; i++) {
67
+ let C = this.conditions[i];
68
+ this.removeCNode(C);
68
69
  }
69
70
  }
70
71
  updateConditions() {
@@ -72,7 +73,7 @@ export class ConditionalVdom extends Vdom {
72
73
  let newIndex = -1;
73
74
  for (let c = 0; c < this.conditions.length; c++) {
74
75
  let C = this.conditions[c];
75
- if (C.condition instanceof Reactive ? C.condition.getValue() : C.condition) {
76
+ if (C.condition instanceof Binding ? C.condition._get() : C.condition) {
76
77
  newIndex = c;
77
78
  break;
78
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditional-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/conditional-vdom.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,26 @@
1
- import { IComponent } from "dothtml-interfaces";
2
- import Reactive from "../reactive";
1
+ import { IDotComponent, IDotCore } from "dothtml-interfaces";
2
+ import Watcher from "../reactivity/watcher";
3
3
  import { ConditionalVdom } from "./conditional-vdom";
4
4
  import ElementVdom from "./element-vdom";
5
5
  import { Vdom } from "./vdom";
6
6
  import { ObservableCollection } from "./vdom-types";
7
+ import Binding from "../reactivity/binding";
7
8
  type ParentVdom = ContainerVdom | ConditionalVdom | ElementVdom;
8
9
  export declare class ContainerVdom extends Vdom {
9
10
  _children: Array<Vdom>;
10
11
  _parent: ParentVdom;
11
- constructor();
12
+ _dot: IDotCore;
13
+ constructor(dot: IDotCore);
12
14
  _addChild(content: Vdom): this;
13
15
  _render(node: HTMLElement): void;
14
16
  _unrender(): void;
15
- html(c: string | Reactive): this;
16
- text(c: string | Reactive): this;
17
- mount(c: IComponent): this;
18
- when(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number): this;
19
- otherwiseWhen(condition: Reactive | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
17
+ attr(A: string, c: any): void;
18
+ html(c: string | Watcher | Binding): this;
19
+ text(c: string | Watcher | Binding): this;
20
+ md(c: string | Watcher): this;
21
+ mount(c: IDotComponent): this;
22
+ when(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number): this;
23
+ otherwiseWhen(condition: Watcher | Binding | boolean, then: ContainerVdom | string | boolean | number, seal?: boolean): this;
20
24
  otherwise(then: ContainerVdom | string | boolean | number): this;
21
25
  each(collection: ObservableCollection, callback: () => Vdom): this;
22
26
  }
@@ -1,3 +1,4 @@
1
+ import Watcher from "../reactivity/watcher";
1
2
  import CollectionVdom from "./collection-vdom";
2
3
  import { ConditionalVdom } from "./conditional-vdom";
3
4
  import ElementVdom from "./element-vdom";
@@ -5,11 +6,18 @@ import { HtmlVdom } from "./html-vdom";
5
6
  import { TextVdom } from "./text-vdom";
6
7
  import { Vdom } from "./vdom";
7
8
  import { ComponentVdom } from "./component-vdom";
9
+ function reduceReactive(value) {
10
+ if (value instanceof Watcher)
11
+ return value.bind();
12
+ else
13
+ return value;
14
+ }
8
15
  export class ContainerVdom extends Vdom {
9
- constructor() {
16
+ constructor(dot) {
10
17
  super();
11
18
  this._children = [];
12
19
  this._parent = null;
20
+ this._dot = dot;
13
21
  }
14
22
  _addChild(content) {
15
23
  this._children.push(content);
@@ -18,25 +26,41 @@ export class ContainerVdom extends Vdom {
18
26
  return this;
19
27
  }
20
28
  _render(node) {
29
+ this._isRendered = true;
21
30
  for (let c = 0; c < this._children.length; c++) {
22
31
  this._children[c]._render(node);
23
32
  }
24
33
  }
25
34
  _unrender() {
35
+ if (!this._isRendered)
36
+ return;
37
+ this._isRendered = false;
26
38
  for (let c = 0; c < this._children.length; c++) {
27
39
  this._children[c]._unrender();
28
40
  }
29
41
  }
42
+ attr(A, c) {
43
+ let C = this._children[this._children.length - 1];
44
+ if (C && C instanceof ElementVdom) {
45
+ C.setAttr(A, c);
46
+ }
47
+ else {
48
+ throw new Error(`Invalid node to set ${A} attribute.`);
49
+ }
50
+ }
30
51
  html(c) {
31
- let hn = new HtmlVdom(c);
52
+ let hn = new HtmlVdom(reduceReactive(c));
32
53
  return this._addChild(hn);
33
54
  }
34
55
  text(c) {
35
- let tn = new TextVdom(c);
56
+ let tn = new TextVdom(reduceReactive(c));
36
57
  return this._addChild(tn);
37
58
  }
59
+ md(c) {
60
+ return this.text(reduceReactive(c));
61
+ }
38
62
  mount(c) {
39
- let cn = new ComponentVdom(c);
63
+ let cn = new ComponentVdom(this._dot, c);
40
64
  return this._addChild(cn);
41
65
  }
42
66
  when(condition, then) {
@@ -46,12 +70,12 @@ export class ContainerVdom extends Vdom {
46
70
  thenContainer = then;
47
71
  }
48
72
  else {
49
- thenContainer = new ContainerVdom();
50
- let textVdom = new TextVdom(then);
73
+ thenContainer = new ContainerVdom(this._dot);
74
+ let textVdom = new TextVdom(reduceReactive(then));
51
75
  thenContainer._addChild(textVdom);
52
76
  then = thenContainer;
53
77
  }
54
- condNode.addCondition(condition, then);
78
+ condNode.addCondition(reduceReactive(condition), reduceReactive(then));
55
79
  this._addChild(condNode);
56
80
  return this;
57
81
  }
@@ -63,12 +87,12 @@ export class ContainerVdom extends Vdom {
63
87
  thenContainer = then;
64
88
  }
65
89
  else {
66
- thenContainer = new ContainerVdom();
67
- let textVdom = new TextVdom(then);
90
+ thenContainer = new ContainerVdom(this._dot);
91
+ let textVdom = new TextVdom(reduceReactive(then));
68
92
  thenContainer._addChild(textVdom);
69
93
  then = thenContainer;
70
94
  }
71
- condNode.addCondition(condition, then, seal);
95
+ condNode.addCondition(reduceReactive(condition), reduceReactive(then), seal);
72
96
  }
73
97
  else {
74
98
  throw new Error("Can't branch off of a non-conditional node.");
@@ -77,7 +101,7 @@ export class ContainerVdom extends Vdom {
77
101
  }
78
102
  otherwise(then) { return this.otherwiseWhen(true, then, true); }
79
103
  each(collection, callback) {
80
- let collectionVdom = new CollectionVdom(collection, callback);
104
+ let collectionVdom = new CollectionVdom(reduceReactive(collection), callback);
81
105
  this._addChild(collectionVdom);
82
106
  return this;
83
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-vdom.js","sourceRoot":"","sources":["../../src/vdom-nodes/container-vdom.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
+ import { IDotCore } from "dothtml-interfaces";
1
2
  import { ContainerVdom } from "./container-vdom";
2
3
  import { Vdom } from "./vdom";
4
+ export declare class AttributeItem {
5
+ elementVDom: ElementVdom;
6
+ attribute: string;
7
+ }
3
8
  export default class ElementVdom extends Vdom {
4
9
  children: ContainerVdom;
5
10
  element: HTMLElement;
@@ -7,7 +12,11 @@ export default class ElementVdom extends Vdom {
7
12
  private attributes;
8
13
  private events;
9
14
  private attributeObserverIds;
10
- constructor(tag: string);
15
+ private childBuilders;
16
+ private attrVNodes;
17
+ private styleVNodes;
18
+ inputListener: (e: any) => void;
19
+ constructor(dot: IDotCore, tag: string);
11
20
  _render(node: HTMLElement): void;
12
21
  _unrender(): void;
13
22
  toString(): string;