ctrl-fx 0.1.0 → 0.1.1

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 (152) hide show
  1. package/README.md +13 -0
  2. package/dist/chunk-DZAR6PTR.js +3966 -0
  3. package/dist/chunk-KNHJPAIU.js +1800 -0
  4. package/dist/chunk-NSWOTCDU.js +916 -0
  5. package/dist/chunk-PKBMQBKP.js +7 -0
  6. package/dist/chunk-XICUXW4T.js +252 -0
  7. package/dist/db/index.d.ts +218 -16
  8. package/dist/db/index.js +53 -19
  9. package/dist/dom/index.d.ts +2 -248
  10. package/dist/dom/index.js +30 -266
  11. package/dist/effects.d.ts +2 -580
  12. package/dist/effects.js +111 -1556
  13. package/dist/index-fpCmXVEu.d.ts +1391 -0
  14. package/dist/index.d.ts +2 -41
  15. package/dist/index.js +18 -78
  16. package/dist/router.d.ts +11 -12
  17. package/dist/router.js +57 -68
  18. package/dist/testing.d.ts +66 -60
  19. package/dist/testing.js +39 -158
  20. package/dist/webcomponent.d.ts +7 -4
  21. package/dist/webcomponent.js +48 -40
  22. package/package.json +4 -3
  23. package/dist/clipboard.d.ts +0 -7
  24. package/dist/clipboard.d.ts.map +0 -1
  25. package/dist/clipboard.js +0 -3
  26. package/dist/db/effects.d.ts +0 -78
  27. package/dist/db/effects.d.ts.map +0 -1
  28. package/dist/db/effects.js +0 -98
  29. package/dist/db/errors.d.ts +0 -21
  30. package/dist/db/errors.d.ts.map +0 -1
  31. package/dist/db/errors.js +0 -13
  32. package/dist/db/index.d.ts.map +0 -1
  33. package/dist/db/keypath.d.ts +0 -40
  34. package/dist/db/keypath.d.ts.map +0 -1
  35. package/dist/db/keypath.js +0 -20
  36. package/dist/db/setup.d.ts +0 -83
  37. package/dist/db/setup.d.ts.map +0 -1
  38. package/dist/db/setup.js +0 -100
  39. package/dist/db/testdb.d.ts +0 -19
  40. package/dist/db/testdb.d.ts.map +0 -1
  41. package/dist/db/testdb.js +0 -34
  42. package/dist/dom/attrs.d.ts +0 -67
  43. package/dist/dom/attrs.d.ts.map +0 -1
  44. package/dist/dom/attrs.js +0 -154
  45. package/dist/dom/components.d.ts +0 -43
  46. package/dist/dom/components.d.ts.map +0 -1
  47. package/dist/dom/components.js +0 -86
  48. package/dist/dom/elems.d.ts +0 -121
  49. package/dist/dom/elems.d.ts.map +0 -1
  50. package/dist/dom/elems.js +0 -52
  51. package/dist/dom/events.d.ts +0 -232
  52. package/dist/dom/events.d.ts.map +0 -1
  53. package/dist/dom/events.js +0 -289
  54. package/dist/dom/index.d.ts.map +0 -1
  55. package/dist/dom/nodeid.d.ts +0 -9
  56. package/dist/dom/nodeid.d.ts.map +0 -1
  57. package/dist/dom/nodeid.js +0 -27
  58. package/dist/dom/svg.d.ts +0 -23
  59. package/dist/dom/svg.d.ts.map +0 -1
  60. package/dist/dom/svg.js +0 -1
  61. package/dist/dom/views.d.ts +0 -60
  62. package/dist/dom/views.d.ts.map +0 -1
  63. package/dist/dom/views.js +0 -154
  64. package/dist/effects.d.ts.map +0 -1
  65. package/dist/index.d.ts.map +0 -1
  66. package/dist/internal/clipboard.d.ts +0 -5
  67. package/dist/internal/clipboard.d.ts.map +0 -1
  68. package/dist/internal/clipboard.js +0 -33
  69. package/dist/internal/cmpmgr.d.ts +0 -46
  70. package/dist/internal/cmpmgr.d.ts.map +0 -1
  71. package/dist/internal/cmpmgr.js +0 -561
  72. package/dist/internal/dbmgr.d.ts +0 -11
  73. package/dist/internal/dbmgr.d.ts.map +0 -1
  74. package/dist/internal/dbmgr.js +0 -200
  75. package/dist/internal/dominterpreter.d.ts +0 -5
  76. package/dist/internal/dominterpreter.d.ts.map +0 -1
  77. package/dist/internal/dominterpreter.js +0 -337
  78. package/dist/internal/eventmgr.d.ts +0 -41
  79. package/dist/internal/eventmgr.d.ts.map +0 -1
  80. package/dist/internal/eventmgr.js +0 -696
  81. package/dist/internal/index.d.ts +0 -19
  82. package/dist/internal/index.d.ts.map +0 -1
  83. package/dist/internal/index.js +0 -38
  84. package/dist/internal/interpreter.d.ts +0 -10
  85. package/dist/internal/interpreter.d.ts.map +0 -1
  86. package/dist/internal/interpreter.js +0 -1
  87. package/dist/internal/locutils.d.ts +0 -4
  88. package/dist/internal/locutils.d.ts.map +0 -1
  89. package/dist/internal/locutils.js +0 -22
  90. package/dist/internal/net.d.ts +0 -4
  91. package/dist/internal/net.d.ts.map +0 -1
  92. package/dist/internal/net.js +0 -64
  93. package/dist/internal/realdom.d.ts +0 -249
  94. package/dist/internal/realdom.d.ts.map +0 -1
  95. package/dist/internal/realdom.js +0 -1
  96. package/dist/internal/styleregistry.d.ts +0 -6
  97. package/dist/internal/styleregistry.d.ts.map +0 -1
  98. package/dist/internal/styleregistry.js +0 -18
  99. package/dist/internal/taskreg.d.ts +0 -9
  100. package/dist/internal/taskreg.d.ts.map +0 -1
  101. package/dist/internal/taskreg.js +0 -28
  102. package/dist/internal/testing.d.ts +0 -12
  103. package/dist/internal/testing.d.ts.map +0 -1
  104. package/dist/internal/testing.js +0 -974
  105. package/dist/internal/testinginterpreter.d.ts +0 -10
  106. package/dist/internal/testinginterpreter.d.ts.map +0 -1
  107. package/dist/internal/testinginterpreter.js +0 -646
  108. package/dist/internal/vdom.d.ts +0 -93
  109. package/dist/internal/vdom.d.ts.map +0 -1
  110. package/dist/internal/vdom.js +0 -470
  111. package/dist/json/index.d.ts +0 -5
  112. package/dist/json/index.d.ts.map +0 -1
  113. package/dist/json/index.js +0 -2
  114. package/dist/json/validation.d.ts +0 -28
  115. package/dist/json/validation.d.ts.map +0 -1
  116. package/dist/json/validation.js +0 -8
  117. package/dist/net/fragment.d.ts +0 -10
  118. package/dist/net/fragment.d.ts.map +0 -1
  119. package/dist/net/fragment.js +0 -27
  120. package/dist/net/index.d.ts +0 -42
  121. package/dist/net/index.d.ts.map +0 -1
  122. package/dist/net/index.js +0 -60
  123. package/dist/net/location.d.ts +0 -21
  124. package/dist/net/location.d.ts.map +0 -1
  125. package/dist/net/location.js +0 -41
  126. package/dist/net/path.d.ts +0 -12
  127. package/dist/net/path.d.ts.map +0 -1
  128. package/dist/net/path.js +0 -29
  129. package/dist/net/queryparam.d.ts +0 -10
  130. package/dist/net/queryparam.d.ts.map +0 -1
  131. package/dist/net/queryparam.js +0 -34
  132. package/dist/router.d.ts.map +0 -1
  133. package/dist/scroll.d.ts +0 -7
  134. package/dist/scroll.d.ts.map +0 -1
  135. package/dist/scroll.js +0 -3
  136. package/dist/testing.d.ts.map +0 -1
  137. package/dist/utils/apply.d.ts +0 -9
  138. package/dist/utils/apply.d.ts.map +0 -1
  139. package/dist/utils/apply.js +0 -10
  140. package/dist/utils/index.d.ts +0 -22
  141. package/dist/utils/index.d.ts.map +0 -1
  142. package/dist/utils/index.js +0 -138
  143. package/dist/utils/lens.d.ts +0 -18
  144. package/dist/utils/lens.d.ts.map +0 -1
  145. package/dist/utils/lens.js +0 -27
  146. package/dist/utils/match.d.ts +0 -17
  147. package/dist/utils/match.d.ts.map +0 -1
  148. package/dist/utils/match.js +0 -28
  149. package/dist/utils/result.d.ts +0 -47
  150. package/dist/utils/result.d.ts.map +0 -1
  151. package/dist/utils/result.js +0 -97
  152. package/dist/webcomponent.d.ts.map +0 -1
