marko 6.0.145 → 6.0.147
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 +189 -135
- package/dist/debug/dom.mjs +189 -135
- package/dist/debug/html.js +41 -9
- package/dist/debug/html.mjs +41 -9
- package/dist/dom/controllable.d.ts +5 -1
- package/dist/dom.d.ts +1 -1
- package/dist/dom.js +112 -91
- package/dist/dom.mjs +112 -91
- package/dist/html/attrs.d.ts +2 -2
- package/dist/html.js +34 -9
- package/dist/html.mjs +34 -9
- package/dist/translator/index.js +26 -13
- package/package.json +2 -2
- package/tags/id.d.marko +1 -1
- package/tags-html.d.ts +114 -41
package/dist/debug/dom.mjs
CHANGED
|
@@ -976,18 +976,33 @@ function _el(id, accessor) {
|
|
|
976
976
|
}
|
|
977
977
|
|
|
978
978
|
// src/dom/controllable.ts
|
|
979
|
+
var inputType = "";
|
|
980
|
+
var controllableDelegate = createDelegator();
|
|
981
|
+
function _attr_input_checked_default(scope, nodeAccessor, checked) {
|
|
982
|
+
const el = scope[nodeAccessor];
|
|
983
|
+
const normalizedChecked = normalizeBoolProp(checked);
|
|
984
|
+
if (el.defaultChecked !== normalizedChecked) {
|
|
985
|
+
const restoreValue = scope["#Creating" /* Creating */] ? normalizedChecked : el.checked;
|
|
986
|
+
el.defaultChecked = normalizedChecked;
|
|
987
|
+
if (restoreValue !== normalizedChecked) {
|
|
988
|
+
el.checked = restoreValue;
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
}
|
|
979
992
|
function _attr_input_checked(scope, nodeAccessor, checked, checkedChange) {
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
993
|
+
const el = scope[nodeAccessor];
|
|
994
|
+
const normalizedChecked = normalizeBoolProp(checked);
|
|
995
|
+
scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor] = checkedChange;
|
|
996
|
+
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = checkedChange ? 0 /* InputChecked */ : 5 /* None */;
|
|
997
|
+
if (checkedChange && !scope["#Creating" /* Creating */]) {
|
|
998
|
+
el.checked = normalizedChecked;
|
|
999
|
+
} else {
|
|
1000
|
+
_attr_input_checked_default(scope, nodeAccessor, normalizedChecked);
|
|
1001
|
+
}
|
|
987
1002
|
}
|
|
988
1003
|
function _attr_input_checked_script(scope, nodeAccessor) {
|
|
989
1004
|
const el = scope[nodeAccessor];
|
|
990
|
-
|
|
1005
|
+
syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
991
1006
|
const checkedChange = scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor];
|
|
992
1007
|
if (checkedChange) {
|
|
993
1008
|
const newValue = el.checked;
|
|
@@ -997,20 +1012,48 @@ function _attr_input_checked_script(scope, nodeAccessor) {
|
|
|
997
1012
|
}
|
|
998
1013
|
});
|
|
999
1014
|
}
|
|
1000
|
-
function
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1015
|
+
function _attr_input_checkedValue_default(scope, nodeAccessor, checkedValue, value) {
|
|
1016
|
+
const multiple = Array.isArray(checkedValue);
|
|
1017
|
+
const normalizedValue = normalizeStrProp(value);
|
|
1018
|
+
const normalizedCheckedValue = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
1019
|
+
_attr(scope[nodeAccessor], "value", normalizedValue);
|
|
1020
|
+
_attr_input_checked_default(
|
|
1004
1021
|
scope,
|
|
1005
1022
|
nodeAccessor,
|
|
1006
|
-
|
|
1007
|
-
Array.isArray(checkedValue) ? checkedValue.includes(value) : checkedValue === value,
|
|
1008
|
-
checkedValueChange
|
|
1023
|
+
multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue
|
|
1009
1024
|
);
|
|
1010
1025
|
}
|
|
1026
|
+
function _attr_input_checkedValue(scope, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
1027
|
+
const el = scope[nodeAccessor];
|
|
1028
|
+
const multiple = Array.isArray(checkedValue);
|
|
1029
|
+
const normalizedValue = normalizeStrProp(value);
|
|
1030
|
+
const normalizedCheckedValue = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
1031
|
+
_attr(el, "value", normalizedValue);
|
|
1032
|
+
scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor] = checkedValueChange;
|
|
1033
|
+
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = checkedValueChange ? 1 /* InputCheckedValue */ : 5 /* None */;
|
|
1034
|
+
if (checkedValueChange && !scope["#Creating" /* Creating */]) {
|
|
1035
|
+
el.checked = multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue;
|
|
1036
|
+
} else {
|
|
1037
|
+
_attr_input_checkedValue_default(
|
|
1038
|
+
scope,
|
|
1039
|
+
nodeAccessor,
|
|
1040
|
+
normalizedCheckedValue,
|
|
1041
|
+
normalizedValue
|
|
1042
|
+
);
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1011
1045
|
function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
1012
1046
|
const el = scope[nodeAccessor];
|
|
1013
|
-
|
|
1047
|
+
if (isResuming && el.defaultChecked) {
|
|
1048
|
+
if (scope["ControlledValue:" /* ControlledValue */ + nodeAccessor]) {
|
|
1049
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor].push(
|
|
1050
|
+
el.value
|
|
1051
|
+
);
|
|
1052
|
+
} else {
|
|
1053
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = el.value;
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
1014
1057
|
const checkedValueChange = scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor];
|
|
1015
1058
|
if (checkedValueChange) {
|
|
1016
1059
|
const oldValue = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor];
|
|
@@ -1031,21 +1074,25 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
1031
1074
|
}
|
|
1032
1075
|
});
|
|
1033
1076
|
}
|
|
1077
|
+
function _attr_input_value_default(scope, nodeAccessor, value) {
|
|
1078
|
+
const el = scope[nodeAccessor];
|
|
1079
|
+
const normalizedValue = normalizeStrProp(value);
|
|
1080
|
+
if (el.defaultValue !== normalizedValue) {
|
|
1081
|
+
const restoreValue = scope["#Creating" /* Creating */] ? normalizedValue : el.value;
|
|
1082
|
+
el.defaultValue = normalizedValue;
|
|
1083
|
+
setInputValue(el, restoreValue);
|
|
1084
|
+
}
|
|
1085
|
+
}
|
|
1034
1086
|
function _attr_input_value(scope, nodeAccessor, value, valueChange) {
|
|
1035
1087
|
const el = scope[nodeAccessor];
|
|
1036
1088
|
const normalizedValue = normalizeStrProp(value);
|
|
1037
1089
|
scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor] = valueChange;
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
setValueAndUpdateSelection(el, normalizedValue);
|
|
1043
|
-
} else {
|
|
1044
|
-
el.defaultValue = normalizedValue;
|
|
1045
|
-
}
|
|
1090
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = normalizedValue;
|
|
1091
|
+
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = valueChange ? 2 /* InputValue */ : 5 /* None */;
|
|
1092
|
+
if (valueChange && !scope["#Creating" /* Creating */]) {
|
|
1093
|
+
setInputValue(el, normalizedValue);
|
|
1046
1094
|
} else {
|
|
1047
|
-
scope
|
|
1048
|
-
el.defaultValue = normalizedValue;
|
|
1095
|
+
_attr_input_value_default(scope, nodeAccessor, normalizedValue);
|
|
1049
1096
|
}
|
|
1050
1097
|
}
|
|
1051
1098
|
function _attr_input_value_script(scope, nodeAccessor) {
|
|
@@ -1053,151 +1100,154 @@ function _attr_input_value_script(scope, nodeAccessor) {
|
|
|
1053
1100
|
if (isResuming) {
|
|
1054
1101
|
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = el.defaultValue;
|
|
1055
1102
|
}
|
|
1056
|
-
|
|
1103
|
+
syncControllableFormInput(el, hasValueChanged, (ev) => {
|
|
1057
1104
|
const valueChange = scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor];
|
|
1058
1105
|
if (valueChange) {
|
|
1059
1106
|
inputType = ev?.inputType;
|
|
1060
1107
|
valueChange(el.value);
|
|
1061
1108
|
run();
|
|
1062
|
-
|
|
1063
|
-
el,
|
|
1064
|
-
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor]
|
|
1065
|
-
);
|
|
1109
|
+
setInputValue(el, scope["ControlledValue:" /* ControlledValue */ + nodeAccessor]);
|
|
1066
1110
|
inputType = "";
|
|
1067
1111
|
}
|
|
1068
1112
|
});
|
|
1069
1113
|
}
|
|
1114
|
+
function setInputValue(el, value) {
|
|
1115
|
+
if (el.value !== value) {
|
|
1116
|
+
const updatedPosition = resolveCursorPosition(
|
|
1117
|
+
inputType,
|
|
1118
|
+
el.getRootNode().activeElement === el && el.selectionStart,
|
|
1119
|
+
el.value,
|
|
1120
|
+
el.value = value
|
|
1121
|
+
);
|
|
1122
|
+
if (~updatedPosition) {
|
|
1123
|
+
el.setSelectionRange(updatedPosition, updatedPosition);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
function _attr_select_value_default(scope, nodeAccessor, value) {
|
|
1128
|
+
let restoreValue;
|
|
1129
|
+
const el = scope[nodeAccessor];
|
|
1130
|
+
const existing = !scope["#Creating" /* Creating */];
|
|
1131
|
+
const multiple = Array.isArray(value);
|
|
1132
|
+
const normalizedValue = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
1133
|
+
pendingEffects.unshift(() => {
|
|
1134
|
+
for (const opt of el.options) {
|
|
1135
|
+
const selected = multiple ? normalizedValue.includes(opt.value) : opt.value === normalizedValue;
|
|
1136
|
+
if (opt.defaultSelected !== selected) {
|
|
1137
|
+
if (existing) {
|
|
1138
|
+
restoreValue ??= getSelectValue(el, multiple);
|
|
1139
|
+
}
|
|
1140
|
+
opt.defaultSelected = selected;
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
if (restoreValue !== void 0) {
|
|
1144
|
+
setSelectValue(el, restoreValue, multiple);
|
|
1145
|
+
}
|
|
1146
|
+
}, scope);
|
|
1147
|
+
}
|
|
1070
1148
|
function _attr_select_value(scope, nodeAccessor, value, valueChange) {
|
|
1149
|
+
const el = scope[nodeAccessor];
|
|
1150
|
+
const existing = !scope["#Creating" /* Creating */];
|
|
1151
|
+
const multiple = Array.isArray(value);
|
|
1152
|
+
const normalizedValue = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
1071
1153
|
scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor] = valueChange;
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1154
|
+
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = valueChange ? 3 /* SelectValue */ : 5 /* None */;
|
|
1155
|
+
if (valueChange && existing) {
|
|
1156
|
+
pendingEffects.unshift(
|
|
1157
|
+
() => setSelectValue(el, normalizedValue, multiple),
|
|
1158
|
+
scope
|
|
1159
|
+
);
|
|
1075
1160
|
} else {
|
|
1076
|
-
scope
|
|
1077
|
-
}
|
|
1078
|
-
pendingEffects.unshift(
|
|
1079
|
-
() => setSelectOptions(
|
|
1080
|
-
scope[nodeAccessor],
|
|
1081
|
-
value,
|
|
1082
|
-
valueChange
|
|
1083
|
-
),
|
|
1084
|
-
scope
|
|
1085
|
-
);
|
|
1161
|
+
_attr_select_value_default(scope, nodeAccessor, normalizedValue);
|
|
1162
|
+
}
|
|
1086
1163
|
}
|
|
1087
1164
|
function _attr_select_value_script(scope, nodeAccessor) {
|
|
1088
1165
|
const el = scope[nodeAccessor];
|
|
1089
1166
|
const onChange = () => {
|
|
1090
1167
|
const valueChange = scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor];
|
|
1091
1168
|
if (valueChange) {
|
|
1092
|
-
const
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
el,
|
|
1097
|
-
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor],
|
|
1098
|
-
valueChange
|
|
1099
|
-
);
|
|
1169
|
+
const oldValue = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor];
|
|
1170
|
+
const multiple = Array.isArray(oldValue);
|
|
1171
|
+
const newValue = getSelectValue(el, multiple);
|
|
1172
|
+
setSelectValue(el, oldValue, multiple);
|
|
1100
1173
|
valueChange(newValue);
|
|
1101
1174
|
run();
|
|
1102
1175
|
}
|
|
1103
1176
|
};
|
|
1104
|
-
if (
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1177
|
+
if (isResuming) {
|
|
1178
|
+
if (el.multiple) {
|
|
1179
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = [];
|
|
1180
|
+
for (const opt of el.options) {
|
|
1181
|
+
if (opt.defaultSelected) {
|
|
1182
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor].push(opt.value);
|
|
1183
|
+
}
|
|
1109
1184
|
}
|
|
1110
|
-
}
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1185
|
+
} else {
|
|
1186
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = "";
|
|
1187
|
+
for (const opt of el.options) {
|
|
1188
|
+
if (opt.defaultSelected) {
|
|
1189
|
+
scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = opt.value;
|
|
1190
|
+
break;
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1114
1194
|
}
|
|
1115
|
-
|
|
1195
|
+
syncControllableFormInput(el, hasSelectChanged, onChange);
|
|
1196
|
+
new MutationObserver(() => {
|
|
1197
|
+
const value = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor];
|
|
1198
|
+
if (Array.isArray(value) ? value.length !== el.selectedOptions.length || value.some((value2, i) => value2 != el.selectedOptions[i].value) : el.value !== value) {
|
|
1199
|
+
onChange();
|
|
1200
|
+
}
|
|
1201
|
+
}).observe(el, { childList: true, subtree: true });
|
|
1116
1202
|
}
|
|
1117
|
-
function
|
|
1118
|
-
if (
|
|
1203
|
+
function setSelectValue(el, value, multiple) {
|
|
1204
|
+
if (multiple) {
|
|
1119
1205
|
for (const opt of el.options) {
|
|
1120
|
-
|
|
1121
|
-
if (valueChange) {
|
|
1122
|
-
opt.selected = selected;
|
|
1123
|
-
} else {
|
|
1124
|
-
opt.defaultSelected = selected;
|
|
1125
|
-
}
|
|
1206
|
+
opt.selected = value.includes(opt.value);
|
|
1126
1207
|
}
|
|
1127
1208
|
} else {
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1209
|
+
el.value = value;
|
|
1210
|
+
}
|
|
1211
|
+
}
|
|
1212
|
+
function getSelectValue(el, multiple) {
|
|
1213
|
+
return multiple ? Array.from(el.selectedOptions, (opt) => opt.value) : el.value;
|
|
1214
|
+
}
|
|
1215
|
+
function _attr_details_or_dialog_open_default(scope, nodeAccessor, open) {
|
|
1216
|
+
if (scope["#Creating" /* Creating */]) {
|
|
1217
|
+
scope[nodeAccessor].open = normalizeBoolProp(open);
|
|
1136
1218
|
}
|
|
1137
1219
|
}
|
|
1138
1220
|
function _attr_details_or_dialog_open(scope, nodeAccessor, open, openChange) {
|
|
1221
|
+
const normalizedOpen = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = normalizeBoolProp(open);
|
|
1139
1222
|
scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor] = openChange;
|
|
1140
|
-
|
|
1141
|
-
|
|
1223
|
+
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = openChange ? 4 /* DetailsOrDialogOpen */ : 5 /* None */;
|
|
1224
|
+
if (openChange && !scope["#Creating" /* Creating */]) {
|
|
1225
|
+
scope[nodeAccessor].open = normalizedOpen;
|
|
1142
1226
|
} else {
|
|
1143
|
-
scope
|
|
1227
|
+
_attr_details_or_dialog_open_default(scope, nodeAccessor, normalizedOpen);
|
|
1144
1228
|
}
|
|
1145
|
-
scope[nodeAccessor].open = scope["ControlledValue:" /* ControlledValue */ + nodeAccessor] = normalizeBoolProp(open);
|
|
1146
1229
|
}
|
|
1147
1230
|
function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
1148
1231
|
const el = scope[nodeAccessor];
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
el
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
if (openChange && hasChanged()) {
|
|
1157
|
-
const newValue = el.open;
|
|
1158
|
-
el.open = !newValue;
|
|
1159
|
-
openChange(newValue);
|
|
1160
|
-
run();
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
);
|
|
1164
|
-
}
|
|
1165
|
-
var inputType = "";
|
|
1166
|
-
function setValueAndUpdateSelection(el, value) {
|
|
1167
|
-
if (el.value !== value) {
|
|
1168
|
-
const updatedPosition = resolveCursorPosition(
|
|
1169
|
-
inputType,
|
|
1170
|
-
el.getRootNode().activeElement === el && el.selectionStart,
|
|
1171
|
-
el.value,
|
|
1172
|
-
el.value = value
|
|
1173
|
-
);
|
|
1174
|
-
if (~updatedPosition) {
|
|
1175
|
-
el.setSelectionRange(updatedPosition, updatedPosition);
|
|
1232
|
+
new MutationObserver(() => {
|
|
1233
|
+
const openChange = scope["ControlledHandler:" /* ControlledHandler */ + nodeAccessor];
|
|
1234
|
+
if (openChange && el.open === !scope["ControlledValue:" /* ControlledValue */ + nodeAccessor]) {
|
|
1235
|
+
const newValue = el.open;
|
|
1236
|
+
el.open = !newValue;
|
|
1237
|
+
openChange(newValue);
|
|
1238
|
+
run();
|
|
1176
1239
|
}
|
|
1177
|
-
}
|
|
1240
|
+
}).observe(el, { attributes: true, attributeFilter: ["open"] });
|
|
1178
1241
|
}
|
|
1179
|
-
function
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
} else {
|
|
1185
|
-
scope["ControlledType:" /* ControlledType */ + nodeAccessor] = 5 /* None */;
|
|
1186
|
-
scope[nodeAccessor].defaultChecked = checked;
|
|
1242
|
+
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
1243
|
+
el._ = onChange;
|
|
1244
|
+
controllableDelegate(el, "input", handleChange);
|
|
1245
|
+
if (el.form) {
|
|
1246
|
+
controllableDelegate(el.form, "reset", handleFormReset);
|
|
1187
1247
|
}
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
function syncControllable(el, event, hasChanged, onChange) {
|
|
1191
|
-
if (!el._) {
|
|
1192
|
-
controllableDelegate(el, event, handleChange);
|
|
1193
|
-
if (el.form) {
|
|
1194
|
-
controllableDelegate(el.form, "reset", handleFormReset);
|
|
1195
|
-
}
|
|
1196
|
-
if (isResuming && hasChanged(el)) {
|
|
1197
|
-
queueMicrotask(onChange);
|
|
1198
|
-
}
|
|
1248
|
+
if (isResuming && hasChanged(el)) {
|
|
1249
|
+
queueMicrotask(onChange);
|
|
1199
1250
|
}
|
|
1200
|
-
el._ = onChange;
|
|
1201
1251
|
}
|
|
1202
1252
|
function handleChange(ev) {
|
|
1203
1253
|
ev.target._?.(ev);
|
|
@@ -1243,9 +1293,6 @@ function updateList(arr, val, push2) {
|
|
|
1243
1293
|
const index = arr.indexOf(val);
|
|
1244
1294
|
return (push2 ? !~index && [...arr, val] : ~index && arr.slice(0, index).concat(arr.slice(index + 1))) || arr;
|
|
1245
1295
|
}
|
|
1246
|
-
function toValueProp(it) {
|
|
1247
|
-
return it.value;
|
|
1248
|
-
}
|
|
1249
1296
|
|
|
1250
1297
|
// src/dom/dom.ts
|
|
1251
1298
|
function _to_text(value) {
|
|
@@ -1283,7 +1330,7 @@ function _attr_style_items(element, items) {
|
|
|
1283
1330
|
}
|
|
1284
1331
|
}
|
|
1285
1332
|
function _attr_style_item(element, name, value) {
|
|
1286
|
-
element.style.setProperty(name, value
|
|
1333
|
+
element.style.setProperty(name, _to_text(value));
|
|
1287
1334
|
}
|
|
1288
1335
|
function _attr_nonce(scope, nodeAccessor) {
|
|
1289
1336
|
_attr(scope[nodeAccessor], "nonce", scope["$global" /* Global */].cspNonce);
|
|
@@ -1473,7 +1520,7 @@ function _html(scope, value, accessor) {
|
|
|
1473
1520
|
const parentNode = firstChild.parentNode;
|
|
1474
1521
|
const lastChild = scope["DynamicHTMLLastChild:" /* DynamicHTMLLastChild */ + accessor] || firstChild;
|
|
1475
1522
|
const newContent = parseHTML(
|
|
1476
|
-
value
|
|
1523
|
+
_to_text(value),
|
|
1477
1524
|
parentNode.namespaceURI
|
|
1478
1525
|
);
|
|
1479
1526
|
insertChildNodes(
|
|
@@ -2554,22 +2601,29 @@ export {
|
|
|
2554
2601
|
_attr_class_items,
|
|
2555
2602
|
_attr_content,
|
|
2556
2603
|
_attr_details_or_dialog_open as _attr_details_open,
|
|
2604
|
+
_attr_details_or_dialog_open_default as _attr_details_open_default,
|
|
2557
2605
|
_attr_details_or_dialog_open_script as _attr_details_open_script,
|
|
2558
2606
|
_attr_details_or_dialog_open as _attr_dialog_open,
|
|
2607
|
+
_attr_details_or_dialog_open_default as _attr_dialog_open_default,
|
|
2559
2608
|
_attr_details_or_dialog_open_script as _attr_dialog_open_script,
|
|
2560
2609
|
_attr_input_checked,
|
|
2561
2610
|
_attr_input_checkedValue,
|
|
2611
|
+
_attr_input_checkedValue_default,
|
|
2562
2612
|
_attr_input_checkedValue_script,
|
|
2613
|
+
_attr_input_checked_default,
|
|
2563
2614
|
_attr_input_checked_script,
|
|
2564
2615
|
_attr_input_value,
|
|
2616
|
+
_attr_input_value_default,
|
|
2565
2617
|
_attr_input_value_script,
|
|
2566
2618
|
_attr_nonce,
|
|
2567
2619
|
_attr_select_value,
|
|
2620
|
+
_attr_select_value_default,
|
|
2568
2621
|
_attr_select_value_script,
|
|
2569
2622
|
_attr_style,
|
|
2570
2623
|
_attr_style_item,
|
|
2571
2624
|
_attr_style_items,
|
|
2572
2625
|
_attr_input_value as _attr_textarea_value,
|
|
2626
|
+
_attr_input_value_default as _attr_textarea_value_default,
|
|
2573
2627
|
_attr_input_value_script as _attr_textarea_value_script,
|
|
2574
2628
|
_attrs,
|
|
2575
2629
|
_attrs_content,
|
package/dist/debug/html.js
CHANGED
|
@@ -2879,8 +2879,8 @@ function _attr_style(value) {
|
|
|
2879
2879
|
return stringAttr("style", styleValue(value));
|
|
2880
2880
|
}
|
|
2881
2881
|
function _attr_option_value(value) {
|
|
2882
|
-
const
|
|
2883
|
-
return
|
|
2882
|
+
const valueAttr = _attr("value", value);
|
|
2883
|
+
return normalizedValueMatches(getContext(kSelectedValue), value) ? valueAttr + " selected" : valueAttr;
|
|
2884
2884
|
}
|
|
2885
2885
|
var kSelectedValue = /* @__PURE__ */ Symbol("selectedValue");
|
|
2886
2886
|
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
@@ -2889,7 +2889,7 @@ function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content)
|
|
|
2889
2889
|
3 /* SelectValue */,
|
|
2890
2890
|
scopeId,
|
|
2891
2891
|
nodeAccessor,
|
|
2892
|
-
|
|
2892
|
+
void 0,
|
|
2893
2893
|
valueChange
|
|
2894
2894
|
);
|
|
2895
2895
|
}
|
|
@@ -2931,33 +2931,44 @@ function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
|
2931
2931
|
checkedChange
|
|
2932
2932
|
);
|
|
2933
2933
|
}
|
|
2934
|
-
return
|
|
2934
|
+
return normalizeBoolAttrValue(checked) ? " checked" : "";
|
|
2935
2935
|
}
|
|
2936
2936
|
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
2937
|
-
const multiple = Array.isArray(checkedValue);
|
|
2938
2937
|
const valueAttr = _attr("value", value);
|
|
2939
2938
|
if (checkedValueChange) {
|
|
2940
2939
|
writeControlledScope(
|
|
2941
2940
|
1 /* InputCheckedValue */,
|
|
2942
2941
|
scopeId,
|
|
2943
2942
|
nodeAccessor,
|
|
2944
|
-
checkedValue,
|
|
2943
|
+
getCheckedValueRef(checkedValue),
|
|
2945
2944
|
checkedValueChange
|
|
2946
2945
|
);
|
|
2947
2946
|
}
|
|
2948
|
-
return (
|
|
2947
|
+
return normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
2948
|
+
}
|
|
2949
|
+
var checkedValuesRefs = /* @__PURE__ */ new WeakMap();
|
|
2950
|
+
function getCheckedValueRef(checkedValue) {
|
|
2951
|
+
if (Array.isArray(checkedValue)) {
|
|
2952
|
+
let ref = checkedValuesRefs.get(checkedValue);
|
|
2953
|
+
if (!ref) {
|
|
2954
|
+
ref = [];
|
|
2955
|
+
checkedValuesRefs.set(checkedValue, ref);
|
|
2956
|
+
}
|
|
2957
|
+
return ref;
|
|
2958
|
+
}
|
|
2949
2959
|
}
|
|
2950
2960
|
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
2961
|
+
const normalizedOpen = normalizeBoolAttrValue(open);
|
|
2951
2962
|
if (openChange) {
|
|
2952
2963
|
writeControlledScope(
|
|
2953
2964
|
4 /* DetailsOrDialogOpen */,
|
|
2954
2965
|
scopeId,
|
|
2955
2966
|
nodeAccessor,
|
|
2956
|
-
|
|
2967
|
+
normalizedOpen,
|
|
2957
2968
|
openChange
|
|
2958
2969
|
);
|
|
2959
2970
|
}
|
|
2960
|
-
return
|
|
2971
|
+
return normalizedOpen ? " open" : "";
|
|
2961
2972
|
}
|
|
2962
2973
|
function _attr_nonce() {
|
|
2963
2974
|
return getChunk().boundary.state.nonceAttr;
|
|
@@ -3120,6 +3131,27 @@ function escapeDoubleQuotedAttrValue(value) {
|
|
|
3120
3131
|
function replaceUnsafeDoubleQuoteAttrChar(match) {
|
|
3121
3132
|
return match === '"' ? """ : "&";
|
|
3122
3133
|
}
|
|
3134
|
+
function normalizedValueMatches(a, b) {
|
|
3135
|
+
const value = normalizeStrAttrValue(b);
|
|
3136
|
+
if (Array.isArray(a)) {
|
|
3137
|
+
for (const item of a) {
|
|
3138
|
+
if (normalizeStrAttrValue(item) === value) {
|
|
3139
|
+
return true;
|
|
3140
|
+
}
|
|
3141
|
+
}
|
|
3142
|
+
} else if (normalizeStrAttrValue(a) === value) {
|
|
3143
|
+
return true;
|
|
3144
|
+
}
|
|
3145
|
+
return false;
|
|
3146
|
+
}
|
|
3147
|
+
function normalizeStrAttrValue(value) {
|
|
3148
|
+
return value && value !== true || value === 0 ? value + "" : "";
|
|
3149
|
+
}
|
|
3150
|
+
function normalizeBoolAttrValue(value) {
|
|
3151
|
+
if (value != null && value !== false) {
|
|
3152
|
+
return true;
|
|
3153
|
+
}
|
|
3154
|
+
}
|
|
3123
3155
|
|
|
3124
3156
|
// src/common/compat-meta.ts
|
|
3125
3157
|
var prefix = true ? "$compat_" : "$C_";
|
package/dist/debug/html.mjs
CHANGED
|
@@ -2786,8 +2786,8 @@ function _attr_style(value) {
|
|
|
2786
2786
|
return stringAttr("style", styleValue(value));
|
|
2787
2787
|
}
|
|
2788
2788
|
function _attr_option_value(value) {
|
|
2789
|
-
const
|
|
2790
|
-
return
|
|
2789
|
+
const valueAttr = _attr("value", value);
|
|
2790
|
+
return normalizedValueMatches(getContext(kSelectedValue), value) ? valueAttr + " selected" : valueAttr;
|
|
2791
2791
|
}
|
|
2792
2792
|
var kSelectedValue = /* @__PURE__ */ Symbol("selectedValue");
|
|
2793
2793
|
function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content) {
|
|
@@ -2796,7 +2796,7 @@ function _attr_select_value(scopeId, nodeAccessor, value, valueChange, content)
|
|
|
2796
2796
|
3 /* SelectValue */,
|
|
2797
2797
|
scopeId,
|
|
2798
2798
|
nodeAccessor,
|
|
2799
|
-
|
|
2799
|
+
void 0,
|
|
2800
2800
|
valueChange
|
|
2801
2801
|
);
|
|
2802
2802
|
}
|
|
@@ -2838,33 +2838,44 @@ function _attr_input_checked(scopeId, nodeAccessor, checked, checkedChange) {
|
|
|
2838
2838
|
checkedChange
|
|
2839
2839
|
);
|
|
2840
2840
|
}
|
|
2841
|
-
return
|
|
2841
|
+
return normalizeBoolAttrValue(checked) ? " checked" : "";
|
|
2842
2842
|
}
|
|
2843
2843
|
function _attr_input_checkedValue(scopeId, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
2844
|
-
const multiple = Array.isArray(checkedValue);
|
|
2845
2844
|
const valueAttr = _attr("value", value);
|
|
2846
2845
|
if (checkedValueChange) {
|
|
2847
2846
|
writeControlledScope(
|
|
2848
2847
|
1 /* InputCheckedValue */,
|
|
2849
2848
|
scopeId,
|
|
2850
2849
|
nodeAccessor,
|
|
2851
|
-
checkedValue,
|
|
2850
|
+
getCheckedValueRef(checkedValue),
|
|
2852
2851
|
checkedValueChange
|
|
2853
2852
|
);
|
|
2854
2853
|
}
|
|
2855
|
-
return (
|
|
2854
|
+
return normalizedValueMatches(checkedValue, value) ? valueAttr + " checked" : valueAttr;
|
|
2855
|
+
}
|
|
2856
|
+
var checkedValuesRefs = /* @__PURE__ */ new WeakMap();
|
|
2857
|
+
function getCheckedValueRef(checkedValue) {
|
|
2858
|
+
if (Array.isArray(checkedValue)) {
|
|
2859
|
+
let ref = checkedValuesRefs.get(checkedValue);
|
|
2860
|
+
if (!ref) {
|
|
2861
|
+
ref = [];
|
|
2862
|
+
checkedValuesRefs.set(checkedValue, ref);
|
|
2863
|
+
}
|
|
2864
|
+
return ref;
|
|
2865
|
+
}
|
|
2856
2866
|
}
|
|
2857
2867
|
function _attr_details_or_dialog_open(scopeId, nodeAccessor, open, openChange) {
|
|
2868
|
+
const normalizedOpen = normalizeBoolAttrValue(open);
|
|
2858
2869
|
if (openChange) {
|
|
2859
2870
|
writeControlledScope(
|
|
2860
2871
|
4 /* DetailsOrDialogOpen */,
|
|
2861
2872
|
scopeId,
|
|
2862
2873
|
nodeAccessor,
|
|
2863
|
-
|
|
2874
|
+
normalizedOpen,
|
|
2864
2875
|
openChange
|
|
2865
2876
|
);
|
|
2866
2877
|
}
|
|
2867
|
-
return
|
|
2878
|
+
return normalizedOpen ? " open" : "";
|
|
2868
2879
|
}
|
|
2869
2880
|
function _attr_nonce() {
|
|
2870
2881
|
return getChunk().boundary.state.nonceAttr;
|
|
@@ -3027,6 +3038,27 @@ function escapeDoubleQuotedAttrValue(value) {
|
|
|
3027
3038
|
function replaceUnsafeDoubleQuoteAttrChar(match) {
|
|
3028
3039
|
return match === '"' ? """ : "&";
|
|
3029
3040
|
}
|
|
3041
|
+
function normalizedValueMatches(a, b) {
|
|
3042
|
+
const value = normalizeStrAttrValue(b);
|
|
3043
|
+
if (Array.isArray(a)) {
|
|
3044
|
+
for (const item of a) {
|
|
3045
|
+
if (normalizeStrAttrValue(item) === value) {
|
|
3046
|
+
return true;
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
} else if (normalizeStrAttrValue(a) === value) {
|
|
3050
|
+
return true;
|
|
3051
|
+
}
|
|
3052
|
+
return false;
|
|
3053
|
+
}
|
|
3054
|
+
function normalizeStrAttrValue(value) {
|
|
3055
|
+
return value && value !== true || value === 0 ? value + "" : "";
|
|
3056
|
+
}
|
|
3057
|
+
function normalizeBoolAttrValue(value) {
|
|
3058
|
+
if (value != null && value !== false) {
|
|
3059
|
+
return true;
|
|
3060
|
+
}
|
|
3061
|
+
}
|
|
3030
3062
|
|
|
3031
3063
|
// src/common/compat-meta.ts
|
|
3032
3064
|
var prefix = true ? "$compat_" : "$C_";
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { type Accessor, type Scope } from "../common/types";
|
|
2
|
+
export declare function _attr_input_checked_default(scope: Scope, nodeAccessor: Accessor, checked: boolean): void;
|
|
2
3
|
export declare function _attr_input_checked(scope: Scope, nodeAccessor: Accessor, checked: unknown, checkedChange: unknown): void;
|
|
3
4
|
export declare function _attr_input_checked_script(scope: Scope, nodeAccessor: Accessor): void;
|
|
5
|
+
export declare function _attr_input_checkedValue_default(scope: Scope, nodeAccessor: Accessor, checkedValue: unknown, value: unknown): void;
|
|
4
6
|
export declare function _attr_input_checkedValue(scope: Scope, nodeAccessor: Accessor, checkedValue: unknown, checkedValueChange: unknown, value: unknown): void;
|
|
5
7
|
export declare function _attr_input_checkedValue_script(scope: Scope, nodeAccessor: Accessor): void;
|
|
8
|
+
export declare function _attr_input_value_default(scope: Scope, nodeAccessor: Accessor, value: unknown): void;
|
|
6
9
|
export declare function _attr_input_value(scope: Scope, nodeAccessor: Accessor, value: unknown, valueChange: unknown): void;
|
|
7
10
|
export declare function _attr_input_value_script(scope: Scope, nodeAccessor: Accessor): void;
|
|
8
|
-
export
|
|
11
|
+
export declare function _attr_select_value_default(scope: Scope, nodeAccessor: Accessor, value: unknown): void;
|
|
9
12
|
export declare function _attr_select_value(scope: Scope, nodeAccessor: Accessor, value: unknown, valueChange: unknown): void;
|
|
10
13
|
export declare function _attr_select_value_script(scope: Scope, nodeAccessor: Accessor): void;
|
|
14
|
+
export declare function _attr_details_or_dialog_open_default(scope: Scope, nodeAccessor: Accessor, open: unknown): void;
|
|
11
15
|
export declare function _attr_details_or_dialog_open(scope: Scope, nodeAccessor: Accessor, open: unknown, openChange: unknown): void;
|
|
12
16
|
export declare function _attr_details_or_dialog_open_script(scope: Scope, nodeAccessor: Accessor): void;
|