@matthewp/zebra 0.1.5 → 0.3.0

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/dist/list.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Element } from './element.ts';
2
2
  import { View } from './view.ts';
3
3
  type ItemSource<T> = T[] | (() => T[]);
4
- type Factory<T> = (item: T) => View;
4
+ type Factory<T> = (item: T, index: () => number) => View;
5
5
  export declare class List<T = unknown> extends View {
6
6
  private _containerTag;
7
7
  private _items;
@@ -9,12 +9,13 @@ export declare class List<T = unknown> extends View {
9
9
  private _factory;
10
10
  private _views;
11
11
  private _keys;
12
+ private _indexSignals;
12
13
  private _currentItems;
13
14
  constructor(items: ItemSource<T>, keyFn: (item: T) => unknown, factory: Factory<T>, tag?: string);
14
15
  private _getItems;
16
+ private _create;
15
17
  render(): Element;
16
18
  private _buildInitial;
17
- private _updateView;
18
19
  private _reconcile;
19
20
  }
20
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpC,qBAAa,IAAI,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,IAAI;IACzC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAAoB;gBAGvC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,GAAG,SAAQ;IASb,OAAO,CAAC,SAAS;IAMjB,MAAM,IAAI,OAAO;IAejB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,UAAU;CAoHnB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEvC,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC;AAEzD,qBAAa,IAAI,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,IAAI;IACzC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAoB;gBAGvC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,GAAG,SAAQ;IASb,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,OAAO;IAMf,MAAM,IAAI,OAAO;IAejB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,UAAU;CA6JnB"}
package/dist/list.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Element } from "./element.js";
2
2
  import { View } from "./view.js";