@@ -1,93 +0,0 @@
1
- import { type ComponentPath } from '.';
2
- import type { Attr, Prop } from '../dom/attrs';
3
- import type { Component, ComponentEventListener } from '../dom/components';
4
- import type { ContainerListener, EventListener } from '../dom/events';
5
- import type { NodeId } from '../dom/nodeid';
6
- import type { View } from '../dom/views';
7
- import type { RealDocument, RealElement, RealTextNode } from './realdom';
8
- export type ComponentState = {
9
- _type: 'Uninitialized';
10
- } | {
11
- _type: 'Ready';
12
- value: any;
13
- };
14
- export type InternalNode = InternalTextNode | InternalElementNode | ComponentNode | ViewNode;
15
- export type RootNode = {
16
- _type: 'RootNode';
17
- realNode: RealElement;
18
- firstChild?: InternalNode;
19
- prepend(node: InternalNode): void;
20
- append(node: InternalNode): void;
21
- };
22
- export declare function rootNode(realNode: RealElement): RootNode;
23
- export type ParentNode = InternalElementNode | ComponentNode | ViewNode;
24
- export type InternalTextNode = {
25
- readonly _type: 'InternalTextNode';
26
- text: string;
27
- prevSibling?: InternalNode;
28
- nextSibling?: InternalNode;
29
- parent?: ParentNode;
30
- realNode: RealTextNode;
31
- before(node: InternalNode): void;
32
- after(node: InternalNode): void;
33
- };
34
- export type InternalElementNode = {
35
- readonly _type: 'InternalElementNode';
36
- tag: string;
37
- nodeId?: NodeId;
38
- attrs: readonly Attr[];
39
- props: readonly Prop[];
40
- eventListeners: readonly EventListener<unknown, unknown>[];
41
- prevSibling?: InternalNode;
42
- nextSibling?: InternalNode;
43
- parent?: ParentNode;
44
- realNode: RealElement;
45
- firstChild?: InternalNode;
46
- before(node: InternalNode): void;
47
- after(node: InternalNode): void;
48
- prepend(node: InternalNode): void;
49
- append(node: InternalNode): void;
50
- };
51
- export type ComponentNode = {
52
- readonly _type: 'ComponentNode';
53
- component: Component<unknown, unknown, unknown>;
54
- nodeId: NodeId;
55
- state: ComponentState;
56
- containerListeners: readonly ContainerListener<unknown, unknown>[];
57
- componentEventListeners: readonly ComponentEventListener<unknown, unknown, unknown>[];
58
- prevSibling?: InternalNode;
59
- nextSibling?: InternalNode;
60
- parent?: ParentNode | RootNode;
61
- firstChild?: InternalNode;
62
- before(node: InternalNode): void;
63
- after(node: InternalNode): void;
64
- prepend(node: InternalNode): void;
65
- append(node: InternalNode): void;
66
- };
67
- export declare function componentNode(component: Component<unknown, unknown, unknown>, nodeId: NodeId): ComponentNode;
68
- export type ViewNode = {
69
- readonly _type: 'ViewNode';
70
- readonly nodeId: NodeId;
71
- params: any;
72
- containerListeners: readonly ContainerListener<unknown, unknown>[];
73
- prevSibling?: InternalNode;
74
- nextSibling?: InternalNode;
75
- parent?: ParentNode;
76
- firstChild?: InternalNode;
77
- before(node: InternalNode): void;
78
- after(node: InternalNode): void;
79
- prepend(node: InternalNode): void;
80
- append(node: InternalNode): void;
81
- };
82
- export declare function viewNode(view: View<unknown, unknown, unknown>): ViewNode;
83
- export declare function internalTextNode(document: RealDocument, text: string): InternalTextNode;
84
- export declare function internalElementNode(document: RealDocument, tag: string, nodeId: NodeId | undefined, attrs: readonly Attr[], eventListeners: readonly EventListener<unknown, unknown>[], props?: readonly Prop[]): InternalElementNode;
85
- export declare function detach(node: InternalNode, leaveRealNodeAttached?: boolean): void;
86
- export type Position = 'left' | 'right';
87
- export declare function moveNodeNextTo(nodeToMove: InternalNode, anchorNode: InternalNode, direction: Position): void;
88
- export declare function realClosestAncestor(node: InternalNode): InternalElementNode | RootNode | undefined;
89
- export declare function updateText(node: InternalTextNode, newText: string): void;
90
- export declare function updateAttrs(node: InternalElementNode, newAttrs: readonly Attr[]): void;
91
- export declare function updateProps(node: InternalElementNode, newProps: readonly Prop[]): void;
92
- export declare function closestComponentPath(node: InternalNode): ComponentPath | undefined;
93
- //# sourceMappingURL=vdom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../../src/internal/vdom.ts"],"names":[],"mappings":"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"}
@@ -1,470 +0,0 @@
1
- import { componentPath } from '.';
2
- import { exhaustivenessCheck } from '../utils';
3
- export function rootNode(realNode) {
4
- return {
5
- _type: 'RootNode',
6
- realNode,
7
- prepend(node) {
8
- addNewChild(this, node, 'left');
9
- },
10
- append(node) {
11
- addNewChild(this, node, 'right');
12
- },
13
- };
14
- }
15
- export function componentNode(component, nodeId) {
16
- return {
17
- _type: 'ComponentNode',
18
- component,
19
- nodeId,
20
- state: { _type: 'Uninitialized' },
21
- containerListeners: [],
22
- componentEventListeners: [],
23
- before(node) {
24
- moveNodeNextTo(node, this, 'left');
25
- },
26
- after(node) {
27
- moveNodeNextTo(node, this, 'right');
28
- },
29
- prepend(node) {
30
- addNewChild(this, node, 'left');
31
- },
32
- append(node) {
33
- addNewChild(this, node, 'right');
34
- },
35
- };
36
- }
37
- export function viewNode(view) {
38
- return {
39
- _type: 'ViewNode',
40
- nodeId: view.nodeId,
41
- params: view.params,
42
- containerListeners: [],
43
- after(nodeToMove) {
44
- moveNodeNextTo(nodeToMove, this, 'right');
45
- },
46
- before(nodeToMove) {
47
- moveNodeNextTo(nodeToMove, this, 'left');
48
- },
49
- prepend(node) {
50
- addNewChild(this, node, 'left');
51
- },
52
- append(node) {
53
- addNewChild(this, node, 'right');
54
- },
55
- };
56
- }
57
- export function internalTextNode(document, text) {
58
- return {
59
- _type: 'InternalTextNode',
60
- text,
61
- realNode: document.createTextNode(text),
62
- after(nodeToMove) {
63
- moveNodeNextTo(nodeToMove, this, 'right');
64
- },
65
- before(nodeToMove) {
66
- moveNodeNextTo(nodeToMove, this, 'left');
67
- },
68
- };
69
- }
70
- export function internalElementNode(document, tag, nodeId, attrs, eventListeners, props = []) {
71
- const realNode = document.createElement(tag);
72
- attrs.forEach(a => {
73
- realNode.setAttribute(a.name, a.value ? a.value : '');
74
- });
75
- props.forEach(p => {
76
- ;
77
- realNode[p.name] = p.value;
78
- });
79
- return {
80
- _type: 'InternalElementNode',
81
- tag,
82
- nodeId,
83
- attrs,
84
- props,
85
- eventListeners,
86
- realNode,
87
- after(nodeToMove) {
88
- moveNodeNextTo(nodeToMove, this, 'right');
89
- },
90
- before(nodeToMove) {
91
- moveNodeNextTo(nodeToMove, this, 'left');
92
- },
93
- prepend(node) {
94
- addNewChild(this, node, 'left');
95
- },
96
- append(node) {
97
- addNewChild(this, node, 'right');
98
- },
99
- };
100
- }
101
- export function detach(node, leaveRealNodeAttached = false) {
102
- // first remember the node's siblings
103
- const origPrevSibling = node.prevSibling;
104
- const origNextSibling = node.nextSibling;
105
- // if the nodeToMove is a first child, we need to update the parent
106
- if (!origPrevSibling) {
107
- if (node.parent) {
108
- node.parent.firstChild = origNextSibling;
109
- }
110
- }
111
- // update the siblings to skip the nodeToMove
112
- if (origPrevSibling) {
113
- origPrevSibling.nextSibling = origNextSibling;
114
- }
115
- if (origNextSibling) {
116
- origNextSibling.prevSibling = origPrevSibling;
117
- }
118
- if (!leaveRealNodeAttached) {
119
- switch (node._type) {
120
- case 'InternalElementNode':
121
- case 'InternalTextNode': {
122
- node.realNode.remove();
123
- break;
124
- }
125
- case 'ComponentNode':
126
- case 'ViewNode':
127
- break;
128
- default:
129
- exhaustivenessCheck(node);
130
- }
131
- }
132
- node.prevSibling = undefined;
133
- node.nextSibling = undefined;
134
- node.parent = undefined;
135
- }
136
- export function moveNodeNextTo(nodeToMove, anchorNode, direction) {
137
- detach(nodeToMove, true);
138
- // update the new surrounding nodes and point to them
139
- switch (direction) {
140
- case 'right': {
141
- nodeToMove.nextSibling = anchorNode.nextSibling;
142
- anchorNode.nextSibling = nodeToMove;
143
- nodeToMove.prevSibling = anchorNode;
144
- if (nodeToMove.nextSibling) {
145
- nodeToMove.nextSibling.prevSibling = nodeToMove;
146
- }
147
- break;
148
- }
149
- case 'left': {
150
- nodeToMove.prevSibling = anchorNode.prevSibling;
151
- anchorNode.prevSibling = nodeToMove;
152
- nodeToMove.nextSibling = anchorNode;
153
- if (nodeToMove.prevSibling) {
154
- nodeToMove.prevSibling.nextSibling = nodeToMove;
155
- }
156
- else if (anchorNode.parent) {
157
- anchorNode.parent.firstChild = nodeToMove;
158
- }
159
- break;
160
- }
161
- default: {
162
- exhaustivenessCheck(direction);
163
- }
164
- }
165
- // point to the potentially new parent
166
- nodeToMove.parent = anchorNode.parent;
167
- const realNodesToMove = realNodesFor(nodeToMove);
168
- let realAnchorNode = getRealAnchorNode(anchorNode, direction);
169
- realNodesToMove.forEach(node => {
170
- switch (direction) {
171
- case 'right': {
172
- if (!realAnchorNode) {
173
- const realParent = realParentNode(anchorNode);
174
- if (realParent) {
175
- realParent.append(node);
176
- }
177
- }
178
- else {
179
- realAnchorNode.after(node);
180
- }
181
- realAnchorNode = node;
182
- break;
183
- }
184
- case 'left': {
185
- if (!realAnchorNode) {
186
- const realParent = realParentNode(anchorNode);
187
- if (realParent) {
188
- realParent.prepend(node);
189
- }
190
- }
191
- else {
192
- realAnchorNode.before(node);
193
- }
194
- realAnchorNode = node;
195
- break;
196
- }
197
- default: {
198
- exhaustivenessCheck(direction);
199
- }
200
- }
201
- });
202
- }
203
- function addNewChild(parent, child, position) {
204
- detach(child, true);
205
- child.parent = parent;
206
- if (position === 'left') {
207
- child.nextSibling = parent.firstChild;
208
- parent.firstChild = child;
209
- }
210
- else {
211
- if (parent.firstChild) {
212
- const curLastChild = lastNode(parent.firstChild);
213
- curLastChild.nextSibling = child;
214
- child.prevSibling = curLastChild;
215
- }
216
- else {
217
- parent.firstChild = child;
218
- }
219
- }
220
- const realChildNodes = realNodesFor(child);
221
- if (parent._type === 'RootNode') {
222
- if (position === 'left') {
223
- parent.realNode.prepend(...realChildNodes);
224
- }
225
- else {
226
- parent.realNode.append(...realChildNodes);
227
- }
228
- return;
229
- }
230
- // InternalElementNode has its own real DOM node — use it directly.
231
- // getRealSibling looks at the vdom siblings of the parent, not the parent's
232
- // children, so calling it here would insert the new child as a DOM sibling
233
- // of the parent rather than as a child.
234
- if (parent._type === 'InternalElementNode') {
235
- if (position === 'left') {
236
- parent.realNode.prepend(...realChildNodes);
237
- }
238
- else {
239
- parent.realNode.append(...realChildNodes);
240
- }
241
- return;
242
- }
243
- // ComponentNode / ViewNode have no real DOM element of their own, so find
244
- // the adjacent real sibling to anchor the insertion.
245
- const realSibling = getRealSibling(parent, position);
246
- if (realSibling) {
247
- if (position === 'left') {
248
- realSibling.realNode.before(...realChildNodes);
249
- }
250
- else {
251
- realSibling.realNode.after(...realChildNodes);
252
- }
253
- }
254
- else {
255
- const realParent = realParentNode(parent);
256
- if (realParent) {
257
- if (position === 'left') {
258
- realParent.prepend(...realChildNodes);
259
- }
260
- else {
261
- realParent.append(...realChildNodes);
262
- }
263
- }
264
- }
265
- }
266
- function realNodesFor(node) {
267
- switch (node._type) {
268
- case 'InternalElementNode':
269
- case 'InternalTextNode': {
270
- return [node.realNode];
271
- }
272
- case 'ComponentNode':
273
- case 'ViewNode': {
274
- const realNodes = [];
275
- let next = node.firstChild;
276
- while (next) {
277
- realNodes.push(...realNodesFor(next));
278
- next = next.nextSibling;
279
- }
280
- return realNodes;
281
- }
282
- default: {
283
- exhaustivenessCheck(node);
284
- }
285
- }
286
- }
287
- /**
288
- * Return the RealNode to use when inserting an InternalNode after or before the
289
- * specified anchorNode
290
- *
291
- * This gets tricky, since a component or viewnode may represent zero or more
292
- * RealNodes. And since components and views can have components and views as
293
- * siblings and parents we have to potentially look through a lot of nodes until
294
- * we find one that represents a single RealNode.
295
- */
296
- function getRealAnchorNode(anchorNode, insertionDirection) {
297
- let curInitialNodeForLevel = anchorNode;
298
- while (curInitialNodeForLevel) {
299
- let curNode = curInitialNodeForLevel;
300
- while (curNode) {
301
- if (curNode._type === 'InternalTextNode' ||
302
- curNode._type === 'InternalElementNode') {
303
- return curNode.realNode;
304
- }
305
- let curChild = insertionDirection === 'right'
306
- ? curNode.firstChild
307
- ? lastNode(curNode.firstChild)
308
- : null
309
- : curNode.firstChild;
310
- while (curChild) {
311
- if (curChild._type === 'InternalElementNode' ||
312
- curChild._type === 'InternalTextNode') {
313
- return curChild.realNode;
314
- }
315
- curChild =
316
- insertionDirection === 'right'
317
- ? curChild.prevSibling
318
- : curChild.nextSibling;
319
- }
320
- curNode =
321
- insertionDirection === 'right'
322
- ? curNode.prevSibling
323
- : curNode.nextSibling;
324
- }
325
- switch (curInitialNodeForLevel.parent?._type) {
326
- case 'InternalElementNode':
327
- case 'RootNode':
328
- return undefined;
329
- case 'ComponentNode':
330
- case 'ViewNode': {
331
- curInitialNodeForLevel = curInitialNodeForLevel.parent;
332
- }
333
- }
334
- }
335
- return undefined;
336
- }
337
- function lastNode(node) {
338
- let result = node;
339
- while (result.nextSibling) {
340
- result = result.nextSibling;
341
- }
342
- return result;
343
- }
344
- function realParentNode(node) {
345
- return realClosestAncestor(node)?.realNode;
346
- }
347
- export function realClosestAncestor(node) {
348
- const parent = node.parent;
349
- if (!parent) {
350
- return undefined;
351
- }
352
- switch (parent._type) {
353
- case 'InternalElementNode':
354
- return parent;
355
- case 'ComponentNode':
356
- return realClosestAncestor(parent);
357
- case 'RootNode':
358
- return parent;
359
- case 'ViewNode':
360
- return realClosestAncestor(parent);
361
- }
362
- }
363
- function getRealSibling(node, position) {
364
- let startNodeForCurrentLevel = node;
365
- while (startNodeForCurrentLevel) {
366
- const sibling = position === 'left'
367
- ? startNodeForCurrentLevel.prevSibling
368
- : startNodeForCurrentLevel.nextSibling;
369
- if (sibling) {
370
- const realSibling = getRealSiblingLookingLaterally(sibling, position);
371
- if (realSibling) {
372
- return realSibling;
373
- }
374
- }
375
- const parent = startNodeForCurrentLevel.parent;
376
- if (!parent) {
377
- return undefined;
378
- }
379
- switch (parent._type) {
380
- case 'InternalElementNode':
381
- case 'RootNode': {
382
- return undefined;
383
- }
384
- case 'ComponentNode':
385
- case 'ViewNode': {
386
- startNodeForCurrentLevel = parent;
387
- continue;
388
- }
389
- default:
390
- exhaustivenessCheck(parent);
391
- }
392
- }
393
- return undefined;
394
- }
395
- function getRealSiblingLookingLaterally(nextNode, position) {
396
- while (nextNode) {
397
- switch (nextNode._type) {
398
- case 'InternalElementNode':
399
- case 'InternalTextNode':
400
- return nextNode;
401
- case 'ComponentNode':
402
- case 'ViewNode':
403
- if (nextNode.firstChild) {
404
- const child = position === 'left'
405
- ? lastNode(nextNode.firstChild)
406
- : nextNode.firstChild;
407
- const rslt = getRealSiblingLookingLaterally(child, position);
408
- if (rslt) {
409
- return rslt;
410
- }
411
- }
412
- nextNode =
413
- position === 'left' ? nextNode.prevSibling : nextNode.nextSibling;
414
- continue;
415
- }
416
- }
417
- return undefined;
418
- }
419
- export function updateText(node, newText) {
420
- if (node.text === newText) {
421
- return;
422
- }
423
- node.text = newText;
424
- node.realNode.nodeValue = newText;
425
- }
426
- export function updateAttrs(node, newAttrs) {
427
- const newAttrsMap = new Map(newAttrs.map(a => [a.name, a]));
428
- node.attrs.forEach(oldAttr => {
429
- const newAttr = newAttrsMap.get(oldAttr.name);
430
- if (newAttr) {
431
- if (newAttr.value || oldAttr.value) {
432
- if (newAttr.value !== oldAttr.value) {
433
- node.realNode.setAttribute(newAttr.name, newAttr.value ? newAttr.value : '');
434
- }
435
- }
436
- }
437
- else {
438
- node.realNode.removeAttribute(oldAttr.name);
439
- }
440
- });
441
- node.attrs = newAttrs;
442
- }
443
- export function updateProps(node, newProps) {
444
- const newPropsMap = new Map(newProps.map(p => [p.name, p.value]));
445
- node.props.forEach(oldProp => {
446
- if (!newPropsMap.has(oldProp.name)) {
447
- ;
448
- node.realNode[oldProp.name] =
449
- undefined;
450
- }
451
- });
452
- newProps.forEach(p => {
453
- ;
454
- node.realNode[p.name] = p.value;
455
- });
456
- node.props = newProps;
457
- }
458
- export function closestComponentPath(node) {
459
- const closestForParent = node.parent && node.parent._type !== 'RootNode'
460
- ? closestComponentPath(node.parent)
461
- : undefined;
462
- switch (node._type) {
463
- case 'InternalElementNode':
464
- case 'InternalTextNode':
465
- case 'ViewNode':
466
- return closestForParent;
467
- case 'ComponentNode':
468
- return componentPath(node.nodeId, closestForParent);
469
- }
470
- }
@@ -1,5 +0,0 @@
1
- export type JsonPrimitive = string | number | boolean | null;
2
- export type JsonValue = JsonPrimitive | JsonValue[] | {
3
- [key: string]: JsonValue;
4
- };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/json/index.ts"],"names":[],"mappings":"AA0HA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAE5D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA"}
@@ -1,2 +0,0 @@
1
- // import { todo } from "../utils/index.ts"
2
- export {};
@@ -1,28 +0,0 @@
1
- export type DownField = {
2
- _tag: 'down_field';
3
- value: string;
4
- };
5
- export type DownArray = {
6
- _tag: 'down_array';
7
- index: number;
8
- };
9
- export type PathElem = DownField | DownArray;
10
- export type Valid<A> = {
11
- _tag: 'valid';
12
- value: A;
13
- };
14
- export type Invalid = {
15
- _tag: 'invalid';
16
- path: PathElem[];
17
- value: any;
18
- expectedType: string;
19
- reason: string;
20
- };
21
- export declare function fieldToPath(field: string): PathElem[];
22
- export type ValidationResult<A> = Valid<A> | Invalid;
23
- export interface Validator<A> {
24
- run(value: any): ValidationResult<A>;
25
- map<B>(f: (a: A) => B): Validator<B>;
26
- andThen<B>(f: (a: A) => ValidationResult<B>): Validator<B>;
27
- }
28
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/json/validation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AAE5C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,QAAQ,EAAE,CAAA;IAEhB,KAAK,EAAE,GAAG,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAOrD;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;AAEpD,MAAM,WAAW,SAAS,CAAC,CAAC;IAE1B,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAEpC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IAEpC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;CAC3D"}
@@ -1,8 +0,0 @@
1
- export function fieldToPath(field) {
2
- return [
3
- {
4
- _tag: 'down_field',
5
- value: field,
6
- },
7
- ];
8
- }
@@ -1,10 +0,0 @@
1
- import { type Path } from './path';
2
- import type { QueryParam } from './queryparam';
3
- export interface Fragment {
4
- path: Path;
5
- queryParams: QueryParam[];
6
- format: string;
7
- }
8
- export declare const emptyFragment: Fragment;
9
- export declare function parseFragment(str: string): Fragment | undefined;
10
- //# sourceMappingURL=fragment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../src/net/fragment.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,aAAa,EAAE,QAI3B,CAAA;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAgB/D"}
@@ -1,27 +0,0 @@
1
- import { todo } from '../utils';
2
- import { emptyPath, parsePath } from './path';
3
- export const emptyFragment = {
4
- path: emptyPath,
5
- queryParams: [],
6
- format: '',
7
- };
8
- export function parseFragment(str) {
9
- const normalizedInput = (str.startsWith('#') ? str.substring(1) : str).trim();
10
- if (normalizedInput.length === 0) {
11
- return;
12
- }
13
- const questionMark = normalizedInput.indexOf('?');
14
- if (questionMark <= -1) {
15
- return {
16
- path: parsePath(normalizedInput),
17
- queryParams: [],
18
- format: normalizedInput,
19
- };
20
- }
21
- else {
22
- return todo();
23
- }
24
- }
25
- //def format: String =
26
- //s"#${path.format}${QueryParam.format(queryParams.params)}"
27
- //def pathAndParams: PathAndParams = PathAndParams(path, queryParams)