"use strict"; class State_Select_Input extends Ajax_Select_Input { async on_load() { // Initialize country code from args or default to US if (!this.data.country_code) { this.data.country_code = this.args.country_code || 'US'; } // Load states via Ajax endpoint if country code is set if (this.data.country_code) { this.data.select_values = await Rsx_Reference_Data_Controller.states({ country: this.data.country_code }); // If no states returned, add N/A option if (!this.data.select_values || this.data.select_values.length === 0) { this.data.select_values = [{ value: 'N/A', label: 'N/A' }]; } } else { this.data.select_values = []; } } on_create() { // Set default placeholder if not provided if (!this.args.placeholder) { this.args.placeholder = 'Select State...'; } // Initialize country code in data this.data.country_code = this.args.country_code || ''; // Cache for selected state per country code this._state_cache = {}; // Call parent to initialize Ajax_Select_Input super.on_create(); } on_ready() { // Call parent to initialize Tom Select super.on_ready(); // Check if this is N/A case (no states for country) const is_na = this.data.select_values.length === 1 && this.data.select_values[0].value === 'N/A'; // Disable if no country code or N/A case if ((!this.data.country_code || is_na) && this.tom_select) { this.tom_select.disable(); } // Set value to N/A if that's the only option if (is_na) { this.val('N/A'); } } /** * Set country code and reload state list * @param {string} country_code - ISO country code (e.g., 'US', 'CA') */ async set_country_code(country_code) { // Cache the current value for the current country before switching const current_country = this.data.country_code; const current_value = this.val(); if (current_country && current_value && current_value !== 'N/A') { this._state_cache[current_country] = current_value; } // Update country code this.data.country_code = country_code; // Disable the selector while loading if (this.tom_select) { this.tom_select.disable(); } // Load new state list try { this.data.select_values = await Rsx_Reference_Data_Controller.states({ country: country_code }); // Race condition check: verify country hasn't changed during the request if (this.data.country_code !== country_code) { // Country changed while request was in flight - ignore this response return; } // If no states returned, add N/A option if (!this.data.select_values || this.data.select_values.length === 0) { this.data.select_values = [{ value: 'N/A', label: 'N/A' }]; } // Re-render the widget with new states this.redraw(); // Re-initialize Tom Select after redraw if (this.tom_select) { this.tom_select.destroy(); } // Re-run on_ready to set up Tom Select again this.on_ready(); // Check if this is N/A case const is_na = this.data.select_values.length === 1 && this.data.select_values[0].value === 'N/A'; if (is_na) { // Set to N/A and keep disabled this.val('N/A'); if (this.tom_select) { this.tom_select.disable(); } } else { // Try to restore cached value for this country const cached_value = this._state_cache[country_code]; if (cached_value) { const value_exists = this.data.select_values.some(opt => (typeof opt === 'object' ? opt.value : opt) === cached_value); if (value_exists) { this.val(cached_value); } else { this.val(''); // Clear if cached value not in new list } } else { this.val(''); // No cached value - leave empty } // Enable the widget now that we have a country with states if (this.tom_select) { this.tom_select.enable(); } } } catch (error) { console.error('Failed to load states for country:', country_code, error); this.data.select_values = []; // Re-enable even on error if (this.tom_select) { this.tom_select.enable(); } } } /** * Override val() to update cache when user manually selects a state */ val(value) { if (arguments.length === 0) { // Getter - use parent implementation return super.val(); } else { // Setter - update cache and call parent if (this.data.country_code && value && value !== 'N/A') { this._state_cache[this.data.country_code] = value; } return super.val(value); } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0ZV9TZWxlY3RfSW5wdXQiLCJBamF4X1NlbGVjdF9JbnB1dCIsIm9uX2xvYWQiLCJkYXRhIiwiY291bnRyeV9jb2RlIiwiYXJncyIsInNlbGVjdF92YWx1ZXMiLCJSc3hfUmVmZXJlbmNlX0RhdGFfQ29udHJvbGxlciIsInN0YXRlcyIsImNvdW50cnkiLCJsZW5ndGgiLCJ2YWx1ZSIsImxhYmVsIiwib25fY3JlYXRlIiwicGxhY2Vob2xkZXIiLCJfc3RhdGVfY2FjaGUiLCJvbl9yZWFkeSIsImlzX25hIiwidG9tX3NlbGVjdCIsImRpc2FibGUiLCJ2YWwiLCJzZXRfY291bnRyeV9jb2RlIiwiY3VycmVudF9jb3VudHJ5IiwiY3VycmVudF92YWx1ZSIsInJlZHJhdyIsImRlc3Ryb3kiLCJjYWNoZWRfdmFsdWUiLCJ2YWx1ZV9leGlzdHMiLCJzb21lIiwib3B0IiwiZW5hYmxlIiwiZXJyb3IiLCJjb25zb2xlIiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvaW5wdXRzL3N0YXRlX3NlbGVjdF9pbnB1dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBTdGF0ZV9TZWxlY3RfSW5wdXQgZXh0ZW5kcyBBamF4X1NlbGVjdF9JbnB1dCB7XG4gICAgYXN5bmMgb25fbG9hZCgpIHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb3VudHJ5IGNvZGUgZnJvbSBhcmdzIG9yIGRlZmF1bHQgdG8gVVNcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuY291bnRyeV9jb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuY291bnRyeV9jb2RlID0gdGhpcy5hcmdzLmNvdW50cnlfY29kZSB8fCAnVVMnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9hZCBzdGF0ZXMgdmlhIEFqYXggZW5kcG9pbnQgaWYgY291bnRyeSBjb2RlIGlzIHNldFxuICAgICAgICBpZiAodGhpcy5kYXRhLmNvdW50cnlfY29kZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhLnNlbGVjdF92YWx1ZXMgPSBhd2FpdCBSc3hfUmVmZXJlbmNlX0RhdGFfQ29udHJvbGxlci5zdGF0ZXMoeyBjb3VudHJ5OiB0aGlzLmRhdGEuY291bnRyeV9jb2RlIH0pO1xuXG4gICAgICAgICAgICAvLyBJZiBubyBzdGF0ZXMgcmV0dXJuZWQsIGFkZCBOL0Egb3B0aW9uXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5zZWxlY3RfdmFsdWVzIHx8IHRoaXMuZGF0YS5zZWxlY3RfdmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5zZWxlY3RfdmFsdWVzID0gW3sgdmFsdWU6ICdOL0EnLCBsYWJlbDogJ04vQScgfV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25fY3JlYXRlKCkge1xuICAgICAgICAvLyBTZXQgZGVmYXVsdCBwbGFjZWhvbGRlciBpZiBub3QgcHJvdmlkZWRcbiAgICAgICAgaWYgKCF0aGlzLmFyZ3MucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXJncy5wbGFjZWhvbGRlciA9ICdTZWxlY3QgU3RhdGUuLi4nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb3VudHJ5IGNvZGUgaW4gZGF0YVxuICAgICAgICB0aGlzLmRhdGEuY291bnRyeV9jb2RlID0gdGhpcy5hcmdzLmNvdW50cnlfY29kZSB8fCAnJztcblxuICAgICAgICAvLyBDYWNoZSBmb3Igc2VsZWN0ZWQgc3RhdGUgcGVyIGNvdW50cnkgY29kZVxuICAgICAgICB0aGlzLl9zdGF0ZV9jYWNoZSA9IHt9O1xuXG4gICAgICAgIC8vIENhbGwgcGFyZW50IHRvIGluaXRpYWxpemUgQWpheF9TZWxlY3RfSW5wdXRcbiAgICAgICAgc3VwZXIub25fY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIENhbGwgcGFyZW50IHRvIGluaXRpYWxpemUgVG9tIFNlbGVjdFxuICAgICAgICBzdXBlci5vbl9yZWFkeSgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgTi9BIGNhc2UgKG5vIHN0YXRlcyBmb3IgY291bnRyeSlcbiAgICAgICAgY29uc3QgaXNfbmEgPSB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcy5sZW5ndGggPT09IDEgJiYgdGhpcy5kYXRhLnNlbGVjdF92YWx1ZXNbMF0udmFsdWUgPT09ICdOL0EnO1xuXG4gICAgICAgIC8vIERpc2FibGUgaWYgbm8gY291bnRyeSBjb2RlIG9yIE4vQSBjYXNlXG4gICAgICAgIGlmICgoIXRoaXMuZGF0YS5jb3VudHJ5X2NvZGUgfHwgaXNfbmEpICYmIHRoaXMudG9tX3NlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy50b21fc2VsZWN0LmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB2YWx1ZSB0byBOL0EgaWYgdGhhdCdzIHRoZSBvbmx5IG9wdGlvblxuICAgICAgICBpZiAoaXNfbmEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsKCdOL0EnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb3VudHJ5IGNvZGUgYW5kIHJlbG9hZCBzdGF0ZSBsaXN0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvdW50cnlfY29kZSAtIElTTyBjb3VudHJ5IGNvZGUgKGUuZy4sICdVUycsICdDQScpXG4gICAgICovXG4gICAgYXN5bmMgc2V0X2NvdW50cnlfY29kZShjb3VudHJ5X2NvZGUpIHtcbiAgICAgICAgLy8gQ2FjaGUgdGhlIGN1cnJlbnQgdmFsdWUgZm9yIHRoZSBjdXJyZW50IGNvdW50cnkgYmVmb3JlIHN3aXRjaGluZ1xuICAgICAgICBjb25zdCBjdXJyZW50X2NvdW50cnkgPSB0aGlzLmRhdGEuY291bnRyeV9jb2RlO1xuICAgICAgICBjb25zdCBjdXJyZW50X3ZhbHVlID0gdGhpcy52YWwoKTtcbiAgICAgICAgaWYgKGN1cnJlbnRfY291bnRyeSAmJiBjdXJyZW50X3ZhbHVlICYmIGN1cnJlbnRfdmFsdWUgIT09ICdOL0EnKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZV9jYWNoZVtjdXJyZW50X2NvdW50cnldID0gY3VycmVudF92YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBjb3VudHJ5IGNvZGVcbiAgICAgICAgdGhpcy5kYXRhLmNvdW50cnlfY29kZSA9IGNvdW50cnlfY29kZTtcblxuICAgICAgICAvLyBEaXNhYmxlIHRoZSBzZWxlY3RvciB3aGlsZSBsb2FkaW5nXG4gICAgICAgIGlmICh0aGlzLnRvbV9zZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMudG9tX3NlbGVjdC5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIG5ldyBzdGF0ZSBsaXN0XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcyA9IGF3YWl0IFJzeF9SZWZlcmVuY2VfRGF0YV9Db250cm9sbGVyLnN0YXRlcyh7IGNvdW50cnk6IGNvdW50cnlfY29kZSB9KTtcblxuICAgICAgICAgICAgLy8gUmFjZSBjb25kaXRpb24gY2hlY2s6IHZlcmlmeSBjb3VudHJ5IGhhc24ndCBjaGFuZ2VkIGR1cmluZyB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5jb3VudHJ5X2NvZGUgIT09IGNvdW50cnlfY29kZSkge1xuICAgICAgICAgICAgICAgIC8vIENvdW50cnkgY2hhbmdlZCB3aGlsZSByZXF1ZXN0IHdhcyBpbiBmbGlnaHQgLSBpZ25vcmUgdGhpcyByZXNwb25zZVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgbm8gc3RhdGVzIHJldHVybmVkLCBhZGQgTi9BIG9wdGlvblxuICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcyB8fCB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcyA9IFt7IHZhbHVlOiAnTi9BJywgbGFiZWw6ICdOL0EnIH1dO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZS1yZW5kZXIgdGhlIHdpZGdldCB3aXRoIG5ldyBzdGF0ZXNcbiAgICAgICAgICAgIHRoaXMucmVkcmF3KCk7XG5cbiAgICAgICAgICAgIC8vIFJlLWluaXRpYWxpemUgVG9tIFNlbGVjdCBhZnRlciByZWRyYXdcbiAgICAgICAgICAgIGlmICh0aGlzLnRvbV9zZWxlY3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvbV9zZWxlY3QuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZS1ydW4gb25fcmVhZHkgdG8gc2V0IHVwIFRvbSBTZWxlY3QgYWdhaW5cbiAgICAgICAgICAgIHRoaXMub25fcmVhZHkoKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBOL0EgY2FzZVxuICAgICAgICAgICAgY29uc3QgaXNfbmEgPSB0aGlzLmRhdGEuc2VsZWN0X3ZhbHVlcy5sZW5ndGggPT09IDEgJiYgdGhpcy5kYXRhLnNlbGVjdF92YWx1ZXNbMF0udmFsdWUgPT09ICdOL0EnO1xuXG4gICAgICAgICAgICBpZiAoaXNfbmEpIHtcbiAgICAgICAgICAgICAgICAvLyBTZXQgdG8gTi9BIGFuZCBrZWVwIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgdGhpcy52YWwoJ04vQScpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvbV9zZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b21fc2VsZWN0LmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFRyeSB0byByZXN0b3JlIGNhY2hlZCB2YWx1ZSBmb3IgdGhpcyBjb3VudHJ5XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVkX3ZhbHVlID0gdGhpcy5fc3RhdGVfY2FjaGVbY291bnRyeV9jb2RlXTtcblxuICAgICAgICAgICAgICAgIGlmIChjYWNoZWRfdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVfZXhpc3RzID0gdGhpcy5kYXRhLnNlbGVjdF92YWx1ZXMuc29tZSgob3B0KSA9PiAodHlwZW9mIG9wdCA9PT0gJ29iamVjdCcgPyBvcHQudmFsdWUgOiBvcHQpID09PSBjYWNoZWRfdmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZV9leGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsKGNhY2hlZF92YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbCgnJyk7IC8vIENsZWFyIGlmIGNhY2hlZCB2YWx1ZSBub3QgaW4gbmV3IGxpc3RcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsKCcnKTsgLy8gTm8gY2FjaGVkIHZhbHVlIC0gbGVhdmUgZW1wdHlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBFbmFibGUgdGhlIHdpZGdldCBub3cgdGhhdCB3ZSBoYXZlIGEgY291bnRyeSB3aXRoIHN0YXRlc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvbV9zZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b21fc2VsZWN0LmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHN0YXRlcyBmb3IgY291bnRyeTonLCBjb3VudHJ5X2NvZGUsIGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5zZWxlY3RfdmFsdWVzID0gW107XG5cbiAgICAgICAgICAgIC8vIFJlLWVuYWJsZSBldmVuIG9uIGVycm9yXG4gICAgICAgICAgICBpZiAodGhpcy50b21fc2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b21fc2VsZWN0LmVuYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgdmFsKCkgdG8gdXBkYXRlIGNhY2hlIHdoZW4gdXNlciBtYW51YWxseSBzZWxlY3RzIGEgc3RhdGVcbiAgICAgKi9cbiAgICB2YWwodmFsdWUpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEdldHRlciAtIHVzZSBwYXJlbnQgaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgIHJldHVybiBzdXBlci52YWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFNldHRlciAtIHVwZGF0ZSBjYWNoZSBhbmQgY2FsbCBwYXJlbnRcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuY291bnRyeV9jb2RlICYmIHZhbHVlICYmIHZhbHVlICE9PSAnTi9BJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlX2NhY2hlW3RoaXMuZGF0YS5jb3VudHJ5X2NvZGVdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIudmFsKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxrQkFBa0IsU0FBU0MsaUJBQWlCLENBQUM7RUFDL0MsTUFBTUMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1o7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDQyxJQUFJLENBQUNDLFlBQVksRUFBRTtNQUN6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