Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using correct string type for input attribute "autocomplete" #278

Merged
merged 2 commits into from
Jun 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 69 additions & 8 deletions buildSrc/src/main/resources/html_5.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -1433,14 +1433,7 @@
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="autocomplete">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="on"/>
<xsd:enumeration value="off"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="autocomplete" type="autocompleteType" />
<xsd:attribute name="checked">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
Expand Down Expand Up @@ -2033,6 +2026,74 @@
</xsd:union>
</xsd:simpleType>

<xsd:simpleType name="autocompleteType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="on"/>
<xsd:enumeration value="off"/>
<xsd:enumeration value="address-line1"/>
<xsd:enumeration value="address-line2"/>
<xsd:enumeration value="address-line3"/>
<xsd:enumeration value="address-level1"/>
<xsd:enumeration value="address-level2"/>
<xsd:enumeration value="address-level3"/>
<xsd:enumeration value="address-level4"/>
<xsd:enumeration value="street-address"/>
<xsd:enumeration value="country"/>
<xsd:enumeration value="country-name"/>
<xsd:enumeration value="postal-code"/>
<xsd:enumeration value="name"/>
<xsd:enumeration value="additional-name"/>
<xsd:enumeration value="family-name"/>
<xsd:enumeration value="given-name"/>
<xsd:enumeration value="honoric-prefix"/>
<xsd:enumeration value="honoric-suffix"/>
<xsd:enumeration value="nickname"/>
<xsd:enumeration value="organization-title"/>
<xsd:enumeration value="username"/>
<xsd:enumeration value="new-password"/>
<xsd:enumeration value="current-password"/>
<xsd:enumeration value="bday"/>
<xsd:enumeration value="bday-day"/>
<xsd:enumeration value="bday-month"/>
<xsd:enumeration value="bday-year"/>
<xsd:enumeration value="sex"/>
<xsd:enumeration value="one-time-code"/>
<xsd:enumeration value="organization"/>
<xsd:enumeration value="cc-name"/>
<xsd:enumeration value="cc-given-name"/>
<xsd:enumeration value="cc-additional-name"/>
<xsd:enumeration value="cc-family-name"/>
<xsd:enumeration value="cc-number"/>
<xsd:enumeration value="cc-exp"/>
<xsd:enumeration value="cc-exp-month"/>
<xsd:enumeration value="cc-exp-year"/>
<xsd:enumeration value="cc-csc"/>
<xsd:enumeration value="cc-type"/>
<xsd:enumeration value="transaction-currency"/>
<xsd:enumeration value="transaction-amount"/>
<xsd:enumeration value="language"/>
<xsd:enumeration value="url"/>
<xsd:enumeration value="email"/>
<xsd:enumeration value="photo"/>
<xsd:enumeration value="tel"/>
<xsd:enumeration value="tel-country-code"/>
<xsd:enumeration value="tel-national"/>
<xsd:enumeration value="tel-area-code"/>
<xsd:enumeration value="tel-local"/>
<xsd:enumeration value="tel-local-prefix"/>
<xsd:enumeration value="tel-local-suffix"/>
<xsd:enumeration value="tel-extension"/>
<xsd:enumeration value="impp"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>

<xsd:complexType mixed="true" name="simpleFlowContentElement">
<xsd:choice>
<xsd:group ref="flowContent"/>
Expand Down
62 changes: 62 additions & 0 deletions src/commonMain/kotlin/generated/gen-enums.kt
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,68 @@ enum class InputType(override val realValue : String) : AttributeEnum {
}

