#include "html_builder_bind.h"
#include "core/print_string.h"
#include "core/ustring.h"
//#include "web/http/request.h"
_HTMLTag *_HTMLTag::str(const String &str) {
result += " " + str;
return this;
}
_HTMLTag *_HTMLTag::style(const String &val) {
attrib("style", val);
return this;
}
_HTMLTag *_HTMLTag::href(const String &val) {
attrib("href", val);
return this;
}
_HTMLTag *_HTMLTag::cls(const String &val) {
attrib("class", val);
return this;
}
_HTMLTag *_HTMLTag::clsse(const String &val) {
if (val == "") {
return this;
}
attrib("class", val);
return this;
}
_HTMLTag *_HTMLTag::id(const String &val) {
attrib("id", val);
return this;
}
_HTMLTag *_HTMLTag::name(const String &val) {
attrib("name", val);
return this;
}
_HTMLTag *_HTMLTag::content(const String &val) {
attrib("content", val);
return this;
}
_HTMLTag *_HTMLTag::value(const String &val) {
attrib("value", val);
return this;
}
_HTMLTag *_HTMLTag::accept(const String &val) {
attrib("accept", val);
return this;
}
_HTMLTag *_HTMLTag::src(const String &val) {
attrib("src", val);
return this;
}
_HTMLTag *_HTMLTag::alt(const String &val) {
attrib("alt", val);
return this;
}
_HTMLTag *_HTMLTag::autocomplete(const String &val) {
attrib("autocomplete", val);
return this;
}
_HTMLTag *_HTMLTag::autocomplete_off() {
attrib("autocomplete", "off");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_on() {
attrib("autocomplete", "on");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name() {
attrib("autocomplete", "name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_honorific_prefix() {
attrib("autocomplete", "honorific-prefix");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_given_name() {
attrib("autocomplete", "given-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_additional_name() {
attrib("autocomplete", "additional-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_family_name() {
attrib("autocomplete", "family-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_honorific_suffix() {
attrib("autocomplete", "honorific-suffix");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_name_nickname() {
attrib("autocomplete", "nickname");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_email() {
attrib("autocomplete", "email");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_username() {
attrib("autocomplete", "username");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_new_password() {
attrib("autocomplete", "new-password");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_current_password() {
attrib("autocomplete", "current-password");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_one_time_code() {
attrib("autocomplete", "one-time-code");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_organization_title() {
attrib("autocomplete", "organization-title");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_organization() {
attrib("autocomplete", "organization");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_street_address() {
attrib("autocomplete", "street-address");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_line1() {
attrib("autocomplete", "address-line1");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_line2() {
attrib("autocomplete", "address-line2");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_line3() {
attrib("autocomplete", "address-line3");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_level_1() {
attrib("autocomplete", "address-level1");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_level_2() {
attrib("autocomplete", "address-level2");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_level_3() {
attrib("autocomplete", "address-level3");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_address_level_4() {
attrib("autocomplete", "address-level4");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_country() {
attrib("autocomplete", "country");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_country_name() {
attrib("autocomplete", "country-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_postal_code() {
attrib("autocomplete", "postal-code");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_name() {
attrib("autocomplete", "cc-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_given_name() {
attrib("autocomplete", "cc-given-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_additional_name() {
attrib("autocomplete", "cc-additional-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_family_name() {
attrib("autocomplete", "cc-family-name");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_number() {
attrib("autocomplete", "cc-number");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_exp() {
attrib("autocomplete", "cc-exp");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_exp_month() {
attrib("autocomplete", "cc-exp-month");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_exp_year() {
attrib("autocomplete", "cc-exp-year");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_csc() {
attrib("autocomplete", "cc-csc");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_cc_type() {
attrib("autocomplete", "cc-type");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_transaction_currency() {
attrib("autocomplete", "transaction-currency");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_transaction_amount() {
attrib("autocomplete", "transaction-amount");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_language() {
attrib("autocomplete", "language");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_bday() {
attrib("autocomplete", "bday");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_bday_day() {
attrib("autocomplete", "bday-day");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_bday_month() {
attrib("autocomplete", "bday-month");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_bday_year() {
attrib("autocomplete", "bday-year");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_sex() {
attrib("autocomplete", "sex");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel() {
attrib("autocomplete", "tel");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel_country_code() {
attrib("autocomplete", "tel-country-code");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel_national() {
attrib("autocomplete", "tel-national");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel_area_code() {
attrib("autocomplete", "tel-area-code");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel_local() {
attrib("autocomplete", "tel-local");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_tel_extension() {
attrib("autocomplete", "tel-extension");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_impp() {
attrib("autocomplete", "impp");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_url() {
attrib("autocomplete", "url");
return this;
}
_HTMLTag *_HTMLTag::autocomplete_photo() {
attrib("autocomplete", "photo");
return this;
}
_HTMLTag *_HTMLTag::onclick(const String &val) {
attrib("onclick", val);
return this;
}
_HTMLTag *_HTMLTag::inputmode(const String &val) {
attrib("inputmode", val);
return this;
}
_HTMLTag *_HTMLTag::list(const String &val) {
attrib("list", val);
return this;
}
_HTMLTag *_HTMLTag::checked(const bool val) {
if (val) {
result += " checked";
}
return this;
}
_HTMLTag *_HTMLTag::selected(const bool val) {
if (val) {
result += " selected";
}
return this;
}
_HTMLTag *_HTMLTag::autofocus(const bool val) {
if (val) {
result += " autofocus";
}
return this;
}
_HTMLTag *_HTMLTag::disabled(const bool val) {
if (val) {
result += " disabled";
}
return this;
}
_HTMLTag *_HTMLTag::multiple(const bool val) {
if (val) {
result += " multiple";
}
return this;
}
_HTMLTag *_HTMLTag::required(const bool val) {
if (val) {
result += " required";
}
return this;
}
_HTMLTag *_HTMLTag::spellcheck(const bool val) {
if (val) {
attrib("spellcheck", "true");
} else {
attrib("spellcheck", "false");
}
return this;
}
_HTMLTag *_HTMLTag::max(const String &val) {
attrib("max", val);
return this;
}
_HTMLTag *_HTMLTag::min(const String &val) {
attrib("min", val);
return this;
}
_HTMLTag *_HTMLTag::step(const String &val) {
attrib("step", val);
return this;
}
_HTMLTag *_HTMLTag::step_any() {
attrib("step", "any");
return this;
}
_HTMLTag *_HTMLTag::minlength(const int val) {
attrib("minlength", String::num(val));
return this;
}
_HTMLTag *_HTMLTag::minlength(const String &val) {
attrib("minlength", val);
return this;
}
_HTMLTag *_HTMLTag::maxlength(const int val) {
attrib("maxlength", String::num(val));
return this;
}
_HTMLTag *_HTMLTag::maxlength(const String &val) {
attrib("maxlength", val);
return this;
}
_HTMLTag *_HTMLTag::size(const int val) {
attrib("size", String::num(val));
return this;
}
_HTMLTag *_HTMLTag::size(const String &val) {
attrib("size", val);
return this;
}
_HTMLTag *_HTMLTag::width(const int val) {
attrib("width", String::num(val));
return this;
}
_HTMLTag *_HTMLTag::width(const String &val) {
attrib("width", val);
return this;
}
_HTMLTag *_HTMLTag::height(const int val) {
attrib("height", String::num(val));
return this;
}
_HTMLTag *_HTMLTag::height(const String &val) {
attrib("height", val);
return this;
}
_HTMLTag *_HTMLTag::pattern(const String &val) {
attrib("pattern", val);
return this;
}
_HTMLTag *_HTMLTag::method(const String &val) {
attrib("method", val);
return this;
}
_HTMLTag *_HTMLTag::method_get() {
attrib("method", "get");
return this;
}
_HTMLTag *_HTMLTag::method_post() {
attrib("method", "post");
return this;
}
_HTMLTag *_HTMLTag::action(const String &val) {
attrib("action", val);
return this;
}
_HTMLTag *_HTMLTag::type(const String &val) {
attrib("type", val);
return this;
}
_HTMLTag *_HTMLTag::placeholder(const String &val) {
attrib("placeholder", val);
return this;
}
_HTMLTag *_HTMLTag::fora(const String &val) {
attrib("for", val);
return this;
}
_HTMLTag *_HTMLTag::rel(const String &val) {
attrib("rel", val);
return this;
}
_HTMLTag *_HTMLTag::rel_stylesheet() {
attrib("rel", "stylesheet");
return this;
}
_HTMLTag *_HTMLTag::rel_alternate() {
attrib("rel", "alternate");
return this;
}
_HTMLTag *_HTMLTag::rel_author() {
attrib("rel", "author");
return this;
}
_HTMLTag *_HTMLTag::rel_bookmark() {
attrib("rel", "bookmark");
return this;
}
_HTMLTag *_HTMLTag::rel_external() {
attrib("rel", "external");
return this;
}
_HTMLTag *_HTMLTag::rel_help() {
attrib("rel", "help");
return this;
}
_HTMLTag *_HTMLTag::rel_next() {
attrib("rel", "next");
return this;
}
_HTMLTag *_HTMLTag::rel_nofollow() {
attrib("rel", "nofollow");
return this;
}
_HTMLTag *_HTMLTag::rel_noopener() {
attrib("rel", "noopener");
return this;
}
_HTMLTag *_HTMLTag::rel_noreferrer() {
attrib("rel", "noreferrer");
return this;
}
_HTMLTag *_HTMLTag::rel_prev() {
attrib("rel", "prev");
return this;
}
_HTMLTag *_HTMLTag::rel_search() {
attrib("rel", "search");
return this;
}
_HTMLTag *_HTMLTag::rel_tag() {
attrib("rel", "tag");
return this;
}
_HTMLTag *_HTMLTag::charset(const String &val) {
attrib("charset", val);
return this;
}
_HTMLTag *_HTMLTag::charset_utf_8() {
attrib("charset", "utf-8");
return this;
}
_HTMLTag *_HTMLTag::itbutton() {
attrib("type", "button");
return this;
}
_HTMLTag *_HTMLTag::itcheckbox() {
attrib("type", "checkbox");
return this;
}
_HTMLTag *_HTMLTag::itcolor() {
attrib("type", "color");
return this;
}
_HTMLTag *_HTMLTag::itdate() {
attrib("type", "date");
return this;
}
_HTMLTag *_HTMLTag::itdatetime_local() {
attrib("type", "datetime_local");
return this;
}
_HTMLTag *_HTMLTag::itemail() {
attrib("type", "email");
return this;
}
_HTMLTag *_HTMLTag::itfile() {
attrib("type", "file");
return this;
}
_HTMLTag *_HTMLTag::ithidden() {
attrib("type", "hidden");
return this;
}
_HTMLTag *_HTMLTag::itimage() {
attrib("type", "image");
return this;
}
_HTMLTag *_HTMLTag::itmonth() {
attrib("type", "month");
return this;
}
_HTMLTag *_HTMLTag::itnumber() {
attrib("type", "number");
return this;
}
_HTMLTag *_HTMLTag::itpassword() {
attrib("type", "password");
return this;
}
_HTMLTag *_HTMLTag::itradio() {
attrib("type", "radio");
return this;
}
_HTMLTag *_HTMLTag::itrange() {
attrib("type", "range");
return this;
}
_HTMLTag *_HTMLTag::itreset() {
attrib("type", "reset");
return this;
}
_HTMLTag *_HTMLTag::itsearch() {
attrib("type", "search");
return this;
}
_HTMLTag *_HTMLTag::itsubmit() {
attrib("type", "submit");
return this;
}
_HTMLTag *_HTMLTag::ittel() {
attrib("type", "tel");
return this;
}
_HTMLTag *_HTMLTag::ittext() {
attrib("type", "text");
return this;
}
_HTMLTag *_HTMLTag::ittime() {
attrib("type", "time");
return this;
}
_HTMLTag *_HTMLTag::iturl() {
attrib("type", "url");
return this;
}
_HTMLTag *_HTMLTag::itweek() {
attrib("type", "week");
return this;
}
_HTMLTag *_HTMLTag::inputmode_none() {
attrib("inputmode", "none");
return this;
}
_HTMLTag *_HTMLTag::inputmode_text() {
attrib("inputmode", "text");
return this;
}
_HTMLTag *_HTMLTag::inputmode_decimal() {
attrib("inputmode", "decimal");
return this;
}
_HTMLTag *_HTMLTag::inputmode_numeric() {
attrib("inputmode", "numeric");
return this;
}
_HTMLTag *_HTMLTag::inputmode_tel() {
attrib("inputmode", "tel");
return this;
}
_HTMLTag *_HTMLTag::inputmode_search() {
attrib("inputmode", "search");
return this;
}
_HTMLTag *_HTMLTag::inputmode_email() {
attrib("inputmode", "email");
return this;
}
_HTMLTag *_HTMLTag::inputmode_url() {
attrib("inputmode", "url");
return this;
}
_HTMLTag *_HTMLTag::attrib(const String &attr, const String &val) {
result += " " + attr + "=\"" + val + "\"";
return this;
}
_HTMLTag *_HTMLTag::start(const String &p_tag, const bool p_simple) {
simple = p_simple;
result = "<" + p_tag;
return this;
}
_HTMLTag *_HTMLTag::reset() {
result.clear();
return this;
}
_HTMLTag *_HTMLTag::close() {
if (simple)
result += "/>";
else
result += ">";
return this;
}
_HTMLBuilder *_HTMLTag::f() {
return owner;
}
bool _HTMLTag::has_data() {
return result.size() > 0;
}
_HTMLTag::_HTMLTag() {
simple = true;
owner = nullptr;
}
void _HTMLTag::_bind_methods() {
ClassDB::bind_method(D_METHOD("style", "val"), &_HTMLTag::style);
}
_HTMLBuilder *_HTMLBuilder::comment(const String &val) {
write_tag();
result += "";
return this;
}
_HTMLTag *_HTMLBuilder::doctype() {
write_tag();
return tag.start("!DOCTYPE");
}
_HTMLBuilder *_HTMLBuilder::doctype(const String &val) {
write_tag();
result += "";
return this;
}
_HTMLTag *_HTMLBuilder::a() {
write_tag();
return tag.start("a");
}
_HTMLTag *_HTMLBuilder::abbr() {
write_tag();
return tag.start("abbr");
}
_HTMLTag *_HTMLBuilder::acronym() { // Not supported in HTML5. Use instead. Defines an acronym
write_tag();
return tag.start("acronym");
}
_HTMLTag *_HTMLBuilder::address() {
write_tag();
return tag.start("address");
}
_HTMLTag *_HTMLBuilder::applet() { // Not supported in HTML5. Use ";
return this;
}
_HTMLBuilder *_HTMLBuilder::cacronym() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::caddress() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::capplet() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::carea() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::carticle() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::caside() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::caudio() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cb() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cbasefont() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cbdi() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cbdo() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cbig() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cblockquote() {
write_tag();
result += "";
return this;
}
_HTMLBuilder *_HTMLBuilder::cbody() {
write_tag();
result += "