(parsedHash: URLSearchParams)
| 27 | } |
| 28 | |
| 29 | setValuesFromHash(parsedHash: URLSearchParams): void { |
| 30 | const input = this; |
| 31 | |
| 32 | const tr = document.createElement('tr'); |
| 33 | tr.id = 'tr' + this.id(); |
| 34 | input.tr = tr; |
| 35 | |
| 36 | const nameTd = document.createElement('td'); |
| 37 | nameTd.className = 'name'; |
| 38 | nameTd.textContent = this.name; |
| 39 | tr.appendChild(nameTd); |
| 40 | |
| 41 | const rawValue = parsedHash.get(this.nameCamelCase()); |
| 42 | const defaultValue = rawValue ?? this.defaultValue; |
| 43 | |
| 44 | if (this.selectValues == null) { |
| 45 | const td = document.createElement('td'); |
| 46 | const inputElement = document.createElement('input'); |
| 47 | inputElement.id = this.id(); |
| 48 | inputElement.title = this.tooltip; |
| 49 | inputElement.value = String(defaultValue); |
| 50 | inputElement.size = 4; |
| 51 | inputElement.addEventListener(eventIds.input, () => input.listener.notify()); |
| 52 | input.formInput = inputElement; |
| 53 | td.appendChild(inputElement); |
| 54 | tr.appendChild(td); |
| 55 | } else { |
| 56 | const td = document.createElement('td'); |
| 57 | const selectElement = document.createElement('select'); |
| 58 | selectElement.id = this.id(); |
| 59 | this.selectValues.forEach((id) => { |
| 60 | const option = document.createElement('option'); |
| 61 | option.value = id; |
| 62 | option.textContent = id; |
| 63 | selectElement.appendChild(option); |
| 64 | }); |
| 65 | |
| 66 | selectElement.value = |
| 67 | this.selectValues.includes(String(defaultValue)) ? |
| 68 | String(defaultValue) : |
| 69 | String(this.defaultValue); |
| 70 | selectElement.addEventListener(eventIds.input, () => input.listener.notify()); |
| 71 | input.formInput = selectElement; |
| 72 | td.appendChild(selectElement); |
| 73 | tr.appendChild(td); |
| 74 | } |
| 75 | |
| 76 | if (this.units !== null) { |
| 77 | const unitsTd = document.createElement('td'); |
| 78 | unitsTd.className = 'units'; |
| 79 | unitsTd.textContent = this.units; |
| 80 | tr.appendChild(unitsTd); |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | value(): string | undefined { |
| 85 | return this.formInput?.value; |
no test coverage detected