MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / _createElementSide

Function _createElementSide

www/js/_hyperscript-max.js:9956–9995  ·  view source on GitHub ↗
(element, runtime2)

Source from the content-addressed store, hash-verified

9954 "SELECT": "value"
9955 };
9956 function _createElementSide(element, runtime2) {
9957 var tag = element.tagName;
9958 var type = tag === "INPUT" ? element.getAttribute("type") || "text" : null;
9959 if (tag === "INPUT" && type === "radio") {
9960 var radioValue = element.value;
9961 return {
9962 element,
9963 read: function() {
9964 var checked = runtime2.resolveProperty(element, "checked");
9965 return checked ? radioValue : void 0;
9966 },
9967 write: function(value) {
9968 element.checked = value === radioValue;
9969 }
9970 };
9971 }
9972 var prop = _bindProperty[tag + ":" + type] || _bindProperty[tag];
9973 if (!prop && element.hasAttribute("contenteditable") && element.getAttribute("contenteditable") !== "false") {
9974 prop = "textContent";
9975 }
9976 if (!prop && tag.includes("-") && "value" in element) {
9977 prop = "value";
9978 }
9979 if (!prop) {
9980 throw new Error(
9981 "bind cannot auto-detect a property for <" + tag.toLowerCase() + ">. Use an explicit property (e.g. 'bind $var to #el's value')."
9982 );
9983 }
9984 var isNumeric = prop === "valueAsNumber";
9985 return {
9986 element,
9987 read: function() {
9988 var val = runtime2.resolveProperty(element, prop);
9989 return isNumeric && val !== val ? null : val;
9990 },
9991 write: function(value) {
9992 element[prop] = value;
9993 }
9994 };
9995 }
9996 function _createExpressionSide(expr, target, feature, runtime2) {
9997 if (expr.type === "classRef") {
9998 return {

Callers 1

_resolveSideFunction · 0.70

Calls 1

resolvePropertyMethod · 0.45

Tested by

no test coverage detected