@marko/runtime-tags 6.1.18 → 6.1.19
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/debug/dom.js +6 -14
- package/dist/debug/dom.mjs +6 -14
- package/dist/debug/html.js +23 -20
- package/dist/debug/html.mjs +23 -20
- package/dist/dom/event.d.ts +1 -1
- package/dist/dom.js +6 -13
- package/dist/dom.mjs +6 -13
- package/dist/html/attrs.d.ts +6 -6
- package/dist/html.js +23 -20
- package/dist/html.mjs +23 -20
- package/dist/translator/index.js +31 -26
- package/dist/translator/visitors/tag/dynamic-tag.d.ts +1 -0
- package/package.json +1 -1
package/dist/debug/dom.js
CHANGED
|
@@ -230,19 +230,12 @@ function push(opt, item) {
|
|
|
230
230
|
}
|
|
231
231
|
//#endregion
|
|
232
232
|
//#region src/dom/event.ts
|
|
233
|
-
const defaultDelegator = /* @__PURE__ */ createDelegator();
|
|
234
233
|
function _on(element, type, handler) {
|
|
235
234
|
assertHandlerIsFunction("on" + type[0].toUpperCase() + type.slice(1), handler);
|
|
236
|
-
if (element["$" + type] === void 0)
|
|
235
|
+
if (element["$" + type] === void 0) delegate(type, handleDelegated);
|
|
237
236
|
element["$" + type] = handler || null;
|
|
238
237
|
}
|
|
239
|
-
|
|
240
|
-
function createDelegator() {
|
|
241
|
-
const kEvents = Symbol();
|
|
242
|
-
return function ensureDelegated(node, type, handler) {
|
|
243
|
-
((node = node.getRootNode())[kEvents] ||= {})[type] ||= (node.addEventListener(type, handler, true), 1);
|
|
244
|
-
};
|
|
245
|
-
}
|
|
238
|
+
const delegate = (type, handler) => handler[type] ||= (document.addEventListener(type, handler, true), 1);
|
|
246
239
|
function handleDelegated(ev) {
|
|
247
240
|
let target = !rendering && ev.target;
|
|
248
241
|
Object.defineProperty(ev, "currentTarget", {
|
|
@@ -867,7 +860,6 @@ function _el(id, accessor) {
|
|
|
867
860
|
//#endregion
|
|
868
861
|
//#region src/dom/controllable.ts
|
|
869
862
|
let inputType = "";
|
|
870
|
-
const controllableDelegate = /* @__PURE__ */ createDelegator();
|
|
871
863
|
function _attr_input_checked_default(scope, nodeAccessor, checked) {
|
|
872
864
|
const el = scope[nodeAccessor];
|
|
873
865
|
const normalizedChecked = isNotVoid(checked);
|
|
@@ -927,7 +919,7 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
927
919
|
const oldValue = scope["ControlledValue:" + nodeAccessor];
|
|
928
920
|
const newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
929
921
|
if (el.name && el.type[0] === "r") {
|
|
930
|
-
for (const radio of
|
|
922
|
+
for (const radio of document.querySelectorAll(`[type=radio][name=${CSS.escape(el.name)}]`)) if (radio.form === el.form) radio.checked = Array.isArray(oldValue) ? oldValue.includes(radio.value) : oldValue === radio.value;
|
|
931
923
|
} else el.checked = !el.checked;
|
|
932
924
|
checkedValueChange(newValue);
|
|
933
925
|
run();
|
|
@@ -969,7 +961,7 @@ function _attr_input_value_script(scope, nodeAccessor) {
|
|
|
969
961
|
}
|
|
970
962
|
function setInputValue(el, value) {
|
|
971
963
|
if (el.value !== value) {
|
|
972
|
-
const updatedPosition = resolveCursorPosition(inputType,
|
|
964
|
+
const updatedPosition = resolveCursorPosition(inputType, document.activeElement === el && el.selectionStart, el.value, el.value = value);
|
|
973
965
|
if (~updatedPosition) el.setSelectionRange(updatedPosition, updatedPosition);
|
|
974
966
|
}
|
|
975
967
|
}
|
|
@@ -1076,8 +1068,8 @@ function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
|
1076
1068
|
}
|
|
1077
1069
|
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
1078
1070
|
el._ = onChange;
|
|
1079
|
-
|
|
1080
|
-
if (el.form)
|
|
1071
|
+
delegate("input", handleChange);
|
|
1072
|
+
if (el.form) delegate("reset", handleFormReset);
|
|
1081
1073
|
if (isResuming && hasChanged(el)) queueMicrotask(onChange);
|
|
1082
1074
|
}
|
|
1083
1075
|
function handleChange(ev) {
|
package/dist/debug/dom.mjs
CHANGED
|
@@ -228,19 +228,12 @@ function push(opt, item) {
|
|
|
228
228
|
}
|
|
229
229
|
//#endregion
|
|
230
230
|
//#region src/dom/event.ts
|
|
231
|
-
const defaultDelegator = /* @__PURE__ */ createDelegator();
|
|
232
231
|
function _on(element, type, handler) {
|
|
233
232
|
assertHandlerIsFunction("on" + type[0].toUpperCase() + type.slice(1), handler);
|
|
234
|
-
if (element["$" + type] === void 0)
|
|
233
|
+
if (element["$" + type] === void 0) delegate(type, handleDelegated);
|
|
235
234
|
element["$" + type] = handler || null;
|
|
236
235
|
}
|
|
237
|
-
|
|
238
|
-
function createDelegator() {
|
|
239
|
-
const kEvents = Symbol();
|
|
240
|
-
return function ensureDelegated(node, type, handler) {
|
|
241
|
-
((node = node.getRootNode())[kEvents] ||= {})[type] ||= (node.addEventListener(type, handler, true), 1);
|
|
242
|
-
};
|
|
243
|
-
}
|
|
236
|
+
const delegate = (type, handler) => handler[type] ||= (document.addEventListener(type, handler, true), 1);
|
|
244
237
|
function handleDelegated(ev) {
|
|
245
238
|
let target = !rendering && ev.target;
|
|
246
239
|
Object.defineProperty(ev, "currentTarget", {
|
|
@@ -865,7 +858,6 @@ function _el(id, accessor) {
|
|
|
865
858
|
//#endregion
|
|
866
859
|
//#region src/dom/controllable.ts
|
|
867
860
|
let inputType = "";
|
|
868
|
-
const controllableDelegate = /* @__PURE__ */ createDelegator();
|
|
869
861
|
function _attr_input_checked_default(scope, nodeAccessor, checked) {
|
|
870
862
|
const el = scope[nodeAccessor];
|
|
871
863
|
const normalizedChecked = isNotVoid(checked);
|
|
@@ -925,7 +917,7 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
925
917
|
const oldValue = scope["ControlledValue:" + nodeAccessor];
|
|
926
918
|
const newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
927
919
|
if (el.name && el.type[0] === "r") {
|
|
928
|
-
for (const radio of
|
|
920
|
+
for (const radio of document.querySelectorAll(`[type=radio][name=${CSS.escape(el.name)}]`)) if (radio.form === el.form) radio.checked = Array.isArray(oldValue) ? oldValue.includes(radio.value) : oldValue === radio.value;
|
|
929
921
|
} else el.checked = !el.checked;
|
|
930
922
|
checkedValueChange(newValue);
|
|
931
923
|
run();
|
|
@@ -967,7 +959,7 @@ function _attr_input_value_script(scope, nodeAccessor) {
|
|
|
967
959
|
}
|
|
968
960
|
function setInputValue(el, value) {
|
|
969
961
|
if (el.value !== value) {
|
|
970
|
-
const updatedPosition = resolveCursorPosition(inputType,
|
|
962
|
+
const updatedPosition = resolveCursorPosition(inputType, document.activeElement === el && el.selectionStart, el.value, el.value = value);
|
|
971
963
|
if (~updatedPosition) el.setSelectionRange(updatedPosition, updatedPosition);
|
|
972
964
|
}
|
|
973
965
|
}
|
|
@@ -1074,8 +1066,8 @@ function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
|
1074
1066
|
}
|
|
1075
1067
|
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
1076
1068
|
el._ = onChange;
|
|
1077
|
-
|
|
1078
|
-
if (el.form)
|
|
1069
|
+
delegate("input", handleChange);
|
|
1070
|
+
if (el.form) delegate("reset", handleFormReset);
|
|
1079
1071
|
if (isResuming && hasChanged(el)) queueMicrotask(onChange);
|
|
1080
1072
|
}
|
|
1081
1073
|
function handleChange(ev) {
|
package/dist/debug/html.js
CHANGED
|
@@ -2475,29 +2475,29 @@ function _attr_option_value(value) {
|
|
|
2475
2475
|
}
|
|
2476
2476
|
const kSelectedValue = Symbol("selectedValue");
|
|
2477
2477
|
const kSelectedValueMatched = Symbol("selectedValueMatched");
|
|
2478
|
-
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
2479
|
-
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange);
|
|
2478
|
+
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content, serializeType) {
|
|
2479
|
+
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2480
2480
|
if (content) if (valueChange) {
|
|
2481
2481
|
const matched = { value: false };
|
|
2482
2482
|
withContext(kSelectedValue, value, () => withContext(kSelectedValueMatched, matched, content));
|
|
2483
2483
|
if (!matched.value && (Array.isArray(value) ? value.some((v) => normalizeStrAttrValue(v) !== "") : normalizeStrAttrValue(value) !== "")) console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
|
|
2484
2484
|
} else withContext(kSelectedValue, value, content);
|
|
2485
2485
|
}
|
|
2486
|
-
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2487
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2486
|
+
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2487
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2488
2488
|
return _escape(value);
|
|
2489
2489
|
}
|
|
2490
|
-
function _attr_input_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2491
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2490
|
+
function _attr_input_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2491
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2492
2492
|
return _attr("value", value);
|
|
2493
2493
|
}
|
|
2494
|
-
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
2495
|
-
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange);
|
|
2494
|
+
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange, serializeType) {
|
|
2495
|
+
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange, serializeType);
|
|
2496
2496
|
return isNotVoid(checked) ? " checked" : "";
|
|
2497
2497
|
}
|
|
2498
|
-
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
2498
|
+
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value, serializeType) {
|
|
2499
2499
|
const valueAttr = _attr("value", value);
|
|
2500
|
-
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange);
|
|
2500
|
+
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange, serializeType);
|
|
2501
2501
|
return normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
2502
2502
|
}
|
|
2503
2503
|
const checkedValuesRefs = /* @__PURE__ */ new WeakMap();
|
|
@@ -2511,9 +2511,9 @@ function getCheckedValueRef(checkedValue) {
|
|
|
2511
2511
|
return ref;
|
|
2512
2512
|
}
|
|
2513
2513
|
}
|
|
2514
|
-
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
2514
|
+
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange, serializeType) {
|
|
2515
2515
|
const normalizedOpen = isNotVoid(open);
|
|
2516
|
-
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange);
|
|
2516
|
+
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange, serializeType);
|
|
2517
2517
|
return normalizedOpen ? " open" : "";
|
|
2518
2518
|
}
|
|
2519
2519
|
function _attr_nonce() {
|
|
@@ -2529,9 +2529,9 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2529
2529
|
switch (tagName) {
|
|
2530
2530
|
case "input":
|
|
2531
2531
|
assertExclusiveAttrs(data);
|
|
2532
|
-
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange);
|
|
2533
|
-
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value);
|
|
2534
|
-
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange);
|
|
2532
|
+
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange, 1);
|
|
2533
|
+
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value, 1);
|
|
2534
|
+
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange, 1);
|
|
2535
2535
|
else break;
|
|
2536
2536
|
skip = /^(?:value|checked(?:Value)?)(?:Change)?$|[\s/>"'=]/;
|
|
2537
2537
|
break;
|
|
@@ -2548,7 +2548,7 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2548
2548
|
case "details":
|
|
2549
2549
|
case "dialog":
|
|
2550
2550
|
if (data.openChange) {
|
|
2551
|
-
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange);
|
|
2551
|
+
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange, 1);
|
|
2552
2552
|
skip = /^open(?:Change)?$|[\s/>"'=]/;
|
|
2553
2553
|
}
|
|
2554
2554
|
break;
|
|
@@ -2594,12 +2594,15 @@ function _attrs_partial_content(data, skip, nodeAccessor, scopeId, tagName, seri
|
|
|
2594
2594
|
_html(`${_attrs_partial(data, skip, nodeAccessor, scopeId, tagName)}>`);
|
|
2595
2595
|
_attr_content(nodeAccessor, scopeId, data?.content, serializeReason);
|
|
2596
2596
|
}
|
|
2597
|
-
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange) {
|
|
2597
|
+
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2598
2598
|
assertHandlerIsFunction("valueChange", valueChange);
|
|
2599
|
-
writeScope(scopeId, {
|
|
2599
|
+
writeScope(scopeId, serializeType ? {
|
|
2600
2600
|
["ControlledType:" + nodeAccessor]: type,
|
|
2601
2601
|
["ControlledValue:" + nodeAccessor]: value,
|
|
2602
2602
|
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2603
|
+
} : {
|
|
2604
|
+
["ControlledValue:" + nodeAccessor]: value,
|
|
2605
|
+
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2603
2606
|
});
|
|
2604
2607
|
}
|
|
2605
2608
|
function stringAttr(name, value) {
|
|
@@ -2665,10 +2668,10 @@ let _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, s
|
|
|
2665
2668
|
const renderContent = content || normalizeDynamicRenderer(input.content);
|
|
2666
2669
|
if (renderer === "textarea") {
|
|
2667
2670
|
if (renderContent) throw new Error("A dynamic tag rendering a `<textarea>` cannot have `content` and must use the `value` attribute instead.");
|
|
2668
|
-
_html(_attr_textarea_value(branchId, `#${renderer}/0`, input.value, input.valueChange));
|
|
2671
|
+
_html(_attr_textarea_value(branchId, `#${renderer}/0`, input.value, input.valueChange, 1));
|
|
2669
2672
|
} else if (renderContent) {
|
|
2670
2673
|
if (typeof renderContent !== "function") throw new Error(`Body content is not supported for the \`<${renderer}>\` tag.`);
|
|
2671
|
-
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, `#${renderer}/0`, input.value, input.valueChange, renderContent);
|
|
2674
|
+
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, `#${renderer}/0`, input.value, input.valueChange, renderContent, 1);
|
|
2672
2675
|
else _dynamic_tag(branchId, `#${renderer}/0`, renderContent, void 0, 0, void 0, serializeReason);
|
|
2673
2676
|
}
|
|
2674
2677
|
_html(`</${renderer}>`);
|
package/dist/debug/html.mjs
CHANGED
|
@@ -2473,29 +2473,29 @@ function _attr_option_value(value) {
|
|
|
2473
2473
|
}
|
|
2474
2474
|
const kSelectedValue = Symbol("selectedValue");
|
|
2475
2475
|
const kSelectedValueMatched = Symbol("selectedValueMatched");
|
|
2476
|
-
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
2477
|
-
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange);
|
|
2476
|
+
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content, serializeType) {
|
|
2477
|
+
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2478
2478
|
if (content) if (valueChange) {
|
|
2479
2479
|
const matched = { value: false };
|
|
2480
2480
|
withContext(kSelectedValue, value, () => withContext(kSelectedValueMatched, matched, content));
|
|
2481
2481
|
if (!matched.value && (Array.isArray(value) ? value.some((v) => normalizeStrAttrValue(v) !== "") : normalizeStrAttrValue(value) !== "")) console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
|
|
2482
2482
|
} else withContext(kSelectedValue, value, content);
|
|
2483
2483
|
}
|
|
2484
|
-
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2485
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2484
|
+
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2485
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2486
2486
|
return _escape(value);
|
|
2487
2487
|
}
|
|
2488
|
-
function _attr_input_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2489
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2488
|
+
function _attr_input_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2489
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2490
2490
|
return _attr("value", value);
|
|
2491
2491
|
}
|
|
2492
|
-
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
2493
|
-
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange);
|
|
2492
|
+
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange, serializeType) {
|
|
2493
|
+
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange, serializeType);
|
|
2494
2494
|
return isNotVoid(checked) ? " checked" : "";
|
|
2495
2495
|
}
|
|
2496
|
-
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
2496
|
+
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value, serializeType) {
|
|
2497
2497
|
const valueAttr = _attr("value", value);
|
|
2498
|
-
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange);
|
|
2498
|
+
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange, serializeType);
|
|
2499
2499
|
return normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
2500
2500
|
}
|
|
2501
2501
|
const checkedValuesRefs = /* @__PURE__ */ new WeakMap();
|
|
@@ -2509,9 +2509,9 @@ function getCheckedValueRef(checkedValue) {
|
|
|
2509
2509
|
return ref;
|
|
2510
2510
|
}
|
|
2511
2511
|
}
|
|
2512
|
-
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
2512
|
+
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange, serializeType) {
|
|
2513
2513
|
const normalizedOpen = isNotVoid(open);
|
|
2514
|
-
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange);
|
|
2514
|
+
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange, serializeType);
|
|
2515
2515
|
return normalizedOpen ? " open" : "";
|
|
2516
2516
|
}
|
|
2517
2517
|
function _attr_nonce() {
|
|
@@ -2527,9 +2527,9 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2527
2527
|
switch (tagName) {
|
|
2528
2528
|
case "input":
|
|
2529
2529
|
assertExclusiveAttrs(data);
|
|
2530
|
-
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange);
|
|
2531
|
-
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value);
|
|
2532
|
-
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange);
|
|
2530
|
+
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange, 1);
|
|
2531
|
+
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value, 1);
|
|
2532
|
+
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange, 1);
|
|
2533
2533
|
else break;
|
|
2534
2534
|
skip = /^(?:value|checked(?:Value)?)(?:Change)?$|[\s/>"'=]/;
|
|
2535
2535
|
break;
|
|
@@ -2546,7 +2546,7 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2546
2546
|
case "details":
|
|
2547
2547
|
case "dialog":
|
|
2548
2548
|
if (data.openChange) {
|
|
2549
|
-
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange);
|
|
2549
|
+
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange, 1);
|
|
2550
2550
|
skip = /^open(?:Change)?$|[\s/>"'=]/;
|
|
2551
2551
|
}
|
|
2552
2552
|
break;
|
|
@@ -2592,12 +2592,15 @@ function _attrs_partial_content(data, skip, nodeAccessor, scopeId, tagName, seri
|
|
|
2592
2592
|
_html(`${_attrs_partial(data, skip, nodeAccessor, scopeId, tagName)}>`);
|
|
2593
2593
|
_attr_content(nodeAccessor, scopeId, data?.content, serializeReason);
|
|
2594
2594
|
}
|
|
2595
|
-
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange) {
|
|
2595
|
+
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2596
2596
|
assertHandlerIsFunction("valueChange", valueChange);
|
|
2597
|
-
writeScope(scopeId, {
|
|
2597
|
+
writeScope(scopeId, serializeType ? {
|
|
2598
2598
|
["ControlledType:" + nodeAccessor]: type,
|
|
2599
2599
|
["ControlledValue:" + nodeAccessor]: value,
|
|
2600
2600
|
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2601
|
+
} : {
|
|
2602
|
+
["ControlledValue:" + nodeAccessor]: value,
|
|
2603
|
+
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2601
2604
|
});
|
|
2602
2605
|
}
|
|
2603
2606
|
function stringAttr(name, value) {
|
|
@@ -2663,10 +2666,10 @@ let _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, s
|
|
|
2663
2666
|
const renderContent = content || normalizeDynamicRenderer(input.content);
|
|
2664
2667
|
if (renderer === "textarea") {
|
|
2665
2668
|
if (renderContent) throw new Error("A dynamic tag rendering a `<textarea>` cannot have `content` and must use the `value` attribute instead.");
|
|
2666
|
-
_html(_attr_textarea_value(branchId, `#${renderer}/0`, input.value, input.valueChange));
|
|
2669
|
+
_html(_attr_textarea_value(branchId, `#${renderer}/0`, input.value, input.valueChange, 1));
|
|
2667
2670
|
} else if (renderContent) {
|
|
2668
2671
|
if (typeof renderContent !== "function") throw new Error(`Body content is not supported for the \`<${renderer}>\` tag.`);
|
|
2669
|
-
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, `#${renderer}/0`, input.value, input.valueChange, renderContent);
|
|
2672
|
+
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, `#${renderer}/0`, input.value, input.valueChange, renderContent, 1);
|
|
2670
2673
|
else _dynamic_tag(branchId, `#${renderer}/0`, renderContent, void 0, 0, void 0, serializeReason);
|
|
2671
2674
|
}
|
|
2672
2675
|
_html(`</${renderer}>`);
|
package/dist/dom/event.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
type EventNames = keyof GlobalEventHandlersEventMap;
|
|
2
2
|
export declare function _on<T extends EventNames, H extends false | null | undefined | ((ev: GlobalEventHandlersEventMap[T], target: Element) => void)>(element: Element, type: T, handler: H): void;
|
|
3
|
-
export declare
|
|
3
|
+
export declare const delegate: (type: string, handler: EventListener) => any;
|
|
4
4
|
export {};
|
package/dist/dom.js
CHANGED
|
@@ -4,7 +4,7 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
4
4
|
else if (Array.isArray(val)) for (let v of val) part = toDelimitedString(v, delimiter, stringify), part && (str += sep + part, sep = delimiter);
|
|
5
5
|
else for (let name in val) part = stringify(name, val[name]), part && (str += sep + part, sep = delimiter);
|
|
6
6
|
return str;
|
|
7
|
-
}, decodeAccessor = (num) => (num + (num < 26 ? 10 : num < 962 ? 334 : 11998)).toString(36),
|
|
7
|
+
}, decodeAccessor = (num) => (num + (num < 26 ? 10 : num < 962 ? 334 : 11998)).toString(36), delegate = (type, handler) => handler[type] ||= (document.addEventListener(type, handler, !0), 1), R = /[^\p{L}\p{N}]/gu, parsers = {}, nextScopeId = 1e6, collectingScopes, destroyNestedScopes = function destroyNestedScopes(scope) {
|
|
8
8
|
scope.H = 0, scope.D?.forEach(destroyNestedScopes), scope.B?.forEach(resetControllers);
|
|
9
9
|
}, isScheduled, channel, _return = (scope, value) => scope.T?.(value), _var_change = (scope, value) => scope.U?.(value), tagIdsByGlobal = /* @__PURE__ */ new WeakMap(), walker = /* @__PURE__ */ document.createTreeWalker(document), walkInternal = function walkInternal(currentWalkIndex, walkCodes, scope) {
|
|
10
10
|
let value, currentMultiplier, storedMultiplier = 0, currentScopeIndex = 0;
|
|
@@ -20,7 +20,7 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
20
20
|
for (value = 10 * currentMultiplier + value - 107; value--;) walker.parentNode();
|
|
21
21
|
walker.nextSibling();
|
|
22
22
|
} else storedMultiplier = currentMultiplier * 10 + value - 117;
|
|
23
|
-
}, cloneCache = {}, registeredValues = {}, curRenders, branchesEnabled, embedRenders, readyIds, isResuming, inputType = "",
|
|
23
|
+
}, cloneCache = {}, registeredValues = {}, curRenders, branchesEnabled, embedRenders, readyIds, isResuming, inputType = "", _dynamic_tag = function(nodeAccessor, getContent, getTagVar, inputIsArgs) {
|
|
24
24
|
nodeAccessor = decodeAccessor(nodeAccessor);
|
|
25
25
|
let childScopeAccessor = "A" + nodeAccessor, rendererAccessor = "D" + nodeAccessor;
|
|
26
26
|
return enableBranches(), (scope, newRenderer, getInput) => {
|
|
@@ -182,14 +182,7 @@ function push(opt, item) {
|
|
|
182
182
|
//#endregion
|
|
183
183
|
//#region src/dom/event.ts
|
|
184
184
|
function _on(element, type, handler) {
|
|
185
|
-
element["$" + type] === void 0 &&
|
|
186
|
-
}
|
|
187
|
-
/* @__NO_SIDE_EFFECTS__ */
|
|
188
|
-
function createDelegator() {
|
|
189
|
-
let kEvents = Symbol();
|
|
190
|
-
return function(node, type, handler) {
|
|
191
|
-
((node = node.getRootNode())[kEvents] ||= {})[type] ||= (node.addEventListener(type, handler, !0), 1);
|
|
192
|
-
};
|
|
185
|
+
element["$" + type] === void 0 && delegate(type, handleDelegated), element["$" + type] = handler || null;
|
|
193
186
|
}
|
|
194
187
|
function handleDelegated(ev) {
|
|
195
188
|
let target = !rendering && ev.target;
|
|
@@ -577,7 +570,7 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
577
570
|
let checkedValueChange = scope["E" + nodeAccessor];
|
|
578
571
|
if (checkedValueChange) {
|
|
579
572
|
let oldValue = scope["G" + nodeAccessor], newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
580
|
-
if (el.name && el.type[0] === "r") for (let radio of
|
|
573
|
+
if (el.name && el.type[0] === "r") for (let radio of document.querySelectorAll(`[type=radio][name=${CSS.escape(el.name)}]`)) radio.form === el.form && (radio.checked = Array.isArray(oldValue) ? oldValue.includes(radio.value) : oldValue === radio.value);
|
|
581
574
|
else el.checked = !el.checked;
|
|
582
575
|
checkedValueChange(newValue), run();
|
|
583
576
|
}
|
|
@@ -603,7 +596,7 @@ function _attr_input_value_script(scope, nodeAccessor) {
|
|
|
603
596
|
}
|
|
604
597
|
function setInputValue(el, value) {
|
|
605
598
|
if (el.value !== value) {
|
|
606
|
-
let updatedPosition = resolveCursorPosition(inputType,
|
|
599
|
+
let updatedPosition = resolveCursorPosition(inputType, document.activeElement === el && el.selectionStart, el.value, el.value = value);
|
|
607
600
|
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
608
601
|
}
|
|
609
602
|
}
|
|
@@ -675,7 +668,7 @@ function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
|
675
668
|
});
|
|
676
669
|
}
|
|
677
670
|
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
678
|
-
el._ = onChange,
|
|
671
|
+
el._ = onChange, delegate("input", handleChange), el.form && delegate("reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange);
|
|
679
672
|
}
|
|
680
673
|
function handleChange(ev) {
|
|
681
674
|
ev.target._?.(ev);
|
package/dist/dom.mjs
CHANGED
|
@@ -4,7 +4,7 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
4
4
|
else if (Array.isArray(val)) for (let v of val) part = toDelimitedString(v, delimiter, stringify), part && (str += sep + part, sep = delimiter);
|
|
5
5
|
else for (let name in val) part = stringify(name, val[name]), part && (str += sep + part, sep = delimiter);
|
|
6
6
|
return str;
|
|
7
|
-
}, decodeAccessor = (num) => (num + (num < 26 ? 10 : num < 962 ? 334 : 11998)).toString(36),
|
|
7
|
+
}, decodeAccessor = (num) => (num + (num < 26 ? 10 : num < 962 ? 334 : 11998)).toString(36), delegate = (type, handler) => handler[type] ||= (document.addEventListener(type, handler, !0), 1), R = /[^\p{L}\p{N}]/gu, parsers = {}, nextScopeId = 1e6, collectingScopes, destroyNestedScopes = function destroyNestedScopes(scope) {
|
|
8
8
|
scope.H = 0, scope.D?.forEach(destroyNestedScopes), scope.B?.forEach(resetControllers);
|
|
9
9
|
}, isScheduled, channel, _return = (scope, value) => scope.T?.(value), _var_change = (scope, value) => scope.U?.(value), tagIdsByGlobal = /* @__PURE__ */ new WeakMap(), walker = /* @__PURE__ */ document.createTreeWalker(document), walkInternal = function walkInternal(currentWalkIndex, walkCodes, scope) {
|
|
10
10
|
let value, currentMultiplier, storedMultiplier = 0, currentScopeIndex = 0;
|
|
@@ -20,7 +20,7 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
20
20
|
for (value = 10 * currentMultiplier + value - 107; value--;) walker.parentNode();
|
|
21
21
|
walker.nextSibling();
|
|
22
22
|
} else storedMultiplier = currentMultiplier * 10 + value - 117;
|
|
23
|
-
}, cloneCache = {}, registeredValues = {}, curRenders, branchesEnabled, embedRenders, readyIds, isResuming, inputType = "",
|
|
23
|
+
}, cloneCache = {}, registeredValues = {}, curRenders, branchesEnabled, embedRenders, readyIds, isResuming, inputType = "", _dynamic_tag = function(nodeAccessor, getContent, getTagVar, inputIsArgs) {
|
|
24
24
|
nodeAccessor = decodeAccessor(nodeAccessor);
|
|
25
25
|
let childScopeAccessor = "A" + nodeAccessor, rendererAccessor = "D" + nodeAccessor;
|
|
26
26
|
return enableBranches(), (scope, newRenderer, getInput) => {
|
|
@@ -181,14 +181,7 @@ function push(opt, item) {
|
|
|
181
181
|
//#endregion
|
|
182
182
|
//#region src/dom/event.ts
|
|
183
183
|
function _on(element, type, handler) {
|
|
184
|
-
element["$" + type] === void 0 &&
|
|
185
|
-
}
|
|
186
|
-
/* @__NO_SIDE_EFFECTS__ */
|
|
187
|
-
function createDelegator() {
|
|
188
|
-
let kEvents = Symbol();
|
|
189
|
-
return function(node, type, handler) {
|
|
190
|
-
((node = node.getRootNode())[kEvents] ||= {})[type] ||= (node.addEventListener(type, handler, !0), 1);
|
|
191
|
-
};
|
|
184
|
+
element["$" + type] === void 0 && delegate(type, handleDelegated), element["$" + type] = handler || null;
|
|
192
185
|
}
|
|
193
186
|
function handleDelegated(ev) {
|
|
194
187
|
let target = !rendering && ev.target;
|
|
@@ -576,7 +569,7 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
576
569
|
let checkedValueChange = scope["E" + nodeAccessor];
|
|
577
570
|
if (checkedValueChange) {
|
|
578
571
|
let oldValue = scope["G" + nodeAccessor], newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
579
|
-
if (el.name && el.type[0] === "r") for (let radio of
|
|
572
|
+
if (el.name && el.type[0] === "r") for (let radio of document.querySelectorAll(`[type=radio][name=${CSS.escape(el.name)}]`)) radio.form === el.form && (radio.checked = Array.isArray(oldValue) ? oldValue.includes(radio.value) : oldValue === radio.value);
|
|
580
573
|
else el.checked = !el.checked;
|
|
581
574
|
checkedValueChange(newValue), run();
|
|
582
575
|
}
|
|
@@ -602,7 +595,7 @@ function _attr_input_value_script(scope, nodeAccessor) {
|
|
|
602
595
|
}
|
|
603
596
|
function setInputValue(el, value) {
|
|
604
597
|
if (el.value !== value) {
|
|
605
|
-
let updatedPosition = resolveCursorPosition(inputType,
|
|
598
|
+
let updatedPosition = resolveCursorPosition(inputType, document.activeElement === el && el.selectionStart, el.value, el.value = value);
|
|
606
599
|
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
607
600
|
}
|
|
608
601
|
}
|
|
@@ -674,7 +667,7 @@ function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
|
674
667
|
});
|
|
675
668
|
}
|
|
676
669
|
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
677
|
-
el._ = onChange,
|
|
670
|
+
el._ = onChange, delegate("input", handleChange), el.form && delegate("reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange);
|
|
678
671
|
}
|
|
679
672
|
function handleChange(ev) {
|
|
680
673
|
ev.target._?.(ev);
|
package/dist/html/attrs.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { type Accessor } from "../common/types";
|
|
|
2
2
|
export declare function _attr_class(value: unknown): string;
|
|
3
3
|
export declare function _attr_style(value: unknown): string;
|
|
4
4
|
export declare function _attr_option_value(value: unknown): string;
|
|
5
|
-
export declare function _attr_select_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown, content?: () => void): void;
|
|
6
|
-
export declare function _attr_textarea_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown): string;
|
|
7
|
-
export declare function _attr_input_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown): string;
|
|
8
|
-
export declare function _attr_input_checked(scopeId: number, nodeAccessor: Accessor, checked: unknown, checkedChange: unknown): "" | " checked";
|
|
9
|
-
export declare function _attr_input_checkedValue(scopeId: number, nodeAccessor: Accessor, checkedValue: unknown, checkedValueChange: unknown, value: unknown): string;
|
|
10
|
-
export declare function _attr_details_or_dialog_open(scopeId: number, nodeAccessor: Accessor, open: unknown, openChange: unknown): "" | " open";
|
|
5
|
+
export declare function _attr_select_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown, content?: () => void, serializeType?: 1): void;
|
|
6
|
+
export declare function _attr_textarea_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown, serializeType?: 1): string;
|
|
7
|
+
export declare function _attr_input_value(scopeId: number, nodeAccessor: Accessor, value: unknown, valueChange: unknown, serializeType?: 1): string;
|
|
8
|
+
export declare function _attr_input_checked(scopeId: number, nodeAccessor: Accessor, checked: unknown, checkedChange: unknown, serializeType?: 1): "" | " checked";
|
|
9
|
+
export declare function _attr_input_checkedValue(scopeId: number, nodeAccessor: Accessor, checkedValue: unknown, checkedValueChange: unknown, value: unknown, serializeType?: 1): string;
|
|
10
|
+
export declare function _attr_details_or_dialog_open(scopeId: number, nodeAccessor: Accessor, open: unknown, openChange: unknown, serializeType?: 1): "" | " open";
|
|
11
11
|
export declare function _attr_nonce(): string;
|
|
12
12
|
export declare function _attr(name: string, value: unknown): string;
|
|
13
13
|
export declare function _attrs(data: Record<string, unknown>, nodeAccessor: Accessor, scopeId: number, tagName: string): string;
|
package/dist/html.js
CHANGED
|
@@ -247,10 +247,10 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
247
247
|
let input = (inputIsArgs ? inputOrArgs[0] : inputOrArgs) || {};
|
|
248
248
|
if (rendered = !0, _scope_id(), _html(`<${renderer}${_attrs(input, "a", branchId, renderer)}>`), !voidElementsReg.test(renderer)) {
|
|
249
249
|
let renderContent = content || normalizeDynamicRenderer(input.content);
|
|
250
|
-
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange));
|
|
250
|
+
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange, 1));
|
|
251
251
|
else if (renderContent) {
|
|
252
252
|
if (typeof renderContent != "function") throw Error(`Body content is not supported for the \`<${renderer}>\` tag.`);
|
|
253
|
-
renderer === "select" && ("value" in input || "valueChange" in input) ? _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent) : _dynamic_tag(branchId, "a", renderContent, void 0, 0, void 0, serializeReason);
|
|
253
|
+
renderer === "select" && ("value" in input || "valueChange" in input) ? _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent, 1) : _dynamic_tag(branchId, "a", renderContent, void 0, 0, void 0, serializeReason);
|
|
254
254
|
}
|
|
255
255
|
_html(`</${renderer}>`);
|
|
256
256
|
}
|
|
@@ -1614,21 +1614,21 @@ function _attr_option_value(value) {
|
|
|
1614
1614
|
let valueAttr = _attr("value", value);
|
|
1615
1615
|
return normalizedValueMatches(getContext(kSelectedValue), value) ? valueAttr + " selected" : valueAttr;
|
|
1616
1616
|
}
|
|
1617
|
-
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
1618
|
-
valueChange && writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange), content && withContext(kSelectedValue, value, content);
|
|
1617
|
+
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content, serializeType) {
|
|
1618
|
+
valueChange && writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange, serializeType), content && withContext(kSelectedValue, value, content);
|
|
1619
1619
|
}
|
|
1620
|
-
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange) {
|
|
1621
|
-
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange), _escape(value);
|
|
1620
|
+
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1621
|
+
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType), _escape(value);
|
|
1622
1622
|
}
|
|
1623
|
-
function _attr_input_value(scopeId, nodeAccessor, value, valueChange) {
|
|
1624
|
-
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange), _attr("value", value);
|
|
1623
|
+
function _attr_input_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1624
|
+
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType), _attr("value", value);
|
|
1625
1625
|
}
|
|
1626
|
-
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
1627
|
-
return checkedChange && writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange), isNotVoid(checked) ? " checked" : "";
|
|
1626
|
+
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange, serializeType) {
|
|
1627
|
+
return checkedChange && writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange, serializeType), isNotVoid(checked) ? " checked" : "";
|
|
1628
1628
|
}
|
|
1629
|
-
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
1629
|
+
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value, serializeType) {
|
|
1630
1630
|
let valueAttr = _attr("value", value);
|
|
1631
|
-
return checkedValueChange && writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange), normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
1631
|
+
return checkedValueChange && writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange, serializeType), normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
1632
1632
|
}
|
|
1633
1633
|
function getCheckedValueRef(checkedValue) {
|
|
1634
1634
|
if (Array.isArray(checkedValue)) {
|
|
@@ -1636,9 +1636,9 @@ function getCheckedValueRef(checkedValue) {
|
|
|
1636
1636
|
return ref || (ref = [], checkedValuesRefs.set(checkedValue, ref)), ref;
|
|
1637
1637
|
}
|
|
1638
1638
|
}
|
|
1639
|
-
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
1639
|
+
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange, serializeType) {
|
|
1640
1640
|
let normalizedOpen = isNotVoid(open);
|
|
1641
|
-
return openChange && writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange), normalizedOpen ? " open" : "";
|
|
1641
|
+
return openChange && writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange, serializeType), normalizedOpen ? " open" : "";
|
|
1642
1642
|
}
|
|
1643
1643
|
function _attr_nonce() {
|
|
1644
1644
|
return getChunk().boundary.state.nonceAttr;
|
|
@@ -1650,9 +1650,9 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
1650
1650
|
let result = "", skip = /[\s/>"'=]/, events;
|
|
1651
1651
|
switch (tagName) {
|
|
1652
1652
|
case "input":
|
|
1653
|
-
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange);
|
|
1654
|
-
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value);
|
|
1655
|
-
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange);
|
|
1653
|
+
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange, 1);
|
|
1654
|
+
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value, 1);
|
|
1655
|
+
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange, 1);
|
|
1656
1656
|
else break;
|
|
1657
1657
|
skip = /^(?:value|checked(?:Value)?)(?:Change)?$|[\s/>"'=]/;
|
|
1658
1658
|
break;
|
|
@@ -1665,7 +1665,7 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
1665
1665
|
break;
|
|
1666
1666
|
case "details":
|
|
1667
1667
|
case "dialog":
|
|
1668
|
-
data.openChange && (result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange), skip = /^open(?:Change)?$|[\s/>"'=]/);
|
|
1668
|
+
data.openChange && (result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange, 1), skip = /^open(?:Change)?$|[\s/>"'=]/);
|
|
1669
1669
|
break;
|
|
1670
1670
|
}
|
|
1671
1671
|
for (let name in data) {
|
|
@@ -1698,11 +1698,14 @@ function _attrs_partial(data, skip, nodeAccessor, scopeId, tagName) {
|
|
|
1698
1698
|
function _attrs_partial_content(data, skip, nodeAccessor, scopeId, tagName, serializeReason) {
|
|
1699
1699
|
_html(`${_attrs_partial(data, skip, nodeAccessor, scopeId, tagName)}>`), _attr_content(nodeAccessor, scopeId, data?.content, serializeReason);
|
|
1700
1700
|
}
|
|
1701
|
-
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange) {
|
|
1702
|
-
writeScope(scopeId, {
|
|
1701
|
+
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1702
|
+
writeScope(scopeId, serializeType ? {
|
|
1703
1703
|
["F" + nodeAccessor]: type,
|
|
1704
1704
|
["G" + nodeAccessor]: value,
|
|
1705
1705
|
["E" + nodeAccessor]: valueChange
|
|
1706
|
+
} : {
|
|
1707
|
+
["G" + nodeAccessor]: value,
|
|
1708
|
+
["E" + nodeAccessor]: valueChange
|
|
1706
1709
|
});
|
|
1707
1710
|
}
|
|
1708
1711
|
function stringAttr(name, value) {
|
package/dist/html.mjs
CHANGED
|
@@ -247,10 +247,10 @@ let empty = [], rest = Symbol(), toDelimitedString = function toDelimitedString(
|
|
|
247
247
|
let input = (inputIsArgs ? inputOrArgs[0] : inputOrArgs) || {};
|
|
248
248
|
if (rendered = !0, _scope_id(), _html(`<${renderer}${_attrs(input, "a", branchId, renderer)}>`), !voidElementsReg.test(renderer)) {
|
|
249
249
|
let renderContent = content || normalizeDynamicRenderer(input.content);
|
|
250
|
-
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange));
|
|
250
|
+
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange, 1));
|
|
251
251
|
else if (renderContent) {
|
|
252
252
|
if (typeof renderContent != "function") throw Error(`Body content is not supported for the \`<${renderer}>\` tag.`);
|
|
253
|
-
renderer === "select" && ("value" in input || "valueChange" in input) ? _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent) : _dynamic_tag(branchId, "a", renderContent, void 0, 0, void 0, serializeReason);
|
|
253
|
+
renderer === "select" && ("value" in input || "valueChange" in input) ? _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent, 1) : _dynamic_tag(branchId, "a", renderContent, void 0, 0, void 0, serializeReason);
|
|
254
254
|
}
|
|
255
255
|
_html(`</${renderer}>`);
|
|
256
256
|
}
|
|
@@ -1613,21 +1613,21 @@ function _attr_option_value(value) {
|
|
|
1613
1613
|
let valueAttr = _attr("value", value);
|
|
1614
1614
|
return normalizedValueMatches(getContext(kSelectedValue), value) ? valueAttr + " selected" : valueAttr;
|
|
1615
1615
|
}
|
|
1616
|
-
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
1617
|
-
valueChange && writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange), content && withContext(kSelectedValue, value, content);
|
|
1616
|
+
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content, serializeType) {
|
|
1617
|
+
valueChange && writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange, serializeType), content && withContext(kSelectedValue, value, content);
|
|
1618
1618
|
}
|
|
1619
|
-
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange) {
|
|
1620
|
-
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange), _escape(value);
|
|
1619
|
+
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1620
|
+
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType), _escape(value);
|
|
1621
1621
|
}
|
|
1622
|
-
function _attr_input_value(scopeId, nodeAccessor, value, valueChange) {
|
|
1623
|
-
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange), _attr("value", value);
|
|
1622
|
+
function _attr_input_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1623
|
+
return valueChange && writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType), _attr("value", value);
|
|
1624
1624
|
}
|
|
1625
|
-
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
1626
|
-
return checkedChange && writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange), isNotVoid(checked) ? " checked" : "";
|
|
1625
|
+
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange, serializeType) {
|
|
1626
|
+
return checkedChange && writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange, serializeType), isNotVoid(checked) ? " checked" : "";
|
|
1627
1627
|
}
|
|
1628
|
-
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
1628
|
+
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value, serializeType) {
|
|
1629
1629
|
let valueAttr = _attr("value", value);
|
|
1630
|
-
return checkedValueChange && writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange), normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
1630
|
+
return checkedValueChange && writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange, serializeType), normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
1631
1631
|
}
|
|
1632
1632
|
function getCheckedValueRef(checkedValue) {
|
|
1633
1633
|
if (Array.isArray(checkedValue)) {
|
|
@@ -1635,9 +1635,9 @@ function getCheckedValueRef(checkedValue) {
|
|
|
1635
1635
|
return ref || (ref = [], checkedValuesRefs.set(checkedValue, ref)), ref;
|
|
1636
1636
|
}
|
|
1637
1637
|
}
|
|
1638
|
-
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
1638
|
+
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange, serializeType) {
|
|
1639
1639
|
let normalizedOpen = isNotVoid(open);
|
|
1640
|
-
return openChange && writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange), normalizedOpen ? " open" : "";
|
|
1640
|
+
return openChange && writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange, serializeType), normalizedOpen ? " open" : "";
|
|
1641
1641
|
}
|
|
1642
1642
|
function _attr_nonce() {
|
|
1643
1643
|
return getChunk().boundary.state.nonceAttr;
|
|
@@ -1649,9 +1649,9 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
1649
1649
|
let result = "", skip = /[\s/>"'=]/, events;
|
|
1650
1650
|
switch (tagName) {
|
|
1651
1651
|
case "input":
|
|
1652
|
-
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange);
|
|
1653
|
-
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value);
|
|
1654
|
-
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange);
|
|
1652
|
+
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange, 1);
|
|
1653
|
+
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value, 1);
|
|
1654
|
+
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange, 1);
|
|
1655
1655
|
else break;
|
|
1656
1656
|
skip = /^(?:value|checked(?:Value)?)(?:Change)?$|[\s/>"'=]/;
|
|
1657
1657
|
break;
|
|
@@ -1664,7 +1664,7 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
1664
1664
|
break;
|
|
1665
1665
|
case "details":
|
|
1666
1666
|
case "dialog":
|
|
1667
|
-
data.openChange && (result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange), skip = /^open(?:Change)?$|[\s/>"'=]/);
|
|
1667
|
+
data.openChange && (result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange, 1), skip = /^open(?:Change)?$|[\s/>"'=]/);
|
|
1668
1668
|
break;
|
|
1669
1669
|
}
|
|
1670
1670
|
for (let name in data) {
|
|
@@ -1697,11 +1697,14 @@ function _attrs_partial(data, skip, nodeAccessor, scopeId, tagName) {
|
|
|
1697
1697
|
function _attrs_partial_content(data, skip, nodeAccessor, scopeId, tagName, serializeReason) {
|
|
1698
1698
|
_html(`${_attrs_partial(data, skip, nodeAccessor, scopeId, tagName)}>`), _attr_content(nodeAccessor, scopeId, data?.content, serializeReason);
|
|
1699
1699
|
}
|
|
1700
|
-
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange) {
|
|
1701
|
-
writeScope(scopeId, {
|
|
1700
|
+
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
1701
|
+
writeScope(scopeId, serializeType ? {
|
|
1702
1702
|
["F" + nodeAccessor]: type,
|
|
1703
1703
|
["G" + nodeAccessor]: value,
|
|
1704
1704
|
["E" + nodeAccessor]: valueChange
|
|
1705
|
+
} : {
|
|
1706
|
+
["G" + nodeAccessor]: value,
|
|
1707
|
+
["E" + nodeAccessor]: valueChange
|
|
1705
1708
|
});
|
|
1706
1709
|
}
|
|
1707
1710
|
function stringAttr(name, value) {
|
package/dist/translator/index.js
CHANGED
|
@@ -2017,25 +2017,25 @@ function _attr_option_value(value) {
|
|
|
2017
2017
|
return valueAttr;
|
|
2018
2018
|
}
|
|
2019
2019
|
const kSelectedValue = Symbol("selectedValue");
|
|
2020
|
-
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
2021
|
-
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange);
|
|
2020
|
+
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content, serializeType) {
|
|
2021
|
+
if (valueChange) writeControlledScope(3, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2022
2022
|
if (content) withContext(kSelectedValue, value, content);
|
|
2023
2023
|
}
|
|
2024
|
-
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2025
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2024
|
+
function _attr_textarea_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2025
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2026
2026
|
return _escape(value);
|
|
2027
2027
|
}
|
|
2028
|
-
function _attr_input_value(scopeId, nodeAccessor, value, valueChange) {
|
|
2029
|
-
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange);
|
|
2028
|
+
function _attr_input_value(scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2029
|
+
if (valueChange) writeControlledScope(2, scopeId, nodeAccessor, void 0, valueChange, serializeType);
|
|
2030
2030
|
return _attr("value", value);
|
|
2031
2031
|
}
|
|
2032
|
-
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
2033
|
-
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange);
|
|
2032
|
+
function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange, serializeType) {
|
|
2033
|
+
if (checkedChange) writeControlledScope(0, scopeId, nodeAccessor, void 0, checkedChange, serializeType);
|
|
2034
2034
|
return isNotVoid(checked) ? " checked" : "";
|
|
2035
2035
|
}
|
|
2036
|
-
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
2036
|
+
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value, serializeType) {
|
|
2037
2037
|
const valueAttr = _attr("value", value);
|
|
2038
|
-
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange);
|
|
2038
|
+
if (checkedValueChange) writeControlledScope(1, scopeId, nodeAccessor, getCheckedValueRef(checkedValue), checkedValueChange, serializeType);
|
|
2039
2039
|
return normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
2040
2040
|
}
|
|
2041
2041
|
const checkedValuesRefs = /* @__PURE__ */ new WeakMap();
|
|
@@ -2049,9 +2049,9 @@ function getCheckedValueRef(checkedValue) {
|
|
|
2049
2049
|
return ref;
|
|
2050
2050
|
}
|
|
2051
2051
|
}
|
|
2052
|
-
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
2052
|
+
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange, serializeType) {
|
|
2053
2053
|
const normalizedOpen = isNotVoid(open);
|
|
2054
|
-
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange);
|
|
2054
|
+
if (openChange) writeControlledScope(4, scopeId, nodeAccessor, normalizedOpen || void 0, openChange, serializeType);
|
|
2055
2055
|
return normalizedOpen ? " open" : "";
|
|
2056
2056
|
}
|
|
2057
2057
|
function _attr(name, value) {
|
|
@@ -2063,9 +2063,9 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2063
2063
|
let events;
|
|
2064
2064
|
switch (tagName) {
|
|
2065
2065
|
case "input":
|
|
2066
|
-
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange);
|
|
2067
|
-
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value);
|
|
2068
|
-
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange);
|
|
2066
|
+
if (data.checkedChange) result += _attr_input_checked(scopeId, nodeAccessor, data.checked, data.checkedChange, 1);
|
|
2067
|
+
else if ("checkedValue" in data || data.checkedValueChange) result += _attr_input_checkedValue(scopeId, nodeAccessor, data.checkedValue, data.checkedValueChange, data.value, 1);
|
|
2068
|
+
else if (data.valueChange) result += _attr_input_value(scopeId, nodeAccessor, data.value, data.valueChange, 1);
|
|
2069
2069
|
else break;
|
|
2070
2070
|
skip = /^(?:value|checked(?:Value)?)(?:Change)?$|[\s/>"'=]/;
|
|
2071
2071
|
break;
|
|
@@ -2082,7 +2082,7 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2082
2082
|
case "details":
|
|
2083
2083
|
case "dialog":
|
|
2084
2084
|
if (data.openChange) {
|
|
2085
|
-
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange);
|
|
2085
|
+
result += _attr_details_or_dialog_open(scopeId, nodeAccessor, data.open, data.openChange, 1);
|
|
2086
2086
|
skip = /^open(?:Change)?$|[\s/>"'=]/;
|
|
2087
2087
|
}
|
|
2088
2088
|
break;
|
|
@@ -2109,11 +2109,14 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
|
|
|
2109
2109
|
}
|
|
2110
2110
|
return result;
|
|
2111
2111
|
}
|
|
2112
|
-
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange) {
|
|
2113
|
-
writeScope(scopeId, {
|
|
2112
|
+
function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
|
|
2113
|
+
writeScope(scopeId, serializeType ? {
|
|
2114
2114
|
["ControlledType:" + nodeAccessor]: type,
|
|
2115
2115
|
["ControlledValue:" + nodeAccessor]: value,
|
|
2116
2116
|
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2117
|
+
} : {
|
|
2118
|
+
["ControlledValue:" + nodeAccessor]: value,
|
|
2119
|
+
["ControlledHandler:" + nodeAccessor]: valueChange
|
|
2117
2120
|
});
|
|
2118
2121
|
}
|
|
2119
2122
|
function stringAttr(name, value) {
|
|
@@ -2175,10 +2178,10 @@ let _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, s
|
|
|
2175
2178
|
_html(`<${renderer}${_attrs(input, "a", branchId, renderer)}>`);
|
|
2176
2179
|
if (!voidElementsReg.test(renderer)) {
|
|
2177
2180
|
const renderContent = content || normalizeDynamicRenderer(input.content);
|
|
2178
|
-
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange));
|
|
2181
|
+
if (renderer === "textarea") _html(_attr_textarea_value(branchId, "a", input.value, input.valueChange, 1));
|
|
2179
2182
|
else if (renderContent) {
|
|
2180
2183
|
if (typeof renderContent !== "function") throw new Error(`Body content is not supported for the \`<${renderer}>\` tag.`);
|
|
2181
|
-
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent);
|
|
2184
|
+
if (renderer === "select" && ("value" in input || "valueChange" in input)) _attr_select_value(branchId, "a", input.value, input.valueChange, renderContent, 1);
|
|
2182
2185
|
else _dynamic_tag(branchId, "a", renderContent, void 0, 0, void 0, serializeReason);
|
|
2183
2186
|
}
|
|
2184
2187
|
_html(`</${renderer}>`);
|
|
@@ -4418,7 +4421,8 @@ var native_tag_default = {
|
|
|
4418
4421
|
tag.insertBefore(_marko_compiler.types.variableDeclaration("const", [_marko_compiler.types.variableDeclarator(spreadIdentifier, spreadExpression)]));
|
|
4419
4422
|
htmlSelectArgs.set(tag.node, {
|
|
4420
4423
|
value: _marko_compiler.types.memberExpression(spreadIdentifier, _marko_compiler.types.identifier("value")),
|
|
4421
|
-
valueChange: _marko_compiler.types.memberExpression(spreadIdentifier, _marko_compiler.types.identifier("valueChange"))
|
|
4424
|
+
valueChange: _marko_compiler.types.memberExpression(spreadIdentifier, _marko_compiler.types.identifier("valueChange")),
|
|
4425
|
+
serializeType: _marko_compiler.types.numericLiteral(1)
|
|
4422
4426
|
});
|
|
4423
4427
|
spreadExpression = spreadIdentifier;
|
|
4424
4428
|
}
|
|
@@ -4435,7 +4439,7 @@ var native_tag_default = {
|
|
|
4435
4439
|
valueChange = _marko_compiler.types.memberExpression(spreadIdentifier, _marko_compiler.types.identifier("valueChange"));
|
|
4436
4440
|
spreadExpression = spreadIdentifier;
|
|
4437
4441
|
}
|
|
4438
|
-
if (valueChange) writeAtStartOfBody = callRuntime("_attr_textarea_value", getScopeIdIdentifier(tagSection), visitAccessor, value, valueChange);
|
|
4442
|
+
if (valueChange) writeAtStartOfBody = callRuntime("_attr_textarea_value", getScopeIdIdentifier(tagSection), visitAccessor, value, valueChange, staticControllable ? void 0 : _marko_compiler.types.numericLiteral(1));
|
|
4439
4443
|
else if (value) writeAtStartOfBody = callRuntime("_escape", value);
|
|
4440
4444
|
}
|
|
4441
4445
|
for (const attr of staticAttrs) {
|
|
@@ -4495,7 +4499,7 @@ var native_tag_default = {
|
|
|
4495
4499
|
if (selectArgs) {
|
|
4496
4500
|
if (!tagExtra[kSkipEndTag]) write`</${tagName}>`;
|
|
4497
4501
|
flushInto(tag);
|
|
4498
|
-
tag.insertBefore(_marko_compiler.types.expressionStatement(callRuntime("_attr_select_value", getScopeIdIdentifier(tagSection), nodeBinding && getScopeAccessorLiteral(nodeBinding), selectArgs.value, selectArgs.valueChange, _marko_compiler.types.arrowFunctionExpression([], _marko_compiler.types.blockStatement(tag.node.body.body)))));
|
|
4502
|
+
tag.insertBefore(_marko_compiler.types.expressionStatement(callRuntime("_attr_select_value", getScopeIdIdentifier(tagSection), nodeBinding && getScopeAccessorLiteral(nodeBinding), selectArgs.value, selectArgs.valueChange, _marko_compiler.types.arrowFunctionExpression([], _marko_compiler.types.blockStatement(tag.node.body.body)), selectArgs.serializeType)));
|
|
4499
4503
|
} else if (isTextOnly) {
|
|
4500
4504
|
for (const child of tag.node.body.body) if (_marko_compiler.types.isMarkoText(child)) write`${child.value}`;
|
|
4501
4505
|
else if (_marko_compiler.types.isMarkoPlaceholder(child)) write`${callRuntime(getTextOnlyEscapeHelper(tagName), child.value)}`;
|
|
@@ -8774,7 +8778,8 @@ var dynamic_tag_default = {
|
|
|
8774
8778
|
let tagExpression = node.name;
|
|
8775
8779
|
if (isClassAPI) {
|
|
8776
8780
|
const classTagTemplate = (0, _marko_compiler_babel_utils.getTagTemplate)(tag);
|
|
8777
|
-
const
|
|
8781
|
+
const classFile = classTagTemplate ? (0, _marko_compiler_babel_utils.loadFileForTag)(tag) : void 0;
|
|
8782
|
+
const classHydration = classFile?.metadata.marko.classHydration;
|
|
8778
8783
|
if (!isOutputHTML() && isOptimize() && classTagTemplate && !tagsSerializeReason && !classHydration) {
|
|
8779
8784
|
tag.remove();
|
|
8780
8785
|
return;
|
|
@@ -8782,8 +8787,8 @@ var dynamic_tag_default = {
|
|
|
8782
8787
|
((0, _marko_compiler_babel_utils.getProgram)().node.extra ??= {}).needsCompat = true;
|
|
8783
8788
|
if (_marko_compiler.types.isStringLiteral(tagExpression)) tagExpression = (0, _marko_compiler_babel_utils.importDefault)(tag.hub.file, getTagRelativePath(tag), tagExpression.value);
|
|
8784
8789
|
if (classTagTemplate) {
|
|
8785
|
-
const preserveBoundary = classHydration === "descendant" &&
|
|
8786
|
-
if (isOutputHTML() ? serializeReason ||
|
|
8790
|
+
const preserveBoundary = !tagsSerializeReason && (classHydration === "descendant" || classHydration === "self" && !!classFile?.metadata.marko.hasComponentBrowser);
|
|
8791
|
+
if (isOutputHTML() ? serializeReason || classHydration : serializeReason) (0, _marko_compiler_babel_utils.getProgram)().node.body.push(isOutputHTML() ? _marko_compiler.types.markoScriptlet([_marko_compiler.types.expressionStatement(_marko_compiler.types.callExpression((0, _marko_compiler_babel_utils.importNamed)(tag.hub.file, getCompatRuntimeFile(), "s"), [
|
|
8787
8792
|
_marko_compiler.types.stringLiteral((0, _marko_compiler_babel_utils.loadFileForTag)(tag).metadata.marko.id),
|
|
8788
8793
|
_marko_compiler.types.identifier(tagExpression.name),
|
|
8789
8794
|
...preserveBoundary ? [_marko_compiler.types.stringLiteral("preserve")] : []
|