2023-02-28 08:29:30 +00:00
< template >
< DocSectionText v-bind ="$attrs" >
2024-02-01 12:20:41 +00:00
< p > Invalid state is displayed using the < i > invalid < / i > prop to indicate a failed validation . You can use this style when integrating with form validation libraries . < / p >
2023-02-28 08:29:30 +00:00
< / DocSectionText >
2024-09-28 20:54:53 +00:00
< div class = "card flex flex-wrap justify-center gap-4" >
< CascadeSelect v -model = " selectedCity1 " :invalid ="!selectedCity1" :options ="countries" optionLabel = "cname" optionGroupLabel = "name" : optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" / >
< CascadeSelect
v - model = "selectedCity2"
: invalid = "!selectedCity2"
: options = "countries"
optionLabel = "cname"
optionGroupLabel = "name"
: optionGroupChildren = "['states', 'cities']"
class = "w-full sm:w-56"
placeholder = "Select a City"
variant = "filled"
/ >
2023-02-28 08:29:30 +00:00
< / div >
< DocSectionCode :code ="code" / >
< / template >
< script >
export default {
data ( ) {
return {
2024-09-28 20:54:53 +00:00
selectedCity1 : null ,
selectedCity2 : null ,
2023-02-28 08:29:30 +00:00
countries : [
{
name : 'Australia' ,
code : 'AU' ,
states : [
{
name : 'New South Wales' ,
cities : [
{ cname : 'Sydney' , code : 'A-SY' } ,
{ cname : 'Newcastle' , code : 'A-NE' } ,
{ cname : 'Wollongong' , code : 'A-WO' }
]
} ,
{
name : 'Queensland' ,
cities : [
{ cname : 'Brisbane' , code : 'A-BR' } ,
{ cname : 'Townsville' , code : 'A-TO' }
]
}
]
} ,
{
name : 'Canada' ,
code : 'CA' ,
states : [
{
name : 'Quebec' ,
cities : [
{ cname : 'Montreal' , code : 'C-MO' } ,
{ cname : 'Quebec City' , code : 'C-QU' }
]
} ,
{
name : 'Ontario' ,
cities : [
{ cname : 'Ottawa' , code : 'C-OT' } ,
{ cname : 'Toronto' , code : 'C-TO' }
]
}
]
} ,
{
name : 'United States' ,
code : 'US' ,
states : [
{
name : 'California' ,
cities : [
{ cname : 'Los Angeles' , code : 'US-LA' } ,
{ cname : 'San Diego' , code : 'US-SD' } ,
{ cname : 'San Francisco' , code : 'US-SF' }
]
} ,
{
name : 'Florida' ,
cities : [
{ cname : 'Jacksonville' , code : 'US-JA' } ,
{ cname : 'Miami' , code : 'US-MI' } ,
{ cname : 'Tampa' , code : 'US-TA' } ,
{ cname : 'Orlando' , code : 'US-OR' }
]
} ,
{
name : 'Texas' ,
cities : [
{ cname : 'Austin' , code : 'US-AU' } ,
{ cname : 'Dallas' , code : 'US-DA' } ,
{ cname : 'Houston' , code : 'US-HO' }
]
}
]
}
] ,
code : {
2023-09-22 12:54:14 +00:00
basic : `
2024-09-28 20:54:53 +00:00
< div class = "card flex flex-wrap justify-center gap-4" >
< CascadeSelect v -model = " selectedCity1 " :invalid ="!selectedCity1" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" / >
< CascadeSelect v -model = " selectedCity2 " :invalid ="!selectedCity2" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" variant = "filled" / >
< / div >
2023-10-15 09:38:39 +00:00
` ,
2023-09-22 12:54:14 +00:00
options : `
< template >
2024-09-28 20:54:53 +00:00
< div class = "card flex flex-wrap justify-center gap-4" >
< CascadeSelect v -model = " selectedCity1 " :invalid ="!selectedCity1" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
2024-09-26 07:46:23 +00:00
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" / >
2024-09-28 20:54:53 +00:00
< CascadeSelect v -model = " selectedCity2 " :invalid ="!selectedCity2" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" variant = "filled" / >
2023-02-28 08:29:30 +00:00
< / div >
< / template >
< script >
export default {
data ( ) {
return {
2024-09-28 20:54:53 +00:00
selectedCity1 : null ,
selectedCity2 : null ,
2023-02-28 08:29:30 +00:00
countries : [
{
name : 'Australia' ,
code : 'AU' ,
states : [
{
name : 'New South Wales' ,
cities : [
{ cname : 'Sydney' , code : 'A-SY' } ,
{ cname : 'Newcastle' , code : 'A-NE' } ,
{ cname : 'Wollongong' , code : 'A-WO' }
]
} ,
{
name : 'Queensland' ,
cities : [
{ cname : 'Brisbane' , code : 'A-BR' } ,
{ cname : 'Townsville' , code : 'A-TO' }
]
}
]
} ,
{
name : 'Canada' ,
code : 'CA' ,
states : [
{
name : 'Quebec' ,
cities : [
{ cname : 'Montreal' , code : 'C-MO' } ,
{ cname : 'Quebec City' , code : 'C-QU' }
]
} ,
{
name : 'Ontario' ,
cities : [
{ cname : 'Ottawa' , code : 'C-OT' } ,
{ cname : 'Toronto' , code : 'C-TO' }
]
}
]
} ,
{
name : 'United States' ,
code : 'US' ,
states : [
{
name : 'California' ,
cities : [
{ cname : 'Los Angeles' , code : 'US-LA' } ,
{ cname : 'San Diego' , code : 'US-SD' } ,
{ cname : 'San Francisco' , code : 'US-SF' }
]
} ,
{
name : 'Florida' ,
cities : [
{ cname : 'Jacksonville' , code : 'US-JA' } ,
{ cname : 'Miami' , code : 'US-MI' } ,
{ cname : 'Tampa' , code : 'US-TA' } ,
{ cname : 'Orlando' , code : 'US-OR' }
]
} ,
{
name : 'Texas' ,
cities : [
{ cname : 'Austin' , code : 'US-AU' } ,
{ cname : 'Dallas' , code : 'US-DA' } ,
{ cname : 'Houston' , code : 'US-HO' }
]
}
]
}
]
} ;
}
} ;
2023-10-15 09:38:39 +00:00
< \ / script >
` ,
2023-09-22 12:54:14 +00:00
composition : `
< template >
2024-09-28 20:54:53 +00:00
< div class = "card flex flex-wrap justify-center gap-4" >
< CascadeSelect v -model = " selectedCity1 " :invalid ="!selectedCity1" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
2024-09-26 07:46:23 +00:00
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" / >
2024-09-28 20:54:53 +00:00
< CascadeSelect v -model = " selectedCity2 " :invalid ="!selectedCity2" :options ="countries" optionLabel = "cname" optionGroupLabel = "name"
: optionGroupChildren = "['states', 'cities']" class = "w-full sm:w-56" placeholder = "Select a City" variant = "filled" / >
2023-02-28 08:29:30 +00:00
< / div >
< / template >
< script setup >
import { ref } from "vue" ;
2024-09-28 20:54:53 +00:00
const selectedCity1 = ref ( null ) ;
const selectedCity2 = ref ( null ) ;
2023-02-28 08:29:30 +00:00
const countries = ref ( [
{
name : 'Australia' ,
code : 'AU' ,
states : [
{
name : 'New South Wales' ,
cities : [
{ cname : 'Sydney' , code : 'A-SY' } ,
{ cname : 'Newcastle' , code : 'A-NE' } ,
{ cname : 'Wollongong' , code : 'A-WO' }
]
} ,
{
name : 'Queensland' ,
cities : [
{ cname : 'Brisbane' , code : 'A-BR' } ,
{ cname : 'Townsville' , code : 'A-TO' }
]
}
]
} ,
{
name : 'Canada' ,
code : 'CA' ,
states : [
{
name : 'Quebec' ,
cities : [
{ cname : 'Montreal' , code : 'C-MO' } ,
{ cname : 'Quebec City' , code : 'C-QU' }
]
} ,
{
name : 'Ontario' ,
cities : [
{ cname : 'Ottawa' , code : 'C-OT' } ,
{ cname : 'Toronto' , code : 'C-TO' }
]
}
]
} ,
{
name : 'United States' ,
code : 'US' ,
states : [
{
name : 'California' ,
cities : [
{ cname : 'Los Angeles' , code : 'US-LA' } ,
{ cname : 'San Diego' , code : 'US-SD' } ,
{ cname : 'San Francisco' , code : 'US-SF' }
]
} ,
{
name : 'Florida' ,
cities : [
{ cname : 'Jacksonville' , code : 'US-JA' } ,
{ cname : 'Miami' , code : 'US-MI' } ,
{ cname : 'Tampa' , code : 'US-TA' } ,
{ cname : 'Orlando' , code : 'US-OR' }
]
} ,
{
name : 'Texas' ,
cities : [
{ cname : 'Austin' , code : 'US-AU' } ,
{ cname : 'Dallas' , code : 'US-DA' } ,
{ cname : 'Houston' , code : 'US-HO' }
]
}
]
}
] ) ;
2023-10-15 09:38:39 +00:00
< \ / script >
`
2023-02-28 08:29:30 +00:00
}
} ;
}
} ;
< / script >