1
0

reactance.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const reactanceCalculator = require('../../../tools/reactance/index.js')
  2. const handlers = {
  3. setReactanceState(changedData) {
  4. this.setData(reactanceCalculator.updateState(this.data, changedData))
  5. },
  6. toggleReactanceMode() {
  7. this.setReactanceState({
  8. reactanceModeIndex: this.data.reactanceModeKey === 'inductive' ? 0 : 1
  9. })
  10. },
  11. onReactanceFrequencyInput(event) {
  12. this.setReactanceState({
  13. reactanceFrequencyValue: event.detail.value
  14. })
  15. },
  16. onReactanceReactiveInput(event) {
  17. this.setReactanceState({
  18. reactanceReactiveValue: event.detail.value
  19. })
  20. },
  21. clearReactanceInputs() {
  22. this.ignoreReactanceBlurUntil = Date.now() + 300
  23. this.setData(reactanceCalculator.clearInputs(this.data))
  24. },
  25. onReactanceFrequencyUnitChange(event) {
  26. this.setReactanceState({
  27. reactanceFrequencyUnitIndex: Number(event.detail.value)
  28. })
  29. },
  30. onReactanceReactiveUnitChange(event) {
  31. const unitIndex = Number(event.detail.value)
  32. const field = this.data.reactanceModeKey === 'inductive'
  33. ? 'reactanceInductanceUnitIndex'
  34. : 'reactanceCapacitanceUnitIndex'
  35. this.setReactanceState({
  36. [field]: unitIndex
  37. })
  38. },
  39. onReactanceValueBlur(event) {
  40. if (this.ignoreReactanceBlurUntil && Date.now() < this.ignoreReactanceBlurUntil) return
  41. const field = event.currentTarget.dataset.field
  42. this.setData(reactanceCalculator.normalizeValue(this.data, field, event.detail.value))
  43. }
  44. }
  45. module.exports = {
  46. handlers
  47. }