@geajs/ui 0.2.4 → 0.2.9
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/accordion.d.mts +2 -2
- package/dist/accordion.mjs +92 -122
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert.d.mts +3 -3
- package/dist/alert.mjs +45 -107
- package/dist/alert.mjs.map +1 -1
- package/dist/avatar.d.mts +2 -2
- package/dist/avatar.mjs +38 -62
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.d.mts +1 -1
- package/dist/badge.mjs +18 -43
- package/dist/badge.mjs.map +1 -1
- package/dist/bind.mjs +130 -0
- package/dist/bind.mjs.map +1 -0
- package/dist/button.d.mts +3 -2
- package/dist/button.mjs +30 -85
- package/dist/button.mjs.map +1 -1
- package/dist/card.d.mts +6 -6
- package/dist/card.mjs +82 -194
- package/dist/card.mjs.map +1 -1
- package/dist/checkbox.d.mts +2 -2
- package/dist/checkbox.mjs +30 -31
- package/dist/checkbox.mjs.map +1 -1
- package/dist/clipboard.d.mts +2 -2
- package/dist/clipboard.mjs +49 -55
- package/dist/clipboard.mjs.map +1 -1
- package/dist/collapsible.d.mts +2 -2
- package/dist/collapsible.mjs +18 -45
- package/dist/collapsible.mjs.map +1 -1
- package/dist/combobox.d.mts +2 -2
- package/dist/combobox.mjs +322 -261
- package/dist/combobox.mjs.map +1 -1
- package/dist/compiled-component.mjs +119 -0
- package/dist/compiled-component.mjs.map +1 -0
- package/dist/compiled-reactive-component.mjs +337 -0
- package/dist/compiled-reactive-component.mjs.map +1 -0
- package/dist/component-id.mjs +10 -0
- package/dist/component-id.mjs.map +1 -0
- package/dist/conditional-truthy.mjs +48 -0
- package/dist/conditional-truthy.mjs.map +1 -0
- package/dist/conditional.mjs +54 -0
- package/dist/conditional.mjs.map +1 -0
- package/dist/delegate-event.mjs +53 -0
- package/dist/delegate-event.mjs.map +1 -0
- package/dist/dialog.d.mts +4 -3
- package/dist/dialog.mjs +57 -70
- package/dist/dialog.mjs.map +1 -1
- package/dist/dirty-symbols.mjs +7 -0
- package/dist/dirty-symbols.mjs.map +1 -0
- package/dist/disposer.mjs +46 -0
- package/dist/disposer.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +9 -1
- package/dist/dnd-manager.mjs +67 -29
- package/dist/dnd-manager.mjs.map +1 -1
- package/dist/drag-drop-context.d.mts +1 -1
- package/dist/drag-drop-context.mjs +17 -33
- package/dist/drag-drop-context.mjs.map +1 -1
- package/dist/draggable.d.mts +1 -1
- package/dist/draggable.mjs +2 -91
- package/dist/draggable2.mjs +321 -0
- package/dist/draggable2.mjs.map +1 -0
- package/dist/droppable.d.mts +1 -1
- package/dist/droppable.mjs +20 -44
- package/dist/droppable.mjs.map +1 -1
- package/dist/file-upload.d.mts +2 -2
- package/dist/file-upload.mjs +337 -122
- package/dist/file-upload.mjs.map +1 -1
- package/dist/hover-card.d.mts +2 -2
- package/dist/hover-card.mjs +24 -59
- package/dist/hover-card.mjs.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/input.d.mts +1 -1
- package/dist/input.mjs +1 -93
- package/dist/input2.mjs +56 -0
- package/dist/input2.mjs.map +1 -0
- package/dist/internal-symbols.mjs +9 -0
- package/dist/internal-symbols.mjs.map +1 -0
- package/dist/item-obs.mjs +68 -0
- package/dist/item-obs.mjs.map +1 -0
- package/dist/keyed-list-symbols.mjs +6 -0
- package/dist/keyed-list-symbols.mjs.map +1 -0
- package/dist/keyed-list.mjs +487 -0
- package/dist/keyed-list.mjs.map +1 -0
- package/dist/label.d.mts +1 -1
- package/dist/label.mjs +20 -45
- package/dist/label.mjs.map +1 -1
- package/dist/menu.d.mts +2 -2
- package/dist/menu.mjs +87 -41
- package/dist/menu.mjs.map +1 -1
- package/dist/number-input.d.mts +2 -2
- package/dist/number-input.mjs +28 -32
- package/dist/number-input.mjs.map +1 -1
- package/dist/pagination.d.mts +2 -2
- package/dist/pagination.mjs +12 -35
- package/dist/pagination.mjs.map +1 -1
- package/dist/patch.mjs +21 -0
- package/dist/patch.mjs.map +1 -0
- package/dist/pin-input.d.mts +2 -2
- package/dist/pin-input.mjs +88 -87
- package/dist/pin-input.mjs.map +1 -1
- package/dist/popover.d.mts +2 -2
- package/dist/popover.mjs +45 -67
- package/dist/popover.mjs.map +1 -1
- package/dist/progress.d.mts +2 -2
- package/dist/progress.mjs +37 -43
- package/dist/progress.mjs.map +1 -1
- package/dist/radio-group.d.mts +2 -2
- package/dist/radio-group.mjs +99 -140
- package/dist/radio-group.mjs.map +1 -1
- package/dist/rating-group.d.mts +2 -2
- package/dist/rating-group.mjs +91 -99
- package/dist/rating-group.mjs.map +1 -1
- package/dist/reactive-attr.mjs +13 -0
- package/dist/reactive-attr.mjs.map +1 -0
- package/dist/reactive-bool.mjs +13 -0
- package/dist/reactive-bool.mjs.map +1 -0
- package/dist/reactive-class-name.mjs +15 -0
- package/dist/reactive-class-name.mjs.map +1 -0
- package/dist/reactive-class.mjs +53 -0
- package/dist/reactive-class.mjs.map +1 -0
- package/dist/reactive-style.mjs +21 -0
- package/dist/reactive-style.mjs.map +1 -0
- package/dist/reactive-text.mjs +62 -0
- package/dist/reactive-text.mjs.map +1 -0
- package/dist/select.d.mts +2 -2
- package/dist/select.mjs +106 -186
- package/dist/select.mjs.map +1 -1
- package/dist/separator.d.mts +1 -1
- package/dist/separator.mjs +19 -45
- package/dist/separator.mjs.map +1 -1
- package/dist/skeleton.d.mts +1 -1
- package/dist/skeleton.mjs +11 -35
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -2
- package/dist/slider.mjs +31 -32
- package/dist/slider.mjs.map +1 -1
- package/dist/switch.d.mts +2 -2
- package/dist/switch.mjs +30 -31
- package/dist/switch.mjs.map +1 -1
- package/dist/tabs.d.mts +7 -2
- package/dist/tabs.mjs +180 -147
- package/dist/tabs.mjs.map +1 -1
- package/dist/tags-input.d.mts +2 -2
- package/dist/tags-input.mjs +102 -188
- package/dist/tags-input.mjs.map +1 -1
- package/dist/textarea.d.mts +1 -1
- package/dist/textarea.mjs +32 -75
- package/dist/textarea.mjs.map +1 -1
- package/dist/theme.css +4 -5
- package/dist/toast.d.mts +1 -1
- package/dist/toast.mjs +14 -34
- package/dist/toast.mjs.map +1 -1
- package/dist/toggle-group.d.mts +2 -2
- package/dist/toggle-group.mjs +78 -85
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/tooltip.d.mts +2 -2
- package/dist/tooltip.mjs +23 -43
- package/dist/tooltip.mjs.map +1 -1
- package/dist/tree-view.d.mts +2 -2
- package/dist/tree-view.mjs +32 -50
- package/dist/tree-view.mjs.map +1 -1
- package/dist/types.d.mts +9 -0
- package/dist/zag-component.d.mts +25 -3
- package/dist/zag-component.mjs +63 -16
- package/dist/zag-component.mjs.map +1 -1
- package/package.json +4 -3
- package/dist/cn.mjs +0 -10
- package/dist/cn.mjs.map +0 -1
- package/dist/draggable.mjs.map +0 -1
- package/dist/input.mjs.map +0 -1
package/dist/combobox.mjs
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { o as GEA_CREATE_TEMPLATE, u as GEA_PROXY_RAW } from "./bind.mjs";
|
|
3
|
+
import { n as _DIRTY_PROPS, t as _DIRTY } from "./dirty-symbols.mjs";
|
|
4
|
+
import { n as reactiveTextValue } from "./reactive-text.mjs";
|
|
5
|
+
import { t as reactiveClass } from "./reactive-class.mjs";
|
|
6
|
+
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
7
|
+
import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
|
|
3
8
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
9
|
import * as combobox from "@zag-js/combobox";
|
|
5
10
|
//#region src/components/combobox.tsx
|
|
6
|
-
|
|
11
|
+
let _tpl0_root = null;
|
|
12
|
+
function _tpl0_create() {
|
|
13
|
+
const t = document.createElement("template");
|
|
14
|
+
t.innerHTML = "<div data-part=root><!--1--><div data-part=control class=\"combobox-control flex\"><input data-part=input class=\"combobox-input flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"><button data-part=trigger class=\"combobox-trigger inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2\">▼</button></div><div data-part=positioner class=combobox-positioner><div data-part=content class=\"combobox-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"><div data-part=list>";
|
|
15
|
+
return t.content.firstChild;
|
|
16
|
+
}
|
|
17
|
+
let _tpl1_root = null;
|
|
18
|
+
function _tpl1_create() {
|
|
19
|
+
const t = document.createElement("template");
|
|
20
|
+
t.innerHTML = "<label data-part=label class=\"combobox-label text-sm font-medium mb-1 block\">0";
|
|
21
|
+
return t.content.firstChild;
|
|
22
|
+
}
|
|
23
|
+
let _tpl2_root = null;
|
|
24
|
+
function _tpl2_create() {
|
|
25
|
+
const t = document.createElement("template");
|
|
26
|
+
t.innerHTML = "<div data-part=item class=\"combobox-item relative flex cursor-pointer select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground\"><span data-part=item-text>0</span><span data-part=item-indicator class=\"combobox-item-indicator ml-auto\">✓";
|
|
27
|
+
return t.content.firstChild;
|
|
28
|
+
}
|
|
7
29
|
var Combobox = class extends ZagComponent {
|
|
8
|
-
static {
|
|
9
|
-
this.__geaTagName = "gea-combobox";
|
|
10
|
-
}
|
|
11
|
-
#__rowEls_b1;
|
|
12
|
-
#__dc_b1;
|
|
13
|
-
constructor(...args) {
|
|
14
|
-
super(...args);
|
|
15
|
-
this.props;
|
|
16
|
-
this[geaCondValueSymbol(0)] = !!this.props.label;
|
|
17
|
-
this[GEA_REGISTER_COND](0, "c0", () => {
|
|
18
|
-
this.props;
|
|
19
|
-
return this.props.label;
|
|
20
|
-
}, () => {
|
|
21
|
-
this.props;
|
|
22
|
-
return `<label data-part="label" class="combobox-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(this.props.label))}</label>`;
|
|
23
|
-
}, null);
|
|
24
|
-
}
|
|
25
30
|
created(props) {
|
|
26
31
|
this._allItems = props.items || [];
|
|
27
32
|
this.filteredItems = [...this._allItems];
|
|
@@ -129,258 +134,314 @@ var Combobox = class extends ZagComponent {
|
|
|
129
134
|
this.value = api.value;
|
|
130
135
|
this.inputValue = api.inputValue;
|
|
131
136
|
}
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
137
|
+
[GEA_CREATE_TEMPLATE](d) {
|
|
138
|
+
const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
|
|
139
|
+
const el0 = root;
|
|
140
|
+
const anchor1 = root.firstChild;
|
|
141
|
+
const parent2 = root.childNodes[2].firstChild.firstChild;
|
|
142
|
+
reactiveClass(el0, d, this, () => this.props.class || "");
|
|
143
|
+
conditionalTruthy(anchor1.parentNode, anchor1, d, this, () => this.props.label, (d) => {
|
|
144
|
+
const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
|
|
145
|
+
const t0 = root.firstChild;
|
|
146
|
+
reactiveTextValue(t0, d, this, () => this.props.label);
|
|
147
|
+
return root;
|
|
148
|
+
});
|
|
149
|
+
const __ki_L0 = (item, idx, d) => {
|
|
150
|
+
const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
|
|
151
|
+
root.setAttribute("data-value", String(item.value));
|
|
152
|
+
root.setAttribute("data-label", String(item.label));
|
|
153
|
+
root.firstChild.setAttribute("data-value", String(item.value));
|
|
154
|
+
root.firstChild.setAttribute("data-label", String(item.label));
|
|
155
|
+
{
|
|
156
|
+
const __n = root.firstChild.firstChild;
|
|
157
|
+
__n.nodeValue = `${item.label ?? ""}`;
|
|
145
158
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
label
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
__observe_local_filteredItems(filteredItems, change) {
|
|
268
|
-
const __id = this.id;
|
|
269
|
-
if (!this.__filteredItems_container) this.__filteredItems_container = __gid(__id + "-b1");
|
|
270
|
-
if (!this.__filteredItems_container) return;
|
|
271
|
-
if (Array.isArray(filteredItems) && filteredItems.length === 0) {
|
|
272
|
-
this.#__rowEls_b1 = null;
|
|
273
|
-
this.__filteredItems_container.textContent = "";
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
this[GEA_ENSURE_ARRAY_CONFIGS]();
|
|
277
|
-
this[GEA_APPLY_LIST_CHANGES](this.__filteredItems_container, filteredItems, change, this.__filteredItemsListConfig);
|
|
278
|
-
}
|
|
279
|
-
[GEA_ENSURE_ARRAY_CONFIGS]() {
|
|
280
|
-
if (!this.__filteredItemsListConfig) this.__filteredItemsListConfig = {
|
|
281
|
-
arrayPathParts: ["filteredItems"],
|
|
282
|
-
render: this.renderFilteredItemsItem.bind(this),
|
|
283
|
-
create: this.createFilteredItemsItem.bind(this),
|
|
284
|
-
patchRow: this.patchFilteredItemsItem && this.patchFilteredItemsItem.bind(this),
|
|
285
|
-
getKey: (item) => String(item?.value ?? item),
|
|
286
|
-
propPatchers: {
|
|
287
|
-
"value": [
|
|
288
|
-
(row, value, item) => {
|
|
289
|
-
var __av = item.value;
|
|
290
|
-
if (__av == null || __av === false) row.removeAttribute("data-value");
|
|
291
|
-
else {
|
|
292
|
-
const __newAttr = String(__av);
|
|
293
|
-
if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
|
|
159
|
+
root.childNodes[1].setAttribute("data-value", String(item.value));
|
|
160
|
+
root.childNodes[1].setAttribute("data-label", String(item.label));
|
|
161
|
+
root[GEA_DOM_ITEM] = item;
|
|
162
|
+
return root;
|
|
163
|
+
};
|
|
164
|
+
const __kp_L0 = (el, item) => {
|
|
165
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) el.setAttribute("data-value", String(item.value));
|
|
166
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) el.setAttribute("data-label", String(item.label));
|
|
167
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) (el.__r0 || (el.__r0 = el.firstChild)).setAttribute("data-value", String(item.value));
|
|
168
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) (el.__r0 || (el.__r0 = el.firstChild)).setAttribute("data-label", String(item.label));
|
|
169
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) {
|
|
170
|
+
const __n = el.__r1 || (el.__r1 = el.firstChild.firstChild);
|
|
171
|
+
__n.nodeValue = `${item.label ?? ""}`;
|
|
172
|
+
}
|
|
173
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) (el.__r2 || (el.__r2 = el.childNodes[1])).setAttribute("data-value", String(item.value));
|
|
174
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) (el.__r2 || (el.__r2 = el.childNodes[1])).setAttribute("data-label", String(item.label));
|
|
175
|
+
};
|
|
176
|
+
{
|
|
177
|
+
const __kl_container = parent2;
|
|
178
|
+
const __kl_root = this;
|
|
179
|
+
const __kl_key = (item, idx) => item.value;
|
|
180
|
+
const __kl_create = (item, idx) => {
|
|
181
|
+
const __k = item.value;
|
|
182
|
+
const __el = __ki_L0(item, idx);
|
|
183
|
+
return {
|
|
184
|
+
key: __k,
|
|
185
|
+
item: item && item[GEA_PROXY_RAW] || item,
|
|
186
|
+
element: __el
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
const __kl_patch = (e, newItem, newIdx) => {
|
|
190
|
+
e.item = newItem && newItem[GEA_PROXY_RAW] || newItem;
|
|
191
|
+
__kp_L0(e.element, newItem);
|
|
192
|
+
};
|
|
193
|
+
const __kl_unwrap = (v) => v && typeof v === "object" && v[GEA_PROXY_RAW] || v;
|
|
194
|
+
const __kl_resolve = () => {
|
|
195
|
+
const v = __kl_root?.["filteredItems"];
|
|
196
|
+
return Array.isArray(v) ? v : [];
|
|
197
|
+
};
|
|
198
|
+
let __kl_entries = [];
|
|
199
|
+
const __kl_byKey = /* @__PURE__ */ new Map();
|
|
200
|
+
const __kl_remove = (entry) => {
|
|
201
|
+
entry.disposer?.dispose();
|
|
202
|
+
__kl_byKey.delete(entry.key);
|
|
203
|
+
if (entry.element.parentNode) entry.element.parentNode.removeChild(entry.element);
|
|
204
|
+
};
|
|
205
|
+
const __kl_first = __kl_resolve();
|
|
206
|
+
if (__kl_first.length > 0) {
|
|
207
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
208
|
+
for (let i = 0; i < __kl_first.length; i++) {
|
|
209
|
+
const item = __kl_first[i];
|
|
210
|
+
const entry = __kl_create(item, i);
|
|
211
|
+
__kl_entries.push(entry);
|
|
212
|
+
__kl_byKey.set(entry.key, entry);
|
|
213
|
+
frag.appendChild(entry.element);
|
|
214
|
+
if (item && typeof item === "object") {
|
|
215
|
+
item[_DIRTY] = false;
|
|
216
|
+
item[_DIRTY_PROPS]?.clear();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
__kl_container.appendChild(frag);
|
|
220
|
+
}
|
|
221
|
+
let __kl_prev = __kl_first;
|
|
222
|
+
const __kl_reconcile = (arr, changes) => {
|
|
223
|
+
if (arr === __kl_prev && __kl_entries.length === arr.length) {
|
|
224
|
+
let structural = false;
|
|
225
|
+
let aipuOnly = changes && changes.length > 0;
|
|
226
|
+
if (changes && changes.length > 0) for (let i = 0; i < changes.length; i++) {
|
|
227
|
+
const change = changes[i];
|
|
228
|
+
if (change.type === "append" || change.type === "remove" || change.type === "delete" || change.type === "reorder") {
|
|
229
|
+
structural = true;
|
|
230
|
+
aipuOnly = false;
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
if (!change.aipu) aipuOnly = false;
|
|
234
|
+
else structural = true;
|
|
235
|
+
}
|
|
236
|
+
if (aipuOnly && changes.length === 2) {
|
|
237
|
+
const a = changes[0].arix;
|
|
238
|
+
const b = changes[1].arix;
|
|
239
|
+
if (a >= 0 && b >= 0 && a < __kl_entries.length && b < __kl_entries.length && a !== b) {
|
|
240
|
+
const entryA = __kl_entries[a];
|
|
241
|
+
const entryB = __kl_entries[b];
|
|
242
|
+
const newAKey = __kl_key(arr[a], a);
|
|
243
|
+
const newBKey = __kl_key(arr[b], b);
|
|
244
|
+
if (entryA.key === newBKey && entryB.key === newAKey) {
|
|
245
|
+
const refB = entryB.element.nextSibling;
|
|
246
|
+
__kl_container.insertBefore(entryB.element, entryA.element);
|
|
247
|
+
if (refB) __kl_container.insertBefore(entryA.element, refB);
|
|
248
|
+
else __kl_container.appendChild(entryA.element);
|
|
249
|
+
__kl_entries[a] = entryB;
|
|
250
|
+
__kl_entries[b] = entryA;
|
|
251
|
+
if (__kl_unwrap(arr[a]) !== entryB.item) __kl_patch(entryB, arr[a], a);
|
|
252
|
+
if (__kl_unwrap(arr[b]) !== entryA.item) __kl_patch(entryA, arr[b], b);
|
|
253
|
+
__kl_prev = arr;
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (!structural) {
|
|
259
|
+
const raw = arr[GEA_PROXY_RAW] || arr;
|
|
260
|
+
for (let i = 0; i < raw.length; i++) {
|
|
261
|
+
const item = raw[i];
|
|
262
|
+
if (item && typeof item === "object" && item[_DIRTY]) {
|
|
263
|
+
__kl_patch(__kl_entries[i], item, i);
|
|
264
|
+
item[_DIRTY] = false;
|
|
265
|
+
item[_DIRTY_PROPS]?.clear();
|
|
266
|
+
__kl_entries[i].item = item;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (changes && changes.length > 0 && __kl_entries.length < arr.length) {
|
|
273
|
+
let onlyAppends = true;
|
|
274
|
+
let appendCount = 0;
|
|
275
|
+
for (let i = 0; i < changes.length; i++) {
|
|
276
|
+
if (changes[i].type !== "append") {
|
|
277
|
+
onlyAppends = false;
|
|
278
|
+
break;
|
|
294
279
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
280
|
+
appendCount += changes[i].count || 0;
|
|
281
|
+
}
|
|
282
|
+
if (onlyAppends && appendCount === arr.length - __kl_entries.length) {
|
|
283
|
+
const start = __kl_entries.length;
|
|
284
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
285
|
+
for (let i = start; i < arr.length; i++) {
|
|
286
|
+
const entry = __kl_create(arr[i], i);
|
|
287
|
+
__kl_entries.push(entry);
|
|
288
|
+
__kl_byKey.set(entry.key, entry);
|
|
289
|
+
frag.appendChild(entry.element);
|
|
304
290
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
291
|
+
__kl_container.appendChild(frag);
|
|
292
|
+
__kl_prev = arr;
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (changes && changes.length > 0 && __kl_entries.length > arr.length) {
|
|
297
|
+
let onlyRemoves = true;
|
|
298
|
+
let totalRemoved = 0;
|
|
299
|
+
for (let i = 0; i < changes.length; i++) {
|
|
300
|
+
const change = changes[i];
|
|
301
|
+
if (change.type !== "remove") {
|
|
302
|
+
onlyRemoves = false;
|
|
303
|
+
break;
|
|
314
304
|
}
|
|
315
|
-
|
|
316
|
-
(row, value) => {
|
|
317
|
-
row.classList.toggle("value", value);
|
|
318
|
-
},
|
|
319
|
-
(row, value) => {
|
|
320
|
-
row.classList.toggle("value", value);
|
|
321
|
-
},
|
|
322
|
-
(row, value) => {
|
|
323
|
-
row.classList.toggle("value", value);
|
|
324
|
-
},
|
|
325
|
-
(row, value) => {
|
|
326
|
-
row.classList.toggle("value", value);
|
|
305
|
+
totalRemoved += change.count || 0;
|
|
327
306
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
307
|
+
if (onlyRemoves && __kl_entries.length - arr.length === totalRemoved) {
|
|
308
|
+
if (changes.length === 1 && changes[0].count === 1) {
|
|
309
|
+
const idx = changes[0].start;
|
|
310
|
+
if (idx >= 0 && idx < __kl_entries.length) {
|
|
311
|
+
__kl_remove(__kl_entries[idx]);
|
|
312
|
+
__kl_entries.splice(idx, 1);
|
|
313
|
+
}
|
|
314
|
+
__kl_prev = arr;
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const removed = [];
|
|
318
|
+
for (let i = 0; i < changes.length; i++) {
|
|
319
|
+
const start = changes[i].start;
|
|
320
|
+
const count = changes[i].count;
|
|
321
|
+
for (let j = 0; j < count; j++) removed.push(start + j);
|
|
336
322
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
const __newAttr = String(__av);
|
|
345
|
-
if (__target.getAttribute("data-label") !== __newAttr) __target.setAttribute("data-label", __newAttr);
|
|
323
|
+
removed.sort((a, b) => b - a);
|
|
324
|
+
for (let i = 0; i < removed.length; i++) {
|
|
325
|
+
const idx = removed[i];
|
|
326
|
+
if (idx >= 0 && idx < __kl_entries.length) {
|
|
327
|
+
__kl_remove(__kl_entries[idx]);
|
|
328
|
+
__kl_entries.splice(idx, 1);
|
|
329
|
+
}
|
|
346
330
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
331
|
+
__kl_prev = arr;
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const newLen = arr.length;
|
|
336
|
+
const oldLen = __kl_entries.length;
|
|
337
|
+
if (oldLen === 0 && newLen > 0) {
|
|
338
|
+
const nextEntries = new Array(newLen);
|
|
339
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
340
|
+
for (let i = 0; i < newLen; i++) {
|
|
341
|
+
const entry = __kl_create(arr[i], i);
|
|
342
|
+
nextEntries[i] = entry;
|
|
343
|
+
__kl_byKey.set(entry.key, entry);
|
|
344
|
+
frag.appendChild(entry.element);
|
|
345
|
+
}
|
|
346
|
+
__kl_container.appendChild(frag);
|
|
347
|
+
__kl_entries = nextEntries;
|
|
348
|
+
__kl_prev = arr;
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
const newKeys = new Array(newLen);
|
|
352
|
+
for (let i = 0; i < newLen; i++) newKeys[i] = __kl_key(arr[i], i);
|
|
353
|
+
if (newLen === 0) {
|
|
354
|
+
if (__kl_container.childNodes.length === oldLen) {
|
|
355
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
|
|
356
|
+
__kl_container.textContent = "";
|
|
357
|
+
} else for (let i = oldLen - 1; i >= 0; i--) __kl_remove(__kl_entries[i]);
|
|
358
|
+
__kl_entries = [];
|
|
359
|
+
__kl_byKey.clear();
|
|
360
|
+
__kl_prev = arr;
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
if (newLen === oldLen) {
|
|
364
|
+
let diffA = -1;
|
|
365
|
+
let diffB = -1;
|
|
366
|
+
let diffCount = 0;
|
|
367
|
+
for (let i = 0; i < newLen; i++) if (__kl_entries[i].key !== newKeys[i]) {
|
|
368
|
+
if (diffCount === 0) diffA = i;
|
|
369
|
+
else if (diffCount === 1) diffB = i;
|
|
370
|
+
diffCount++;
|
|
371
|
+
if (diffCount > 2) break;
|
|
372
|
+
}
|
|
373
|
+
if (diffCount === 2 && __kl_entries[diffA].key === newKeys[diffB] && __kl_entries[diffB].key === newKeys[diffA]) {
|
|
374
|
+
const entryA = __kl_entries[diffA];
|
|
375
|
+
const entryB = __kl_entries[diffB];
|
|
376
|
+
const refB = entryB.element.nextSibling;
|
|
377
|
+
__kl_container.insertBefore(entryB.element, entryA.element);
|
|
378
|
+
if (refB) __kl_container.insertBefore(entryA.element, refB);
|
|
379
|
+
else __kl_container.appendChild(entryA.element);
|
|
380
|
+
__kl_entries[diffA] = entryB;
|
|
381
|
+
__kl_entries[diffB] = entryA;
|
|
382
|
+
if (__kl_unwrap(arr[diffA]) !== entryB.item) __kl_patch(entryB, arr[diffA], diffA);
|
|
383
|
+
if (__kl_unwrap(arr[diffB]) !== entryA.item) __kl_patch(entryA, arr[diffB], diffB);
|
|
384
|
+
__kl_prev = arr;
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (oldLen > 0 && newLen > 0 && __kl_container.childNodes.length === oldLen) {
|
|
389
|
+
let disjoint = true;
|
|
390
|
+
for (let i = 0; i < newLen; i++) if (__kl_byKey.has(newKeys[i])) {
|
|
391
|
+
disjoint = false;
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
if (disjoint) {
|
|
395
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
|
|
396
|
+
__kl_byKey.clear();
|
|
397
|
+
const nextEntries = new Array(newLen);
|
|
398
|
+
const nextNodes = new Array(newLen);
|
|
399
|
+
for (let i = 0; i < newLen; i++) {
|
|
400
|
+
const entry = __kl_create(arr[i], i);
|
|
401
|
+
nextEntries[i] = entry;
|
|
402
|
+
nextNodes[i] = entry.element;
|
|
403
|
+
__kl_byKey.set(entry.key, entry);
|
|
365
404
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
405
|
+
__kl_container.replaceChildren(...nextNodes);
|
|
406
|
+
__kl_entries = nextEntries;
|
|
407
|
+
__kl_prev = arr;
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i]._i = i;
|
|
412
|
+
const seenOld = new Array(oldLen).fill(false);
|
|
413
|
+
const nextEntries = new Array(newLen);
|
|
414
|
+
for (let i = 0; i < newLen; i++) {
|
|
415
|
+
const entry = __kl_byKey.get(newKeys[i]);
|
|
416
|
+
if (entry) {
|
|
417
|
+
const oldIdx = entry._i;
|
|
418
|
+
seenOld[oldIdx] = true;
|
|
419
|
+
nextEntries[i] = entry;
|
|
375
420
|
}
|
|
376
|
-
|
|
421
|
+
}
|
|
422
|
+
for (let i = oldLen - 1; i >= 0; i--) if (!seenOld[i]) __kl_remove(__kl_entries[i]);
|
|
423
|
+
let nextRef = null;
|
|
424
|
+
for (let i = newLen - 1; i >= 0; i--) {
|
|
425
|
+
let entry = nextEntries[i];
|
|
426
|
+
if (!entry) {
|
|
427
|
+
entry = __kl_create(arr[i], i);
|
|
428
|
+
__kl_byKey.set(entry.key, entry);
|
|
429
|
+
} else if (entry.item !== __kl_unwrap(arr[i])) __kl_patch(entry, arr[i], i);
|
|
430
|
+
if (entry.element.parentNode !== __kl_container || entry.element.nextSibling !== nextRef) __kl_container.insertBefore(entry.element, nextRef);
|
|
431
|
+
nextEntries[i] = entry;
|
|
432
|
+
nextRef = entry.element;
|
|
433
|
+
}
|
|
434
|
+
__kl_entries = nextEntries;
|
|
435
|
+
__kl_prev = arr;
|
|
436
|
+
};
|
|
437
|
+
if (__kl_root && typeof __kl_root.observe === "function") {
|
|
438
|
+
const off = __kl_root.observe("filteredItems", (_value, changes) => {
|
|
439
|
+
__kl_reconcile(__kl_resolve(), changes);
|
|
440
|
+
});
|
|
441
|
+
d.add(off);
|
|
377
442
|
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
[GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
|
|
381
|
-
this[GEA_ENSURE_ARRAY_CONFIGS]();
|
|
382
|
-
if (!this[GEA_STORE_ROOT]) return;
|
|
383
|
-
this[GEA_OBSERVE](this, ["filteredItems"], this.__observe_local_filteredItems);
|
|
443
|
+
}
|
|
444
|
+
return root;
|
|
384
445
|
}
|
|
385
446
|
};
|
|
386
447
|
//#endregion
|