DNS record management, CSS grid, Regex, location.query
This commit is contained in:
@@ -584,6 +584,13 @@ static func parse_utility_class_internal(rule: CSSRule, utility_name: String) ->
|
||||
if utility_name == "inline-flex":
|
||||
rule.properties["display"] = "inline-flex"
|
||||
return
|
||||
|
||||
if utility_name == "grid":
|
||||
rule.properties["display"] = "grid"
|
||||
return
|
||||
if utility_name == "inline-grid":
|
||||
rule.properties["display"] = "inline-grid"
|
||||
return
|
||||
|
||||
# Flex direction
|
||||
match utility_name:
|
||||
@@ -638,6 +645,52 @@ static func parse_utility_class_internal(rule: CSSRule, utility_name: String) ->
|
||||
rule.properties["column-gap"] = SizeUtils.parse_size(val)
|
||||
return
|
||||
|
||||
if utility_name.begins_with("grid-cols-"):
|
||||
var val = utility_name.substr(10)
|
||||
if val.is_valid_int():
|
||||
rule.properties["grid-template-columns"] = val.to_int()
|
||||
else:
|
||||
rule.properties["grid-template-columns"] = val
|
||||
return
|
||||
if utility_name.begins_with("grid-rows-"):
|
||||
var val = utility_name.substr(10)
|
||||
if val.is_valid_int():
|
||||
rule.properties["grid-template-rows"] = val.to_int()
|
||||
else:
|
||||
rule.properties["grid-template-rows"] = val
|
||||
return
|
||||
|
||||
if utility_name.begins_with("col-span-"):
|
||||
var val = utility_name.substr(9)
|
||||
if val == "full":
|
||||
rule.properties["grid-column"] = "1 / -1"
|
||||
elif val.is_valid_int():
|
||||
rule.properties["grid-column"] = "span " + val
|
||||
return
|
||||
if utility_name.begins_with("row-span-"):
|
||||
var val = utility_name.substr(9)
|
||||
if val == "full":
|
||||
rule.properties["grid-row"] = "1 / -1"
|
||||
elif val.is_valid_int():
|
||||
rule.properties["grid-row"] = "span " + val
|
||||
return
|
||||
|
||||
match utility_name:
|
||||
"grid-cols-1": rule.properties["grid-template-columns"] = 1; return
|
||||
"grid-cols-2": rule.properties["grid-template-columns"] = 2; return
|
||||
"grid-cols-3": rule.properties["grid-template-columns"] = 3; return
|
||||
"grid-cols-4": rule.properties["grid-template-columns"] = 4; return
|
||||
"grid-cols-5": rule.properties["grid-template-columns"] = 5; return
|
||||
"grid-cols-6": rule.properties["grid-template-columns"] = 6; return
|
||||
"grid-cols-12": rule.properties["grid-template-columns"] = 12; return
|
||||
"col-span-1": rule.properties["grid-column"] = "span 1"; return
|
||||
"col-span-2": rule.properties["grid-column"] = "span 2"; return
|
||||
"col-span-3": rule.properties["grid-column"] = "span 3"; return
|
||||
"col-span-4": rule.properties["grid-column"] = "span 4"; return
|
||||
"col-span-5": rule.properties["grid-column"] = "span 5"; return
|
||||
"col-span-6": rule.properties["grid-column"] = "span 6"; return
|
||||
"col-span-full": rule.properties["grid-column"] = "1 / -1"; return
|
||||
|
||||
# FLEX ITEM PROPERTIES
|
||||
if utility_name.begins_with("flex-grow-"):
|
||||
var val = utility_name.substr(10)
|
||||
|
||||
@@ -173,6 +173,76 @@ func _gurt_location_get_href_handler(vm: LuauVM) -> int:
|
||||
vm.lua_pushstring("")
|
||||
return 1
|
||||
|
||||
func _gurt_location_query_get_handler(vm: LuauVM) -> int:
|
||||
var key: String = vm.luaL_checkstring(1)
|
||||
var query_params = get_current_query_params()
|
||||
|
||||
if query_params.has(key):
|
||||
vm.lua_pushstring(query_params[key])
|
||||
else:
|
||||
vm.lua_pushnil()
|
||||
return 1
|
||||
|
||||
func _gurt_location_query_has_handler(vm: LuauVM) -> int:
|
||||
var key: String = vm.luaL_checkstring(1)
|
||||
var query_params = get_current_query_params()
|
||||
|
||||
vm.lua_pushboolean(query_params.has(key))
|
||||
return 1
|
||||
|
||||
func _gurt_location_query_getAll_handler(vm: LuauVM) -> int:
|
||||
var key: String = vm.luaL_checkstring(1)
|
||||
var query_params = get_current_query_params()
|
||||
|
||||
vm.lua_newtable()
|
||||
|
||||
if query_params.has(key):
|
||||
var value = query_params[key]
|
||||
if value is Array:
|
||||
for i in range(value.size()):
|
||||
vm.lua_pushstring(str(value[i]))
|
||||
vm.lua_rawseti(-2, i + 1)
|
||||
else:
|
||||
vm.lua_pushstring(str(value))
|
||||
vm.lua_rawseti(-2, 1)
|
||||
|
||||
return 1
|
||||
|
||||
func get_current_query_params() -> Dictionary:
|
||||
var main_node = Engine.get_main_loop().current_scene
|
||||
var current_url = ""
|
||||
|
||||
if main_node and main_node.has_method("get_current_url"):
|
||||
current_url = main_node.get_current_url()
|
||||
elif main_node and main_node.has_property("current_domain"):
|
||||
current_url = main_node.current_domain
|
||||
|
||||
var query_params = {}
|
||||
|
||||
if "?" in current_url:
|
||||
var query_string = current_url.split("?")[1]
|
||||
if "#" in query_string:
|
||||
query_string = query_string.split("#")[0]
|
||||
|
||||
for param in query_string.split("&"):
|
||||
if "=" in param:
|
||||
var key_value = param.split("=", false, 1)
|
||||
var key = key_value[0].uri_decode()
|
||||
var value = key_value[1].uri_decode() if key_value.size() > 1 else ""
|
||||
|
||||
if query_params.has(key):
|
||||
if query_params[key] is Array:
|
||||
query_params[key].append(value)
|
||||
else:
|
||||
query_params[key] = [query_params[key], value]
|
||||
else:
|
||||
query_params[key] = value
|
||||
else:
|
||||
var key = param.uri_decode()
|
||||
query_params[key] = ""
|
||||
|
||||
return query_params
|
||||
|
||||
func _reload_current_page():
|
||||
var main_node = Engine.get_main_loop().current_scene
|
||||
if main_node and main_node.has_method("reload_current_page"):
|
||||
@@ -660,6 +730,12 @@ func _handle_text_setting(operation: Dictionary):
|
||||
var element_id = get_or_assign_element_id(element)
|
||||
var dom_node = dom_parser.parse_result.dom_nodes.get(element_id, null)
|
||||
if dom_node:
|
||||
if element.tag_name == "button":
|
||||
var button_node = dom_node.get_node_or_null("ButtonNode")
|
||||
if button_node and button_node is Button:
|
||||
button_node.text = text
|
||||
return
|
||||
|
||||
var text_node = get_dom_node(dom_node, "text")
|
||||
if text_node:
|
||||
if text_node is RichTextLabel:
|
||||
|
||||
Reference in New Issue
Block a user