internal val inputTypeValues : Map<String, InputType> = InputType.entries.associateBy { it.realValue }
@Suppress("unused", "ConstPropertyName")
object InputAutoComplete {
const val on : String = "on"
const val off : String = "off"
const val addressLine1 : String = "address-line1"
const val addressLine2 : String = "address-line2"
const val addressLine3 : String = "address-line3"
const val addressLevel1 : String = "address-level1"
const val addressLevel2 : String = "address-level2"
const val addressLevel3 : String = "address-level3"
const val addressLevel4 : String = "address-level4"
const val streetAddress : String = "street-address"
const val country : String = "country"
const val countryName : String = "country-name"
const val postalCode : String = "postal-code"
const val name : String = "name"
const val additionalName : String = "additional-name"
const val familyName : String = "family-name"
const val givenName : String = "given-name"
const val honoricPrefix : String = "honoric-prefix"
const val honoricSuffix : String = "honoric-suffix"
const val nickname : String = "nickname"
const val organizationTitle : String = "organization-title"
const val username : String = "username"
const val newPassword : String = "new-password"
const val currentPassword : String = "current-password"
const val bday : String = "bday"
const val bdayDay : String = "bday-day"
const val bdayMonth : String = "bday-month"
const val bdayYear : String = "bday-year"
const val sex : String = "sex"
const val onETimeCode : String = "one-time-code"
const val organization : String = "organization"
const val ccName : String = "cc-name"
const val ccGivenName : String = "cc-given-name"
const val ccAdditionalName : String = "cc-additional-name"
const val ccFamilyName : String = "cc-family-name"
const val ccNumber : String = "cc-number"
const val ccExp : String = "cc-exp"
const val ccExpMonth : String = "cc-exp-month"
const val ccExpYear : String = "cc-exp-year"
const val ccCsc : String = "cc-csc"
const val ccType : String = "cc-type"
const val transactionCurrency : String = "transaction-currency"
const val transactionAmount : String = "transaction-amount"
const val language : String = "language"
const val url : String = "url"
const val email : String = "email"
const val photo : String = "photo"
const val tel : String = "tel"
const val telCountryCode : String = "tel-country-code"
const val telNational : String = "tel-national"
const val telAreaCode : String = "tel-area-code"
const val telLocal : String = "tel-local"
const val telLocalPrefix : String = "tel-local-prefix"
const val telLocalSuffix : String = "tel-local-suffix"
const val telExtension : String = "tel-extension"
const val impp : String = "impp"

val values : List<String> = listOf("on", "off", "addressLine1", "addressLine2", "addressLine3", "addressLevel1", "addressLevel2", "addressLevel3", "addressLevel4", "streetAddress", "country", "countryName", "postalCode", "name", "additionalName", "familyName", "givenName", "honoricPrefix", "honoricSuffix", "nickname", "organizationTitle", "username", "newPassword", "currentPassword", "bday", "bdayDay", "bdayMonth", "bdayYear", "sex", "onETimeCode", "organization", "ccName", "ccGivenName", "ccAdditionalName", "ccFamilyName", "ccNumber", "ccExp", "ccExpMonth", "ccExpYear", "ccCsc", "ccType", "transactionCurrency", "transactionAmount", "language", "url", "email", "photo", "tel", "telCountryCode", "telNational", "telAreaCode", "telLocal", "telLocalPrefix", "telLocalSuffix", "telExtension", "impp")
}

@Suppress("unused", "EnumEntryName")
enum class InputFormEncType(override val realValue : String) : AttributeEnum {
multipartFormData("multipart/form-data"),
Expand Down
6 changes: 3 additions & 3 deletions src/commonMain/kotlin/generated/gen-tags-i.kt
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,9 @@ open class INPUT(initialAttributes : Map<String, String>, override val consumer
get() = attributeBooleanTicker[this, "autofocus"]
set(newValue) {attributeBooleanTicker[this, "autofocus"] = newValue}

var autoComplete : Boolean
get() = attributeBooleanBooleanOnOff[this, "autocomplete"]
set(newValue) {attributeBooleanBooleanOnOff[this, "autocomplete"] = newValue}
var autoComplete : String
get() = attributeStringString[this, "autocomplete"]
set(newValue) {attributeStringString[this, "autocomplete"] = newValue}

var checked : Boolean
get() = attributeBooleanTicker[this, "checked"]
Expand Down
13 changes: 8 additions & 5 deletions src/jvmTest/kotlin/streaming.kt
Original file line number Diff line number Diff line change
Expand Up @@ -214,11 +214,11 @@ class TestStreaming {
}

@Test fun `test form with button`() {
assertEquals("<form action=\"/someurl\">" +
"<input type=\"checkbox\" name=\"cb1\">var1" +
assertEquals(
"<form action=\"/someurl\"><input type=\"checkbox\" name=\"cb1\">var1" +
"<input type=\"checkbox\" name=\"cb2\" disabled=\"disabled\">var2" +
"<input type=\"submit\" value=\"Go!\">" +
"</form>",
"<input type=\"text\" name=\"t1\" autocomplete=\"impp\">" +
"<input type=\"submit\" value=\"Go!\"></form>",
StringBuilder().appendHTML(false).form("/someurl") {
checkBoxInput(name = "cb1") {
+"var1"
Expand All @@ -227,6 +227,9 @@ class TestStreaming {
disabled = true
+"var2"
}
textInput(name = "t1") {
autoComplete = InputAutoComplete.impp
}

submitInput {
value = "Go!"
Expand All @@ -240,7 +243,7 @@ class TestStreaming {

val timeSource = TimeSource.Monotonic
val now = timeSource.markNow()
var measuredDuration = Duration.INFINITE
val measuredDuration: Duration

val rs = builder.measureTime(timeSource = timeSource).div {
val measuredStart = timeSource.markNow()
Expand Down
Loading