import { chinaRegions } from '../data/china-regions.mjs';
const option = (value, label, selected = false) => ``;
export function regionSelects(region = {}, { required = true, className = 'region-selects' } = {}) {
const province = chinaRegions.find(item => item.code === region.provinceCode);
const city = province?.cities.find(item => item.code === region.cityCode);
const requiredText = required ? 'required' : '';
return `
`;
}
export function updateRegionSelects(select) {
const group = select.closest('[data-region-group]');
if (!group) return;
const provinceSelect = group.querySelector('[name="provinceCode"]');
const citySelect = group.querySelector('[name="cityCode"]');
const districtSelect = group.querySelector('[name="districtCode"]');
const province = chinaRegions.find(item => item.code === provinceSelect?.value);
if (select.dataset.regionLevel === 'province') {
citySelect.innerHTML = `${(province?.cities || []).map(item => option(item.code, item.name)).join('')}`;
districtSelect.innerHTML = '';
} else if (select.dataset.regionLevel === 'city') {
const city = province?.cities.find(item => item.code === citySelect?.value);
districtSelect.innerHTML = `${(city?.districts || []).map(item => option(item.code, item.name)).join('')}`;
}
}
export function mountRegionSelects(root, region = {}, options = {}) {
const address = root?.querySelector('[name="address"]');
if (!address || root.querySelector('[data-region-group]')) return;
address.closest('label')?.insertAdjacentHTML('beforebegin', regionSelects(region, options));
}
export function formatRegionAddress(region = {}) {
const parts = [region.provinceName, region.cityName, region.districtName]
.filter((value, index, values) => value && value !== values[index - 1]);
return [...parts, region.address].filter(Boolean).join('');
}