@smartnet360/svelte-components 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,7 +45,13 @@
|
|
45
45
|
});
|
46
46
|
|
47
47
|
$effect(() => {
|
48
|
-
|
48
|
+
// Only update internal state if the prop actually changed
|
49
|
+
// Avoid overwriting user selections
|
50
|
+
console.log(`[Antenna ${antennaNumber}] Effect triggered - selectedAntenna prop:`, selectedAntenna?.name || 'null', 'internal:', internalSelectedAntenna?.name || 'null');
|
51
|
+
if (selectedAntenna !== internalSelectedAntenna) {
|
52
|
+
console.log(`[Antenna ${antennaNumber}] Effect updating internal state from:`, internalSelectedAntenna?.name || 'null', 'to:', selectedAntenna?.name || 'null');
|
53
|
+
internalSelectedAntenna = selectedAntenna;
|
54
|
+
}
|
49
55
|
});
|
50
56
|
|
51
57
|
// Get available electrical tilts from antennas with the selected name and frequency
|
@@ -82,16 +88,33 @@
|
|
82
88
|
|
83
89
|
// Find the specific antenna that matches name, frequency, and electrical tilt
|
84
90
|
function findAntennaWithTilt(antennaName: string, tiltIndex: number): Antenna | null {
|
85
|
-
|
91
|
+
console.log(`[Antenna ${antennaNumber}] findAntennaWithTilt called with:`, antennaName, 'tiltIndex:', tiltIndex);
|
92
|
+
|
93
|
+
if (!antennaName) {
|
94
|
+
console.log(`[Antenna ${antennaNumber}] No antennaName provided, returning null`);
|
95
|
+
return null;
|
96
|
+
}
|
86
97
|
|
87
|
-
|
98
|
+
// Handle case where availableElectricalTilts might not be populated yet
|
99
|
+
const targetTilt = availableElectricalTilts[tiltIndex] || '0';
|
100
|
+
console.log(`[Antenna ${antennaNumber}] availableElectricalTilts:`, availableElectricalTilts);
|
101
|
+
console.log(`[Antenna ${antennaNumber}] targetTilt:`, targetTilt);
|
102
|
+
console.log(`[Antenna ${antennaNumber}] selectedFrequency:`, selectedFrequency);
|
88
103
|
|
89
104
|
// Find antenna with matching name, frequency, and electrical tilt
|
90
|
-
|
91
|
-
|
105
|
+
const result = antennas.find(antenna => {
|
106
|
+
console.log(`[Antenna ${antennaNumber}] Checking antenna:`, antenna.name, 'freq:', antenna.frequency, 'tilt:', antenna.tilt);
|
107
|
+
|
108
|
+
if (antenna.name !== antennaName) {
|
109
|
+
console.log(`[Antenna ${antennaNumber}] Name mismatch:`, antenna.name, '!==', antennaName);
|
110
|
+
return false;
|
111
|
+
}
|
92
112
|
|
93
113
|
// If frequency is selected, must match
|
94
|
-
if (selectedFrequency && antenna.frequency !== selectedFrequency)
|
114
|
+
if (selectedFrequency && antenna.frequency !== selectedFrequency) {
|
115
|
+
console.log(`[Antenna ${antennaNumber}] Frequency mismatch:`, antenna.frequency, '!==', selectedFrequency);
|
116
|
+
return false;
|
117
|
+
}
|
95
118
|
|
96
119
|
if (antenna.tilt) {
|
97
120
|
const tiltString = antenna.tilt.toString();
|
@@ -99,11 +122,19 @@
|
|
99
122
|
? tiltString.split(',').map(t => t.trim())
|
100
123
|
: [tiltString];
|
101
124
|
|
102
|
-
|
125
|
+
console.log(`[Antenna ${antennaNumber}] Antenna tilts:`, antennasTilts, 'target:', targetTilt);
|
126
|
+
const tiltMatch = antennasTilts.includes(targetTilt);
|
127
|
+
console.log(`[Antenna ${antennaNumber}] Tilt match:`, tiltMatch);
|
128
|
+
return tiltMatch;
|
103
129
|
}
|
104
130
|
|
105
|
-
|
131
|
+
const defaultMatch = targetTilt === '0';
|
132
|
+
console.log(`[Antenna ${antennaNumber}] Default tilt match:`, defaultMatch);
|
133
|
+
return defaultMatch; // Default tilt
|
106
134
|
}) || null;
|
135
|
+
|
136
|
+
console.log(`[Antenna ${antennaNumber}] findAntennaWithTilt result:`, result?.name || 'null');
|
137
|
+
return result;
|
107
138
|
}
|
108
139
|
|
109
140
|
// Handle frequency selection
|
@@ -129,18 +160,68 @@
|
|
129
160
|
const target = event.target as HTMLSelectElement;
|
130
161
|
const antennaName = target.value;
|
131
162
|
|
163
|
+
console.log(`[Antenna ${antennaNumber}] handleAntennaChange called with:`, antennaName);
|
164
|
+
console.log(`[Antenna ${antennaNumber}] Before change - internalSelectedAntenna:`, internalSelectedAntenna?.name || 'null');
|
165
|
+
|
132
166
|
// Reset tilt and frequency values when antenna changes
|
133
167
|
internalElectricalTiltIndex = 0;
|
134
168
|
internalMechanicalTilt = 0;
|
135
169
|
selectedFrequency = null;
|
136
170
|
|
137
|
-
//
|
138
|
-
|
139
|
-
|
171
|
+
// Handle "Select Antenna" case (empty string)
|
172
|
+
if (!antennaName) {
|
173
|
+
console.log(`[Antenna ${antennaNumber}] Setting to null (Select Antenna case)`);
|
174
|
+
internalSelectedAntenna = null;
|
175
|
+
onAntennaChange?.(null);
|
176
|
+
onElectricalTiltChange?.(0);
|
177
|
+
onMechanicalTiltChange?.(0);
|
178
|
+
console.log(`[Antenna ${antennaNumber}] After null set - internalSelectedAntenna:`, internalSelectedAntenna?.name || 'null');
|
179
|
+
return;
|
180
|
+
}
|
140
181
|
|
141
|
-
|
142
|
-
|
182
|
+
// First, find ANY antenna with this name to get available tilts
|
183
|
+
const sampleAntenna = antennas.find(a => a.name === antennaName);
|
184
|
+
if (sampleAntenna && sampleAntenna.tilt) {
|
185
|
+
const tiltString = sampleAntenna.tilt.toString();
|
186
|
+
const tilts = tiltString.includes(',')
|
187
|
+
? tiltString.split(',').map(t => t.trim())
|
188
|
+
: [tiltString];
|
189
|
+
|
190
|
+
// Try to find antenna with '0' tilt first, otherwise use first available
|
191
|
+
let tiltToUse = tilts.includes('0') ? '0' : tilts[0];
|
192
|
+
let tiltIndexToUse = tilts.includes('0') ? tilts.indexOf('0') : 0;
|
193
|
+
|
194
|
+
console.log(`[Antenna ${antennaNumber}] Available tilts for ${antennaName}:`, tilts);
|
195
|
+
console.log(`[Antenna ${antennaNumber}] Using tilt:`, tiltToUse, 'at index:', tiltIndexToUse);
|
196
|
+
|
197
|
+
// Find the specific antenna with the chosen tilt
|
198
|
+
const newAntenna = antennas.find(antenna => {
|
199
|
+
if (antenna.name !== antennaName) return false;
|
200
|
+
if (antenna.tilt) {
|
201
|
+
const antennaTiltString = antenna.tilt.toString();
|
202
|
+
const antennaTilts = antennaTiltString.includes(',')
|
203
|
+
? antennaTiltString.split(',').map(t => t.trim())
|
204
|
+
: [antennaTiltString];
|
205
|
+
return antennaTilts.includes(tiltToUse);
|
206
|
+
}
|
207
|
+
return tiltToUse === '0';
|
208
|
+
});
|
209
|
+
|
210
|
+
console.log(`[Antenna ${antennaNumber}] Found antenna with tilt ${tiltToUse}:`, newAntenna?.name || 'null');
|
211
|
+
internalSelectedAntenna = newAntenna || null;
|
212
|
+
internalElectricalTiltIndex = tiltIndexToUse;
|
213
|
+
|
214
|
+
} else {
|
215
|
+
// Fallback: use findAntennaWithTilt with index 0
|
216
|
+
const newAntenna = findAntennaWithTilt(antennaName, 0);
|
217
|
+
console.log(`[Antenna ${antennaNumber}] Fallback - Found antenna:`, newAntenna?.name || 'null');
|
218
|
+
internalSelectedAntenna = newAntenna;
|
219
|
+
}
|
220
|
+
|
221
|
+
onAntennaChange?.(internalSelectedAntenna);
|
222
|
+
onElectricalTiltChange?.(internalElectricalTiltIndex);
|
143
223
|
onMechanicalTiltChange?.(0);
|
224
|
+
console.log(`[Antenna ${antennaNumber}] After set - internalSelectedAntenna:`, internalSelectedAntenna?.name || 'null');
|
144
225
|
}
|
145
226
|
|
146
227
|
// Handle electrical tilt changes
|
@@ -249,6 +330,7 @@
|
|
249
330
|
class="form-select form-select-sm"
|
250
331
|
value={internalSelectedAntenna?.name || ''}
|
251
332
|
onchange={handleAntennaChange}
|
333
|
+
onfocus={() => console.log(`[Antenna ${antennaNumber}] Dropdown focused - current value:`, internalSelectedAntenna?.name || 'null')}
|
252
334
|
>
|
253
335
|
<option value="">-- Select Antenna --</option>
|
254
336
|
{#each uniqueAntennas as antenna}
|
@@ -69,8 +69,6 @@
|
|
69
69
|
await saveAntennas(antennas);
|
70
70
|
message = `Successfully imported ${antennas.length} antennas to database.`;
|
71
71
|
|
72
|
-
// Navigate to view page after a short delay
|
73
|
-
setTimeout(() => goto(`${base}/apps/antenna-patterns/view`), 1500);
|
74
72
|
} catch (e) {
|
75
73
|
error = e instanceof Error ? e.message : 'Failed to save antennas to database';
|
76
74
|
} finally {
|