3
- import { effect } from 'alien-signals';
3
+ import { effect, signal } from 'alien-signals';
4
4
  export class List extends View {
5
5
  _containerTag;
6
6
  _items;
@@ -8,6 +8,7 @@ export class List extends View {
8
8
  _factory;
9
9
  _views = [];
10
10
  _keys = [];
11
+ _indexSignals = [];
11
12
  _currentItems = [];
12
13
  constructor(items, keyFn, factory, tag = 'div') {
13
14
  super();
@@ -21,6 +22,11 @@ export class List extends View {
21
22
  ? this._items()
22
23
  : this._items;
23
24
  }
25
+ _create(item, index) {
26
+ const indexSignal = signal(index);
27
+ const view = this._factory(item, indexSignal);
28
+ return { view, indexSignal };
29
+ }
24
30
  render() {
25
31
  const container = new Element(this._containerTag);
26
32
  effect(() => {
@@ -37,43 +43,44 @@ export class List extends View {
37
43
  _buildInitial(container, items) {
38
44
  this._views = [];
39
45
  this._keys = [];
46
+ this._indexSignals = [];
40
47
  this._currentItems = [];
41
- for (const item of items) {
42
- const view = this._factory(item);
48
+ for (let i = 0; i < items.length; i++) {
49
+ const item = items[i];
50
+ const { view, indexSignal } = this._create(item, i);
43
51
  this._views.push(view);
44
52
  this._keys.push(this._keyFn(item));
53
+ this._indexSignals.push(indexSignal);
45
54
  this._currentItems.push(item);
46
55
  container.append(view);
47
56
  }
48
57
  }
49
- _updateView(view, newItem, oldItem) {
50
- if (newItem !== oldItem) {
51
- const anyView = view;
52
- if (typeof anyView.update === 'function') {
53
- anyView.update(newItem);
54
- }
55
- }
56
- }
57
58
  _reconcile(container, items) {
58
59
  const oldViews = this._views;
59
60
  const oldKeys = this._keys;
61
+ const oldIndexSignals = this._indexSignals;
60
62
  const oldItems = this._currentItems;
61
63
  // Fast path: same length + all keys in same order
62
64
  if (items.length === oldViews.length && items.length > 0) {
63
65
  let sameOrder = true;
64
- const newKeys2 = new Array(items.length);
66
+ const checkKeys = new Array(items.length);
65
67
  for (let i = 0; i < items.length; i++) {
66
- newKeys2[i] = this._keyFn(items[i]);
67
- if (newKeys2[i] !== oldKeys[i]) {
68
+ checkKeys[i] = this._keyFn(items[i]);
69
+ if (checkKeys[i] !== oldKeys[i]) {
68
70
  sameOrder = false;
69
71
  break;
70
72
  }
71
73
  }
72
74
  if (sameOrder) {
73
75
  for (let i = 0; i < items.length; i++) {
74
- if (items[i] !== oldItems[i])
75
- this._updateView(oldViews[i], items[i], oldItems[i]);
76
- this._currentItems[i] = items[i];
76
+ if (items[i] !== oldItems[i]) {
77
+ // ref changed → recreate at this slot
78
+ const { view, indexSignal } = this._create(items[i], i);
79
+ oldViews[i].toDOM().replaceWith(view.toDOM());
80
+ this._views[i] = view;
81
+ this._indexSignals[i] = indexSignal;
82
+ this._currentItems[i] = items[i];
83
+ }
77
84
  }
78
85
  return;
79
86
  }
@@ -81,6 +88,42 @@ export class List extends View {
81
88
  const newKeys = items.map(this._keyFn);
82
89
  const newViews = new Array(items.length).fill(null);
83
90
  const newItems = new Array(items.length).fill(null);
91
+ const newIndexSignals = new Array(items.length).fill(null);
92
+ // Reuse the view at oldPos for newPos when refs match; otherwise recreate.
93
+ // For "in place" branches (head/head, tail/tail) the DOM stays where it is on reuse,
94
+ // and is replaced via replaceWith on recreate.
95
+ const inPlace = (newPos, oldPos) => {
96
+ if (items[newPos] === oldItems[oldPos]) {
97
+ newViews[newPos] = oldViews[oldPos];
98
+ newIndexSignals[newPos] = oldIndexSignals[oldPos];
99
+ }
100
+ else {
101
+ const { view, indexSignal } = this._create(items[newPos], newPos);
102
+ oldViews[oldPos].toDOM().replaceWith(view.toDOM());
103
+ newViews[newPos] = view;
104
+ newIndexSignals[newPos] = indexSignal;
105
+ }
106
+ newItems[newPos] = items[newPos];
107
+ };
108
+ // For branches that move DOM (diagonals, key-map fallback). Returns the DOM
109
+ // node to insert at the destination — caller positions it.
110
+ const move = (newPos, oldPos) => {
111
+ let dom;
112
+ if (items[newPos] === oldItems[oldPos]) {
113
+ newViews[newPos] = oldViews[oldPos];
114
+ newIndexSignals[newPos] = oldIndexSignals[oldPos];
115
+ dom = oldViews[oldPos].toDOM();
116
+ }
117
+ else {
118
+ oldViews[oldPos].toDOM().remove();
119
+ const { view, indexSignal } = this._create(items[newPos], newPos);
120
+ newViews[newPos] = view;
121
+ newIndexSignals[newPos] = indexSignal;
122
+ dom = view.toDOM();
123
+ }
124
+ newItems[newPos] = items[newPos];
125
+ return dom;
126
+ };
84
127
  let oldHead = 0;
85
128
  let oldTail = oldViews.length - 1;
86
129
  let newHead = 0;
@@ -94,32 +137,24 @@ export class List extends View {
94
137
  oldTail--;
95
138
  }
96
139
  else if (oldKeys[oldHead] === newKeys[newHead]) {
97
- newViews[newHead] = oldViews[oldHead];
98
- newItems[newHead] = items[newHead];
99
- this._updateView(oldViews[oldHead], items[newHead], oldItems[oldHead]);
140
+ inPlace(newHead, oldHead);
100
141
  oldHead++;
101
142
  newHead++;
102
143
  }
103
144
  else if (oldKeys[oldTail] === newKeys[newTail]) {
104
- newViews[newTail] = oldViews[oldTail];
105
- newItems[newTail] = items[newTail];
106
- this._updateView(oldViews[oldTail], items[newTail], oldItems[oldTail]);
145
+ inPlace(newTail, oldTail);
107
146
  oldTail--;
108
147
  newTail--;
109
148
  }
110
149
  else if (oldKeys[oldHead] === newKeys[newTail]) {
111
- newViews[newTail] = oldViews[oldHead];
112
- newItems[newTail] = items[newTail];
113
- this._updateView(oldViews[oldHead], items[newTail], oldItems[oldHead]);
114
- oldViews[oldTail].toDOM().after(oldViews[oldHead].toDOM());
150
+ const dom = move(newTail, oldHead);
151
+ oldViews[oldTail].toDOM().after(dom);
115
152
  oldHead++;
116
153
  newTail--;
117
154
  }
118
155
  else if (oldKeys[oldTail] === newKeys[newHead]) {
119
- newViews[newHead] = oldViews[oldTail];
120
- newItems[newHead] = items[newHead];
121
- this._updateView(oldViews[oldTail], items[newHead], oldItems[oldTail]);
122
- oldViews[oldHead].toDOM().before(oldViews[oldTail].toDOM());
156
+ const dom = move(newHead, oldTail);
157
+ oldViews[oldHead].toDOM().before(dom);
123
158
  oldTail--;
124
159
  newHead++;
125
160
  }
@@ -134,17 +169,15 @@ export class List extends View {
134
169
  }
135
170
  const oldIndex = oldKeyToIndex.get(newKeys[newHead]);
136
171
  if (oldIndex === undefined) {
137
- const view = this._factory(items[newHead]);
172
+ const { view, indexSignal } = this._create(items[newHead], newHead);
138
173
  newViews[newHead] = view;
139
174
  newItems[newHead] = items[newHead];
175
+ newIndexSignals[newHead] = indexSignal;
140
176
  oldViews[oldHead].toDOM().before(view.toDOM());
141
177
  }
142
178
  else {
143
- const view = oldViews[oldIndex];
144
- this._updateView(view, items[newHead], oldItems[oldIndex]);
145
- newViews[newHead] = view;
146
- newItems[newHead] = items[newHead];
147
- oldViews[oldHead].toDOM().before(view.toDOM());
179
+ const dom = move(newHead, oldIndex);
180
+ oldViews[oldHead].toDOM().before(dom);
148
181
  oldViews[oldIndex] = null;
149
182
  }
150
183
  newHead++;
@@ -157,9 +190,10 @@ export class List extends View {
157
190
  oldHead++;
158
191
  }
159
192
  while (newHead <= newTail) {
160
- const view = this._factory(items[newHead]);
193
+ const { view, indexSignal } = this._create(items[newHead], newHead);
161
194
  newViews[newHead] = view;
162
195
  newItems[newHead] = items[newHead];
196
+ newIndexSignals[newHead] = indexSignal;
163
197
  const ref = newViews[newTail + 1]?.toDOM();
164
198
  if (ref) {
165
199
  ref.before(view.toDOM());
@@ -169,8 +203,15 @@ export class List extends View {
169
203
  }
170
204
  newHead++;
171
205
  }
206
+ // Update index signals for views whose position changed.
207
+ for (let i = 0; i < newViews.length; i++) {
208
+ const sig = newIndexSignals[i];
209
+ if (sig() !== i)
210
+ sig(i);
211
+ }
172
212
  this._views = newViews;
173
213
  this._keys = newKeys;
214
+ this._indexSignals = newIndexSignals;
174
215
  this._currentItems = newItems;
175
216
  }
176
217
  }
package/dist/list.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM/C,MAAM,OAAO,IAAkB,SAAQ,IAAI;IACjC,aAAa,CAAS;IACtB,MAAM,CAAgB;IACtB,MAAM,CAAuB;IAC7B,QAAQ,CAAa;IACrB,MAAM,GAAoB,EAAE,CAAC;IAC7B,KAAK,GAAc,EAAE,CAAC;IACtB,aAAa,GAAkB,EAAE,CAAC;IAClC,aAAa,GAAiB,EAAE,CAAC;IAEzC,YACE,KAAoB,EACpB,KAA2B,EAC3B,OAAmB,EACnB,GAAG,GAAG,KAAK;QAEX,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEO,SAAS;QACf,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;YACtC,CAAC,CAAE,IAAI,CAAC,MAAoB,EAAE;YAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC;IAEO,OAAO,CAAC,IAAO,EAAE,KAAa;QACpC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAgB,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAA2B,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,aAAa,CAAC,SAAkB,EAAE,KAAU;QAClD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,SAAsB,EAAE,KAAU;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;QAEpC,kDAAkD;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAC,SAAS,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAChE,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7B,sCAAsC;wBACtC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACxD,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC/C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;wBACpC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAoB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAiB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,eAAe,GAA2B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnF,2EAA2E;QAC3E,qFAAqF;QACrF,+CAA+C;QAC/C,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClE,QAAQ,CAAC,MAAM,CAAE,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpD,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACxB,eAAe,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;YACxC,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,MAAc,EAAQ,EAAE;YACpD,IAAI,GAAS,CAAC;YACd,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBAClD,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAE,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBACxB,eAAe,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;gBACtC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YACD,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/B,IAAI,aAA+C,CAAC;QAEpD,OAAO,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YAChD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1B,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1B,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACnC,QAAQ,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACnC,QAAQ,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;4BACzB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;oBACpE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBACzB,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnC,eAAe,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;oBACvC,QAAQ,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACpC,QAAQ,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAC5B,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,QAAQ,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,eAAe,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;YACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;YAChC,IAAI,GAAG,EAAE,KAAK,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,eAAgC,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChC,CAAC;CACF"}
package/dist/svg.d.ts ADDED
@@ -0,0 +1,186 @@
1
+ import { Element } from './element.ts';
2
+ export declare class SvgElement extends Element {
3
+ protected _createEl(): HTMLElement;
4
+ protected _setClassName(el: HTMLElement, value: string): void;
5
+ }
6
+ export declare class Svg extends SvgElement {
7
+ constructor();
8
+ }
9
+ export declare class G extends SvgElement {
10
+ constructor();
11
+ }
12
+ export declare class Defs extends SvgElement {
13
+ constructor();
14
+ }
15
+ export declare class Use extends SvgElement {
16
+ constructor();
17
+ }
18
+ export declare class SvgSymbol extends SvgElement {
19
+ constructor();
20
+ }
21
+ export declare class Mask extends SvgElement {
22
+ constructor();
23
+ }
24
+ export declare class ClipPath extends SvgElement {
25
+ constructor();
26
+ }
27
+ export declare class Marker extends SvgElement {
28
+ constructor();
29
+ }
30
+ export declare class Pattern extends SvgElement {
31
+ constructor();
32
+ }
33
+ export declare class ForeignObject extends SvgElement {
34
+ constructor();
35
+ }
36
+ export declare class Switch extends SvgElement {
37
+ constructor();
38
+ }
39
+ export declare class SvgView extends SvgElement {
40
+ constructor();
41
+ }
42
+ export declare class Path extends SvgElement {
43
+ constructor();
44
+ }
45
+ export declare class Circle extends SvgElement {
46
+ constructor();
47
+ }
48
+ export declare class Ellipse extends SvgElement {
49
+ constructor();
50
+ }
51
+ export declare class Line extends SvgElement {
52
+ constructor();
53
+ }
54
+ export declare class Rect extends SvgElement {
55
+ constructor();
56
+ }
57
+ export declare class Polygon extends SvgElement {
58
+ constructor();
59
+ }
60
+ export declare class Polyline extends SvgElement {
61
+ constructor();
62
+ }
63
+ export declare class Text extends SvgElement {
64
+ constructor();
65
+ }
66
+ export declare class Tspan extends SvgElement {
67
+ constructor();
68
+ }
69
+ export declare class TextPath extends SvgElement {
70
+ constructor();
71
+ }
72
+ export declare class LinearGradient extends SvgElement {
73
+ constructor();
74
+ }
75
+ export declare class RadialGradient extends SvgElement {
76
+ constructor();
77
+ }
78
+ export declare class Stop extends SvgElement {
79
+ constructor();
80
+ }
81
+ export declare class Image extends SvgElement {
82
+ constructor();
83
+ }
84
+ export declare class Filter extends SvgElement {
85
+ constructor();
86
+ }
87
+ export declare class Style extends SvgElement {
88
+ constructor();
89
+ }
90
+ export declare class Title extends SvgElement {
91
+ constructor();
92
+ }
93
+ export declare class Desc extends SvgElement {
94
+ constructor();
95
+ }
96
+ export declare class Metadata extends SvgElement {
97
+ constructor();
98
+ }
99
+ export declare class Animate extends SvgElement {
100
+ constructor();
101
+ }
102
+ export declare class AnimateMotion extends SvgElement {
103
+ constructor();
104
+ }
105
+ export declare class AnimateTransform extends SvgElement {
106
+ constructor();
107
+ }
108
+ export declare class Mpath extends SvgElement {
109
+ constructor();
110
+ }
111
+ export declare class FeBlend extends SvgElement {
112
+ constructor();
113
+ }
114
+ export declare class FeColorMatrix extends SvgElement {
115
+ constructor();
116
+ }
117
+ export declare class FeComponentTransfer extends SvgElement {
118
+ constructor();
119
+ }
120
+ export declare class FeComposite extends SvgElement {
121
+ constructor();
122
+ }
123
+ export declare class FeConvolveMatrix extends SvgElement {
124
+ constructor();
125
+ }
126
+ export declare class FeDiffuseLighting extends SvgElement {
127
+ constructor();
128
+ }
129
+ export declare class FeDisplacementMap extends SvgElement {
130
+ constructor();
131
+ }
132
+ export declare class FeDistantLight extends SvgElement {
133
+ constructor();
134
+ }
135
+ export declare class FeDropShadow extends SvgElement {
136
+ constructor();
137
+ }
138
+ export declare class FeFlood extends SvgElement {
139
+ constructor();
140
+ }
141
+ export declare class FeFuncA extends SvgElement {
142
+ constructor();
143
+ }
144
+ export declare class FeFuncB extends SvgElement {
145
+ constructor();
146
+ }
147
+ export declare class FeFuncG extends SvgElement {
148
+ constructor();
149
+ }
150
+ export declare class FeFuncR extends SvgElement {
151
+ constructor();
152
+ }
153
+ export declare class FeGaussianBlur extends SvgElement {
154
+ constructor();
155
+ }
156
+ export declare class FeImage extends SvgElement {
157
+ constructor();
158
+ }
159
+ export declare class FeMerge extends SvgElement {
160
+ constructor();
161
+ }
162
+ export declare class FeMergeNode extends SvgElement {
163
+ constructor();
164
+ }
165
+ export declare class FeMorphology extends SvgElement {
166
+ constructor();
167
+ }
168
+ export declare class FeOffset extends SvgElement {
169
+ constructor();
170
+ }
171
+ export declare class FePointLight extends SvgElement {
172
+ constructor();
173
+ }
174
+ export declare class FeSpecularLighting extends SvgElement {
175
+ constructor();
176
+ }
177
+ export declare class FeSpotLight extends SvgElement {
178
+ constructor();
179
+ }
180
+ export declare class FeTile extends SvgElement {
181
+ constructor();
182
+ }
183
+ export declare class FeTurbulence extends SvgElement {
184
+ constructor();
185
+ }
186
+ //# sourceMappingURL=svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
package/dist/svg.js ADDED
@@ -0,0 +1,191 @@
1
+ import { Element } from "./element.js";
2
+ const SVG_NS = 'http://www.w3.org/2000/svg';
3
+ export class SvgElement extends Element {
4
+ _createEl() {
5
+ return document.createElementNS(SVG_NS, this._tag);
6
+ }
7
+ _setClassName(el, value) {
8
+ el.setAttribute('class', value);
9
+ }
10
+ }
11
+ export class Svg extends SvgElement {
12
+ constructor() { super('svg'); }
13
+ }
14
+ export class G extends SvgElement {
15
+ constructor() { super('g'); }
16
+ }
17
+ export class Defs extends SvgElement {
18
+ constructor() { super('defs'); }
19
+ }
20
+ export class Use extends SvgElement {
21
+ constructor() { super('use'); }
22
+ }
23
+ export class SvgSymbol extends SvgElement {
24
+ constructor() { super('symbol'); }
25
+ }
26
+ export class Mask extends SvgElement {
27
+ constructor() { super('mask'); }
28
+ }
29
+ export class ClipPath extends SvgElement {
30
+ constructor() { super('clipPath'); }
31
+ }
32
+ export class Marker extends SvgElement {
33
+ constructor() { super('marker'); }
34
+ }
35
+ export class Pattern extends SvgElement {
36
+ constructor() { super('pattern'); }
37
+ }
38
+ export class ForeignObject extends SvgElement {
39
+ constructor() { super('foreignObject'); }
40
+ }
41
+ export class Switch extends SvgElement {
42
+ constructor() { super('switch'); }
43
+ }
44
+ export class SvgView extends SvgElement {
45
+ constructor() { super('view'); }
46
+ }
47
+ export class Path extends SvgElement {
48
+ constructor() { super('path'); }
49
+ }
50
+ export class Circle extends SvgElement {
51
+ constructor() { super('circle'); }
52
+ }
53
+ export class Ellipse extends SvgElement {
54
+ constructor() { super('ellipse'); }
55
+ }
56
+ export class Line extends SvgElement {
57
+ constructor() { super('line'); }
58
+ }
59
+ export class Rect extends SvgElement {
60
+ constructor() { super('rect'); }
61
+ }
62
+ export class Polygon extends SvgElement {
63
+ constructor() { super('polygon'); }
64
+ }
65
+ export class Polyline extends SvgElement {
66
+ constructor() { super('polyline'); }
67
+ }
68
+ export class Text extends SvgElement {
69
+ constructor() { super('text'); }
70
+ }
71
+ export class Tspan extends SvgElement {
72
+ constructor() { super('tspan'); }
73
+ }
74
+ export class TextPath extends SvgElement {
75
+ constructor() { super('textPath'); }
76
+ }
77
+ export class LinearGradient extends SvgElement {
78
+ constructor() { super('linearGradient'); }
79
+ }
80
+ export class RadialGradient extends SvgElement {
81
+ constructor() { super('radialGradient'); }
82
+ }
83
+ export class Stop extends SvgElement {
84
+ constructor() { super('stop'); }
85
+ }
86
+ export class Image extends SvgElement {
87
+ constructor() { super('image'); }
88
+ }
89
+ export class Filter extends SvgElement {
90
+ constructor() { super('filter'); }
91
+ }
92
+ export class Style extends SvgElement {
93
+ constructor() { super('style'); }
94
+ }
95
+ export class Title extends SvgElement {
96
+ constructor() { super('title'); }
97
+ }
98
+ export class Desc extends SvgElement {
99
+ constructor() { super('desc'); }
100
+ }
101
+ export class Metadata extends SvgElement {
102
+ constructor() { super('metadata'); }
103
+ }
104
+ export class Animate extends SvgElement {
105
+ constructor() { super('animate'); }
106
+ }
107
+ export class AnimateMotion extends SvgElement {
108
+ constructor() { super('animateMotion'); }
109
+ }
110
+ export class AnimateTransform extends SvgElement {
111
+ constructor() { super('animateTransform'); }
112
+ }
113
+ export class Mpath extends SvgElement {
114
+ constructor() { super('mpath'); }
115
+ }
116
+ export class FeBlend extends SvgElement {
117
+ constructor() { super('feBlend'); }
118
+ }
119
+ export class FeColorMatrix extends SvgElement {
120
+ constructor() { super('feColorMatrix'); }
121
+ }
122
+ export class FeComponentTransfer extends SvgElement {
123
+ constructor() { super('feComponentTransfer'); }
124
+ }
125
+ export class FeComposite extends SvgElement {
126
+ constructor() { super('feComposite'); }
127
+ }
128
+ export class FeConvolveMatrix extends SvgElement {
129
+ constructor() { super('feConvolveMatrix'); }
130
+ }
131
+ export class FeDiffuseLighting extends SvgElement {
132
+ constructor() { super('feDiffuseLighting'); }
133
+ }
134
+ export class FeDisplacementMap extends SvgElement {
135
+ constructor() { super('feDisplacementMap'); }
136
+ }
137
+ export class FeDistantLight extends SvgElement {
138
+ constructor() { super('feDistantLight'); }
139
+ }
140
+ export class FeDropShadow extends SvgElement {
141
+ constructor() { super('feDropShadow'); }
142
+ }
143
+ export class FeFlood extends SvgElement {
144
+ constructor() { super('feFlood'); }
145
+ }
146
+ export class FeFuncA extends SvgElement {
147
+ constructor() { super('feFuncA'); }
148
+ }
149
+ export class FeFuncB extends SvgElement {
150
+ constructor() { super('feFuncB'); }
151
+ }
152
+ export class FeFuncG extends SvgElement {
153
+ constructor() { super('feFuncG'); }
154
+ }
155
+ export class FeFuncR extends SvgElement {
156
+ constructor() { super('feFuncR'); }
157
+ }
158
+ export class FeGaussianBlur extends SvgElement {
159
+ constructor() { super('feGaussianBlur'); }
160
+ }
161
+ export class FeImage extends SvgElement {
162
+ constructor() { super('feImage'); }
163
+ }
164
+ export class FeMerge extends SvgElement {
165
+ constructor() { super('feMerge'); }
166
+ }
167
+ export class FeMergeNode extends SvgElement {
168
+ constructor() { super('feMergeNode'); }
169
+ }
170
+ export class FeMorphology extends SvgElement {
171
+ constructor() { super('feMorphology'); }
172
+ }
173
+ export class FeOffset extends SvgElement {
174
+ constructor() { super('feOffset'); }
175
+ }
176
+ export class FePointLight extends SvgElement {
177
+ constructor() { super('fePointLight'); }
178
+ }
179
+ export class FeSpecularLighting extends SvgElement {
180
+ constructor() { super('feSpecularLighting'); }
181
+ }
182
+ export class FeSpotLight extends SvgElement {
183
+ constructor() { super('feSpotLight'); }
184
+ }
185
+ export class FeTile extends SvgElement {
186
+ constructor() { super('feTile'); }
187
+ }
188
+ export class FeTurbulence extends SvgElement {
189
+ constructor() { super('feTurbulence'); }
190
+ }
191
+ //# sourceMappingURL=svg.js.map