@seamapi/react 3.1.2 → 4.0.0-beta.1

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.
Files changed (135) hide show
  1. package/README.md +2 -2
  2. package/dist/elements.js +9896 -10373
  3. package/dist/elements.js.map +1 -1
  4. package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.d.ts +1 -1
  5. package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js +3 -3
  6. package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
  7. package/lib/seam/components/AccessCodeTable/AccessCodeTable.d.ts +1 -1
  8. package/lib/seam/components/AccessCodeTable/AccessCodeTable.js +4 -4
  9. package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
  10. package/lib/seam/components/DeviceDetails/DeviceDetails.d.ts +1 -1
  11. package/lib/seam/components/DeviceDetails/DeviceDetails.js +1 -2
  12. package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
  13. package/lib/seam/components/DeviceDetails/LockDeviceDetails.d.ts +1 -1
  14. package/lib/seam/components/DeviceDetails/LockDeviceDetails.js +2 -2
  15. package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
  16. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.d.ts +1 -1
  17. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js +2 -40
  18. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
  19. package/lib/seam/components/DeviceTable/DeviceTable.d.ts +1 -1
  20. package/lib/seam/components/DeviceTable/DeviceTable.js +2 -2
  21. package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
  22. package/lib/seam/components/common-props.d.ts +0 -1
  23. package/lib/seam/components/common-props.js.map +1 -1
  24. package/lib/seam/components/index.d.ts +0 -2
  25. package/lib/seam/components/index.js +0 -2
  26. package/lib/seam/components/index.js.map +1 -1
  27. package/lib/seam/index.d.ts +0 -2
  28. package/lib/seam/index.js +0 -2
  29. package/lib/seam/index.js.map +1 -1
  30. package/lib/ui/thermostat/FanModeMenu.js +1 -0
  31. package/lib/ui/thermostat/FanModeMenu.js.map +1 -1
  32. package/lib/version.d.ts +1 -1
  33. package/lib/version.js +1 -1
  34. package/lib/version.js.map +1 -1
  35. package/package.json +3 -3
  36. package/src/lib/element.tsx +0 -1
  37. package/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.tsx +0 -3
  38. package/src/lib/seam/components/AccessCodeTable/AccessCodeTable.tsx +0 -4
  39. package/src/lib/seam/components/DeviceDetails/DeviceDetails.tsx +0 -2
  40. package/src/lib/seam/components/DeviceDetails/LockDeviceDetails.tsx +0 -2
  41. package/src/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.tsx +0 -137
  42. package/src/lib/seam/components/DeviceTable/DeviceTable.tsx +0 -2
  43. package/src/lib/seam/components/common-props.tsx +0 -1
  44. package/src/lib/seam/components/elements.ts +0 -2
  45. package/src/lib/seam/components/index.ts +0 -2
  46. package/src/lib/seam/index.ts +0 -2
  47. package/src/lib/ui/thermostat/FanModeMenu.tsx +1 -0
  48. package/src/lib/version.ts +1 -1
  49. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.d.ts +0 -7
  50. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js +0 -43
  51. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +0 -1
  52. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.d.ts +0 -7
  53. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js +0 -55
  54. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +0 -1
  55. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.d.ts +0 -5
  56. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js +0 -31
  57. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js.map +0 -1
  58. package/lib/seam/components/ClimateSettingScheduleDetails/dates.d.ts +0 -1
  59. package/lib/seam/components/ClimateSettingScheduleDetails/dates.js +0 -9
  60. package/lib/seam/components/ClimateSettingScheduleDetails/dates.js.map +0 -1
  61. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.d.ts +0 -8
  62. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.js +0 -10
  63. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.js.map +0 -1
  64. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.d.ts +0 -5
  65. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js +0 -28
  66. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +0 -1
  67. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.d.ts +0 -14
  68. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js +0 -80
  69. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +0 -1
  70. package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.d.ts +0 -5
  71. package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js +0 -29
  72. package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +0 -1
  73. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.d.ts +0 -6
  74. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js +0 -16
  75. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js.map +0 -1
  76. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.d.ts +0 -6
  77. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js +0 -28
  78. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js.map +0 -1
  79. package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.d.ts +0 -7
  80. package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.js +0 -25
  81. package/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.js.map +0 -1
  82. package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.d.ts +0 -6
  83. package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.js +0 -27
  84. package/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.js.map +0 -1
  85. package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.d.ts +0 -6
  86. package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js +0 -46
  87. package/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js.map +0 -1
  88. package/lib/seam/thermostats/use-update-thermostat.d.ts +0 -6
  89. package/lib/seam/thermostats/use-update-thermostat.js +0 -51
  90. package/lib/seam/thermostats/use-update-thermostat.js.map +0 -1
  91. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.d.ts +0 -32
  92. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js +0 -85
  93. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +0 -1
  94. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.d.ts +0 -13
  95. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.js +0 -44
  96. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.js.map +0 -1
  97. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.d.ts +0 -10
  98. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.js +0 -24
  99. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.js.map +0 -1
  100. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.d.ts +0 -10
  101. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.js +0 -10
  102. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.js.map +0 -1
  103. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.d.ts +0 -15
  104. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js +0 -30
  105. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.js.map +0 -1
  106. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.d.ts +0 -9
  107. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.js +0 -16
  108. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.js.map +0 -1
  109. package/lib/ui/ClimateSettingForm/set-point-bounds.d.ts +0 -4
  110. package/lib/ui/ClimateSettingForm/set-point-bounds.js +0 -17
  111. package/lib/ui/ClimateSettingForm/set-point-bounds.js.map +0 -1
  112. package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.tsx +0 -107
  113. package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.element.ts +0 -11
  114. package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx +0 -175
  115. package/src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.tsx +0 -72
  116. package/src/lib/seam/components/ClimateSettingScheduleDetails/dates.ts +0 -10
  117. package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.tsx +0 -35
  118. package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.tsx +0 -60
  119. package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.element.ts +0 -17
  120. package/src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.tsx +0 -220
  121. package/src/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.element.ts +0 -9
  122. package/src/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.tsx +0 -56
  123. package/src/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.ts +0 -34
  124. package/src/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.ts +0 -53
  125. package/src/lib/seam/thermostats/climate-setting-schedules/use-create-climate-setting-schedule.ts +0 -53
  126. package/src/lib/seam/thermostats/climate-setting-schedules/use-delete-climate-setting-schedule.ts +0 -51
  127. package/src/lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.ts +0 -83
  128. package/src/lib/seam/thermostats/use-update-thermostat.ts +0 -90
  129. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.tsx +0 -189
  130. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormClimateSetting.tsx +0 -118
  131. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDefaultClimateSetting.tsx +0 -79
  132. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormDeviceSelect.tsx +0 -36
  133. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormNameAndSchedule.tsx +0 -120
  134. package/src/lib/ui/ClimateSettingForm/ClimateSettingScheduleFormTimeZonePicker.tsx +0 -43
  135. package/src/lib/ui/ClimateSettingForm/set-point-bounds.ts +0 -31
@@ -51,7 +51,6 @@ export function AccessCodeDetails({
51
51
  disableDeleteAccessCode = false,
52
52
  disableResourceIds = false,
53
53
  disableConnectedAccountInformation = false,
54
- disableClimateSettingSchedules,
55
54
  onBack,
56
55
  className,
57
56
  }: AccessCodeDetailsProps): JSX.Element | null {
@@ -114,7 +113,6 @@ export function AccessCodeDetails({
114
113
  disableDeleteAccessCode={disableDeleteAccessCode}
115
114
  disableResourceIds={disableResourceIds}
116
115
  disableConnectedAccountInformation={disableConnectedAccountInformation}
117
- disableClimateSettingSchedules={disableClimateSettingSchedules}
118
116
  onBack={() => {
119
117
  setEditFormOpen(false)
120
118
  }}
@@ -139,7 +137,6 @@ export function AccessCodeDetails({
139
137
  disableDeleteAccessCode={disableDeleteAccessCode}
140
138
  disableResourceIds={disableResourceIds}
141
139
  disableConnectedAccountInformation={disableConnectedAccountInformation}
142
- disableClimateSettingSchedules={disableClimateSettingSchedules}
143
140
  onBack={() => {
144
141
  selectDevice(null)
145
142
  }}
@@ -66,7 +66,6 @@ export function AccessCodeTable({
66
66
  disableDeleteAccessCode = false,
67
67
  disableResourceIds = false,
68
68
  disableConnectedAccountInformation = false,
69
- disableClimateSettingSchedules,
70
69
  }: AccessCodeTableProps): JSX.Element {
71
70
  useComponentTelemetry('AccessCodeTable')
72
71
 
@@ -141,7 +140,6 @@ export function AccessCodeTable({
141
140
  disableDeleteAccessCode={disableDeleteAccessCode}
142
141
  disableResourceIds={disableResourceIds}
143
142
  disableConnectedAccountInformation={disableConnectedAccountInformation}
144
- disableClimateSettingSchedules={disableClimateSettingSchedules}
145
143
  onBack={() => {
146
144
  setSelectedEditAccessCodeId(null)
147
145
  }}
@@ -165,7 +163,6 @@ export function AccessCodeTable({
165
163
  disableDeleteAccessCode={disableDeleteAccessCode}
166
164
  disableResourceIds={disableResourceIds}
167
165
  disableConnectedAccountInformation={disableConnectedAccountInformation}
168
- disableClimateSettingSchedules={disableClimateSettingSchedules}
169
166
  onBack={() => {
170
167
  setSelectedViewAccessCodeId(null)
171
168
  }}
@@ -186,7 +183,6 @@ export function AccessCodeTable({
186
183
  disableDeleteAccessCode={disableDeleteAccessCode}
187
184
  disableResourceIds={disableResourceIds}
188
185
  disableConnectedAccountInformation={disableConnectedAccountInformation}
189
- disableClimateSettingSchedules={disableClimateSettingSchedules}
190
186
  onBack={toggleAddAccessCodeForm}
191
187
  className={className}
192
188
  onSuccess={() => {
@@ -33,7 +33,6 @@ export function DeviceDetails({
33
33
  disableConnectedAccountInformation = false,
34
34
  disableCreateAccessCode = false,
35
35
  disableEditAccessCode = false,
36
- disableClimateSettingSchedules = false,
37
36
  onBack,
38
37
  className,
39
38
  }: DeviceDetailsProps): JSX.Element | null {
@@ -56,7 +55,6 @@ export function DeviceDetails({
56
55
  disableConnectedAccountInformation,
57
56
  disableCreateAccessCode,
58
57
  disableEditAccessCode,
59
- disableClimateSettingSchedules,
60
58
  onBack,
61
59
  className,
62
60
  }
@@ -31,7 +31,6 @@ export function LockDeviceDetails({
31
31
  disableDeleteAccessCode,
32
32
  disableResourceIds,
33
33
  disableConnectedAccountInformation,
34
- disableClimateSettingSchedules,
35
34
  onBack,
36
35
  className,
37
36
  }: LockDeviceDetailsProps): JSX.Element | null {
@@ -62,7 +61,6 @@ export function LockDeviceDetails({
62
61
  disableDeleteAccessCode={disableDeleteAccessCode}
63
62
  disableResourceIds={disableResourceIds}
64
63
  disableConnectedAccountInformation={disableConnectedAccountInformation}
65
- disableClimateSettingSchedules={disableClimateSettingSchedules}
66
64
  onBack={toggleAccessCodesOpen}
67
65
  className={className}
68
66
  />
@@ -3,11 +3,8 @@ import { useEffect, useState } from 'react'
3
3
 
4
4
  import { debounce } from 'lib/debounce.js'
5
5
  import { CheckBlackIcon } from 'lib/icons/CheckBlack.js'
6
- import { ChevronWideIcon } from 'lib/icons/ChevronWide.js'
7
- import { NestedClimateSettingScheduleTable } from 'lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js'
8
6
  import type { NestedSpecificDeviceDetailsProps } from 'lib/seam/components/DeviceDetails/DeviceDetails.js'
9
7
  import { DeviceInfo } from 'lib/seam/components/DeviceDetails/DeviceInfo.js'
10
- import { useClimateSettingSchedules } from 'lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js'
11
8
  import type {
12
9
  HvacModeSetting,
13
10
  ThermostatDevice,
@@ -17,14 +14,12 @@ import { useHeatCoolThermostat } from 'lib/seam/thermostats/use-heat-cool-thermo
17
14
  import { useHeatThermostat } from 'lib/seam/thermostats/use-heat-thermostat.js'
18
15
  import { useSetThermostatFanMode } from 'lib/seam/thermostats/use-set-thermostat-fan-mode.js'
19
16
  import { useSetThermostatOff } from 'lib/seam/thermostats/use-set-thermostat-off.js'
20
- import { useUpdateThermostat } from 'lib/seam/thermostats/use-update-thermostat.js'
21
17
  import { AccordionRow } from 'lib/ui/layout/AccordionRow.js'
22
18
  import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
23
19
  import { DetailRow } from 'lib/ui/layout/DetailRow.js'
24
20
  import { DetailSection } from 'lib/ui/layout/DetailSection.js'
25
21
  import { DetailSectionGroup } from 'lib/ui/layout/DetailSectionGroup.js'
26
22
  import { Snackbar } from 'lib/ui/Snackbar/Snackbar.js'
27
- import { Switch } from 'lib/ui/Switch/Switch.js'
28
23
  import { ClimateModeMenu } from 'lib/ui/thermostat/ClimateModeMenu.js'
29
24
  import { ClimateSettingStatus } from 'lib/ui/thermostat/ClimateSettingStatus.js'
30
25
  import { FanModeMenu } from 'lib/ui/thermostat/FanModeMenu.js'
@@ -38,54 +33,15 @@ interface ThermostatDeviceDetailsProps
38
33
 
39
34
  export function ThermostatDeviceDetails({
40
35
  device,
41
- errorFilter,
42
- warningFilter,
43
- disableLockUnlock,
44
- disableCreateAccessCode,
45
- disableEditAccessCode,
46
- disableDeleteAccessCode,
47
36
  disableResourceIds,
48
37
  disableConnectedAccountInformation,
49
- disableClimateSettingSchedules,
50
38
  onBack,
51
39
  className,
52
40
  }: ThermostatDeviceDetailsProps): JSX.Element | null {
53
- const [climateSettingsOpen, setClimateSettingsOpen] = useState(false)
54
-
55
- const { climateSettingSchedules } = useClimateSettingSchedules({
56
- device_id: device.device_id,
57
- })
58
-
59
- if (climateSettingsOpen) {
60
- return (
61
- <NestedClimateSettingScheduleTable
62
- deviceId={device.device_id}
63
- errorFilter={errorFilter}
64
- warningFilter={warningFilter}
65
- disableLockUnlock={disableLockUnlock}
66
- disableCreateAccessCode={disableCreateAccessCode}
67
- disableEditAccessCode={disableEditAccessCode}
68
- disableDeleteAccessCode={disableDeleteAccessCode}
69
- disableResourceIds={disableResourceIds}
70
- disableConnectedAccountInformation={disableConnectedAccountInformation}
71
- disableClimateSettingSchedules={disableClimateSettingSchedules}
72
- onBack={() => {
73
- setClimateSettingsOpen(false)
74
- }}
75
- className={className}
76
- />
77
- )
78
- }
79
-
80
41
  if (device == null) {
81
42
  return null
82
43
  }
83
44
 
84
- const climateSettingSchedulesLabel =
85
- climateSettingSchedules?.length !== 1
86
- ? t.climateSchedules
87
- : t.climateSchedule
88
-
89
45
  return (
90
46
  <div className={classNames('seam-device-details', className)}>
91
47
  <ContentHeader title={t.thermostat} onBack={onBack} />
@@ -95,28 +51,6 @@ export function ThermostatDeviceDetails({
95
51
 
96
52
  <div className='seam-thermostat-device-details'>
97
53
  <DetailSectionGroup>
98
- {!disableClimateSettingSchedules && (
99
- <DetailSection
100
- label={t.scheduledClimates}
101
- tooltipContent={t.scheduledClimatesTooltip}
102
- >
103
- <DetailRow
104
- label={
105
- climateSettingSchedules == null
106
- ? t.viewingClimateSchedules
107
- : `${climateSettingSchedules.length} ${climateSettingSchedulesLabel}`
108
- }
109
- onClick={() => {
110
- setClimateSettingsOpen(true)
111
- }}
112
- >
113
- <div className='seam-detail-row-rotated-icon'>
114
- <ChevronWideIcon />
115
- </div>
116
- </DetailRow>
117
- </DetailSection>
118
- )}
119
-
120
54
  <DetailSection
121
55
  label={t.currentSettings}
122
56
  tooltipContent={t.currentSettingsTooltip}
@@ -125,26 +59,6 @@ export function ThermostatDeviceDetails({
125
59
  <FanModeRow device={device} />
126
60
  </DetailSection>
127
61
 
128
- {!disableClimateSettingSchedules && (
129
- <DetailSection
130
- label={t.defaultSettings}
131
- tooltipContent={t.defaultSettingsTooltip}
132
- >
133
- <DetailRow label={t.defaultClimate}>
134
- {device.properties.default_climate_setting != null ? (
135
- <ClimateSettingStatus
136
- climateSetting={device.properties.default_climate_setting}
137
- temperatureUnit='fahrenheit'
138
- iconPlacement='right'
139
- />
140
- ) : (
141
- <p>{t.none}</p>
142
- )}
143
- </DetailRow>
144
-
145
- <ManualOverrideRow device={device} />
146
- </DetailSection>
147
- )}
148
62
  <DeviceInfo
149
63
  device={device}
150
64
  disableConnectedAccountInformation={
@@ -159,51 +73,6 @@ export function ThermostatDeviceDetails({
159
73
  )
160
74
  }
161
75
 
162
- function ManualOverrideRow({
163
- device,
164
- }: {
165
- device: ThermostatDevice
166
- }): JSX.Element {
167
- const { mutate, isSuccess, isError } = useUpdateThermostat()
168
-
169
- return (
170
- <>
171
- <div className='seam-detail-row-wrap'>
172
- <DetailRow label={t.allowManualOverride}>
173
- <Switch
174
- checked={
175
- device.properties.default_climate_setting
176
- ?.manual_override_allowed ?? true
177
- }
178
- onChange={(checked) => {
179
- mutate({
180
- device_id: device.device_id,
181
- default_climate_setting: {
182
- manual_override_allowed: checked,
183
- },
184
- })
185
- }}
186
- />
187
- </DetailRow>
188
- </div>
189
-
190
- <Snackbar
191
- message={t.manualOverrideSuccess}
192
- variant='success'
193
- visible={isSuccess}
194
- automaticVisibility
195
- />
196
-
197
- <Snackbar
198
- message={t.manualOverrideError}
199
- variant='error'
200
- visible={isError}
201
- automaticVisibility
202
- />
203
- </>
204
- )
205
- }
206
-
207
76
  function FanModeRow({ device }: { device: ThermostatDevice }): JSX.Element {
208
77
  const { mutate, isSuccess, isError } = useSetThermostatFanMode()
209
78
 
@@ -430,12 +299,6 @@ function ClimateSettingRow({
430
299
 
431
300
  const t = {
432
301
  thermostat: 'Thermostat',
433
- climateSchedule: 'scheduled climate',
434
- climateSchedules: 'scheduled climates',
435
- viewingClimateSchedules: 'View scheduled climates',
436
- scheduledClimates: 'Scheduled climates',
437
- scheduledClimatesTooltip:
438
- "Scheduled climates let you automatically change the thermostat's climate at a set time.",
439
302
  currentSettings: 'Current settings',
440
303
  currentSettingsTooltip:
441
304
  'These are the settings currently on the device. If you change them here, they change on the device.',
@@ -68,7 +68,6 @@ export function DeviceTable({
68
68
  disableDeleteAccessCode = false,
69
69
  disableResourceIds = false,
70
70
  disableConnectedAccountInformation = false,
71
- disableClimateSettingSchedules = false,
72
71
  onBack,
73
72
  className,
74
73
  }: DeviceTableProps = {}): JSX.Element {
@@ -117,7 +116,6 @@ export function DeviceTable({
117
116
  disableDeleteAccessCode={disableDeleteAccessCode}
118
117
  disableResourceIds={disableResourceIds}
119
118
  disableConnectedAccountInformation={disableConnectedAccountInformation}
120
- disableClimateSettingSchedules={disableClimateSettingSchedules}
121
119
  onBack={() => {
122
120
  setSelectedDeviceId(null)
123
121
  }}
@@ -23,7 +23,6 @@ export interface RequiredCommonProps {
23
23
  disableLockUnlock: boolean | undefined
24
24
  disableResourceIds: boolean | undefined
25
25
  disableConnectedAccountInformation: boolean | undefined
26
- disableClimateSettingSchedules: boolean | undefined
27
26
  }
28
27
 
29
28
  export type CommonProps = Partial<RequiredCommonProps>
@@ -1,7 +1,5 @@
1
1
  export * as AccessCodeDetails from './AccessCodeDetails/AccessCodeDetails.element.js'
2
2
  export * as AccessCodeTable from './AccessCodeTable/AccessCodeTable.element.js'
3
- export * as ClimateSettingScheduleDetails from './ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.element.js'
4
- export * as ClimateSettingScheduleTable from './ClimateSettingScheduleTable/ClimateSettingScheduleTable.element.js'
5
3
  export * as ConnectAccountButton from './ConnectAccountButton/ConnectAccountButton.element.js'
6
4
  export * as CreateAccessCodeForm from './CreateAccessCodeForm/CreateAccessCodeForm.element.js'
7
5
  export * as DeviceDetails from './DeviceDetails/DeviceDetails.element.js'
@@ -1,7 +1,5 @@
1
1
  export * from './AccessCodeDetails/AccessCodeDetails.js'
2
2
  export * from './AccessCodeTable/AccessCodeTable.js'
3
- export * from './ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js'
4
- export * from './ClimateSettingScheduleTable/ClimateSettingScheduleTable.js'
5
3
  export * from './common-props.js'
6
4
  export * from './ConnectAccountButton/ConnectAccountButton.js'
7
5
  export * from './CreateAccessCodeForm/CreateAccessCodeForm.js'
@@ -11,7 +11,5 @@ export * from './devices/use-device.js'
11
11
  export * from './devices/use-device-providers.js'
12
12
  export * from './devices/use-devices.js'
13
13
  export * from './SeamProvider.js'
14
- export * from './thermostats/climate-setting-schedules/use-climate-setting-schedule.js'
15
- export * from './thermostats/climate-setting-schedules/use-climate-setting-schedules.js'
16
14
  export * from './use-seam-client.js'
17
15
  export * from './use-seam-query-result.js'
@@ -49,4 +49,5 @@ export function FanModeMenu({ mode, onChange }: FanModeMenuProps): JSX.Element {
49
49
  const t = {
50
50
  auto: 'Auto',
51
51
  on: 'On',
52
+ circulate: 'Circulate',
52
53
  }
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '3.1.2'
1
+ const seamapiReactVersion = '4.0.0-beta.1'
2
2
 
3
3
  export default seamapiReactVersion
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- interface ClimateSettingScheduleCardProps {
3
- climateSettingScheduleId: string;
4
- onSelectDevice: (deviceId: string) => void;
5
- }
6
- export declare function ClimateSettingScheduleCard({ climateSettingScheduleId, onSelectDevice, }: ClimateSettingScheduleCardProps): JSX.Element;
7
- export {};
@@ -1,43 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DateTime } from 'luxon';
3
- import { ClimateSettingScheduleIcon } from '../../../../lib/icons/ClimateSettingSchedule.js';
4
- import { ClimateSettingScheduleDeviceBar } from '../../../../lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js';
5
- import { useClimateSettingSchedule } from '../../../../lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js';
6
- import { DotDivider } from '../../../../lib/ui/layout/DotDivider.js';
7
- import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSettingStatus.js';
8
- import { useNow } from '../../../../lib/ui/use-now.js';
9
- import { formatDateTime } from './dates.js';
10
- export function ClimateSettingScheduleCard({ climateSettingScheduleId, onSelectDevice, }) {
11
- return (_jsx("div", { className: 'seam-climate-setting-schedule-card', children: _jsx(Content, { climateSettingScheduleId: climateSettingScheduleId, onSelectDevice: onSelectDevice }) }));
12
- }
13
- function Content(props) {
14
- const { climateSettingScheduleId, onSelectDevice } = props;
15
- const { climateSettingSchedule } = useClimateSettingSchedule({
16
- climate_setting_schedule_id: climateSettingScheduleId,
17
- });
18
- if (climateSettingSchedule == null) {
19
- return null;
20
- }
21
- const name = climateSettingSchedule.name ?? t.fallbackName;
22
- return (_jsxs("div", { className: 'seam-climate-setting-schedule-content', children: [_jsxs("div", { className: 'seam-climate-setting-schedule-summary-container', children: [_jsx("div", { className: 'seam-climate-setting-schedule-icon-block', children: _jsx(ClimateSettingScheduleIcon, {}) }), _jsxs("div", { className: 'seam-climate-setting-schedule-summary', children: [_jsx("h5", { className: 'seam-climate-setting-schedule-heading', children: name }), _jsxs("div", { className: 'seam-climate-setting-schedule-subheading', children: [_jsx(ClimateSettingStatus, { climateSetting: climateSettingSchedule }), _jsx(DotDivider, {}), _jsx(ClimateSettingScheduleTiming, { climateSettingSchedule: climateSettingSchedule })] })] })] }), _jsx(ClimateSettingScheduleDeviceBar, { onSelectDevice: onSelectDevice, deviceId: climateSettingSchedule.device_id })] }));
23
- }
24
- function ClimateSettingScheduleTiming(props) {
25
- const { climateSettingSchedule } = props;
26
- const now = useNow();
27
- if (now === null)
28
- return null;
29
- const startTime = DateTime.fromISO(climateSettingSchedule.schedule_starts_at);
30
- const endTime = DateTime.fromISO(climateSettingSchedule.schedule_ends_at);
31
- if (now < startTime)
32
- return (_jsxs("span", { children: [t.starts, " ", formatDateTime(climateSettingSchedule.schedule_starts_at)] }));
33
- if (startTime <= now && now <= endTime)
34
- return (_jsxs("span", { children: [t.ends, " ", formatDateTime(climateSettingSchedule.schedule_starts_at)] }));
35
- return _jsx("span", { children: t.expired });
36
- }
37
- const t = {
38
- starts: 'Starts',
39
- ends: 'Ends',
40
- expired: 'Expired',
41
- fallbackName: 'Climate Setting Schedule',
42
- };
43
- //# sourceMappingURL=ClimateSettingScheduleCard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClimateSettingScheduleCard.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,sFAAsF,CAAA;AACtI,OAAO,EAAE,yBAAyB,EAAE,MAAM,gFAAgF,CAAA;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAO3C,MAAM,UAAU,0BAA0B,CAAC,EACzC,wBAAwB,EACxB,cAAc,GACkB;IAChC,OAAO,CACL,cAAK,SAAS,EAAC,oCAAoC,YACjD,KAAC,OAAO,IACN,wBAAwB,EAAE,wBAAwB,EAClD,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAGhB;IACC,MAAM,EAAE,wBAAwB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAE1D,MAAM,EAAE,sBAAsB,EAAE,GAAG,yBAAyB,CAAC;QAC3D,2BAA2B,EAAE,wBAAwB;KACtD,CAAC,CAAA;IAEF,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAA;IAE1D,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACpD,eAAK,SAAS,EAAC,iDAAiD,aAC9D,cAAK,SAAS,EAAC,0CAA0C,YACvD,KAAC,0BAA0B,KAAG,GAC1B,EACN,eAAK,SAAS,EAAC,uCAAuC,aACpD,aAAI,SAAS,EAAC,uCAAuC,YAAE,IAAI,GAAM,EACjE,eAAK,SAAS,EAAC,0CAA0C,aACvD,KAAC,oBAAoB,IAAC,cAAc,EAAE,sBAAsB,GAAI,EAChE,KAAC,UAAU,KAAG,EACd,KAAC,4BAA4B,IAC3B,sBAAsB,EAAE,sBAAsB,GAC9C,IACE,IACF,IACF,EACN,KAAC,+BAA+B,IAC9B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,sBAAsB,CAAC,SAAS,GAC1C,IACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAErC;IACC,MAAM,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAA;IAExC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IAEpB,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;IAEzE,IAAI,GAAG,GAAG,SAAS;QACjB,OAAO,CACL,2BACG,CAAC,CAAC,MAAM,OAAG,cAAc,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAChE,CACR,CAAA;IAEH,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO;QACpC,OAAO,CACL,2BACG,CAAC,CAAC,IAAI,OAAG,cAAc,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAC9D,CACR,CAAA;IAEH,OAAO,yBAAO,CAAC,CAAC,OAAO,GAAQ,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,0BAA0B;CACzC,CAAA"}
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { type CommonProps } from '../../../../lib/seam/components/common-props.js';
3
- export interface ClimateSettingScheduleDetailsProps extends CommonProps {
4
- climateSettingScheduleId: string;
5
- }
6
- export declare const NestedClimateSettingScheduleDetails: (props: ClimateSettingScheduleDetailsProps & import("../../../../lib/seam/components/common-props.js").RequiredCommonProps) => JSX.Element | null;
7
- export declare function ClimateSettingScheduleDetails({ climateSettingScheduleId, disableLockUnlock, disableDeleteAccessCode, onBack, className, errorFilter, warningFilter, disableCreateAccessCode, disableEditAccessCode, disableResourceIds, disableConnectedAccountInformation, disableClimateSettingSchedules, }: ClimateSettingScheduleDetailsProps): JSX.Element | null;
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import classNames from 'classnames';
3
- import { useState } from 'react';
4
- import { ArrowRightIcon } from '../../../../lib/icons/ArrowRight.js';
5
- import { ClimateSettingScheduleCard } from '../../../../lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js';
6
- import { withRequiredCommonProps, } from '../../../../lib/seam/components/common-props.js';
7
- import { NestedDeviceDetails } from '../../../../lib/seam/components/DeviceDetails/DeviceDetails.js';
8
- import { useClimateSettingSchedule } from '../../../../lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedule.js';
9
- import { useUpdateClimateSettingSchedule } from '../../../../lib/seam/thermostats/climate-setting-schedules/use-update-climate-setting-schedule.js';
10
- import { useComponentTelemetry } from '../../../../lib/telemetry/index.js';
11
- import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
12
- import { DetailRow } from '../../../../lib/ui/layout/DetailRow.js';
13
- import { DetailSection } from '../../../../lib/ui/layout/DetailSection.js';
14
- import { DetailSectionGroup } from '../../../../lib/ui/layout/DetailSectionGroup.js';
15
- import { Snackbar } from '../../../../lib/ui/Snackbar/Snackbar.js';
16
- import { Switch } from '../../../../lib/ui/Switch/Switch.js';
17
- import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSettingStatus.js';
18
- import { formatDateTime } from './dates.js';
19
- export const NestedClimateSettingScheduleDetails = withRequiredCommonProps(ClimateSettingScheduleDetails);
20
- export function ClimateSettingScheduleDetails({ climateSettingScheduleId, disableLockUnlock = false, disableDeleteAccessCode = false, onBack, className, errorFilter = () => true, warningFilter = () => true, disableCreateAccessCode, disableEditAccessCode, disableResourceIds = false, disableConnectedAccountInformation = false, disableClimateSettingSchedules, }) {
21
- useComponentTelemetry('ClimateSettingScheduleDetails');
22
- const { climateSettingSchedule } = useClimateSettingSchedule({
23
- climate_setting_schedule_id: climateSettingScheduleId,
24
- });
25
- const { mutate, isSuccess, isError } = useUpdateClimateSettingSchedule();
26
- const [selectedDeviceId, selectDevice] = useState(null);
27
- if (climateSettingSchedule == null) {
28
- return null;
29
- }
30
- const isManualOverrideAllowed = climateSettingSchedule.manual_override_allowed ?? false;
31
- if (selectedDeviceId != null) {
32
- return (_jsx(NestedDeviceDetails, { deviceId: selectedDeviceId, errorFilter: errorFilter, warningFilter: warningFilter, disableLockUnlock: disableLockUnlock, disableCreateAccessCode: disableCreateAccessCode, disableEditAccessCode: disableEditAccessCode, disableDeleteAccessCode: disableDeleteAccessCode, disableResourceIds: disableResourceIds, disableConnectedAccountInformation: disableConnectedAccountInformation, disableClimateSettingSchedules: disableClimateSettingSchedules, onBack: () => {
33
- selectDevice(null);
34
- }, className: className }));
35
- }
36
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: classNames('seam-climate-setting-schedule-details', className), children: [_jsx(ContentHeader, { title: t.climateSettingSchedule, onBack: onBack }), _jsxs("div", { className: 'seam-climate-setting-schedule-details-content', children: [_jsx(ClimateSettingScheduleCard, { climateSettingScheduleId: climateSettingScheduleId, onSelectDevice: selectDevice }), _jsx("div", { className: 'seam-default-setting-message-container', children: _jsxs("span", { className: 'seam-default-setting-message', children: [t.defaultSettingMessagePart1, ' ', _jsx("span", { className: 'seam-default-setting-text', children: t.defaultSetting }), ' ', t.defaultSettingMessagePart2] }) }), _jsxs(DetailSectionGroup, { children: [_jsxs(DetailSection, { children: [_jsx(DetailRow, { label: t.startEndTime, children: _jsxs("span", { className: 'seam-climate-setting-details-value seam-climate-setting-details-schedule-range', children: [formatDateTime(climateSettingSchedule.schedule_starts_at), _jsx(ArrowRightIcon, {}), formatDateTime(climateSettingSchedule.schedule_ends_at)] }) }), _jsx(DetailRow, { label: t.climateSetting, children: _jsx(ClimateSettingStatus, { climateSetting: climateSettingSchedule, iconPlacement: 'right' }) }), _jsx(DetailRow, { label: t.allowManualOverride, children: _jsx("span", { className: 'seam-climate-setting-details-value', children: _jsx(Switch, { checked: isManualOverrideAllowed, onChange: (checked) => {
37
- mutate({
38
- climate_setting_schedule_id: climateSettingSchedule.climate_setting_schedule_id,
39
- manual_override_allowed: checked,
40
- });
41
- } }) }) })] }), _jsx(DetailSection, { children: _jsx(DetailRow, { label: t.creationDate, children: _jsx("div", { className: 'seam-creation-date', children: formatDateTime(climateSettingSchedule.created_at) }) }) })] })] })] }), _jsx(Snackbar, { message: t.manualOverrideSuccess, variant: 'success', visible: isSuccess, automaticVisibility: true }), _jsx(Snackbar, { message: t.manualOverrideError, variant: 'error', visible: isError, automaticVisibility: true })] }));
42
- }
43
- const t = {
44
- climateSettingSchedule: 'Climate setting schedule',
45
- startEndTime: 'Start/End Time',
46
- climateSetting: 'Climate setting',
47
- allowManualOverride: 'Allow manual override',
48
- creationDate: 'Creation date',
49
- defaultSettingMessagePart1: 'Thermostat will return to its',
50
- defaultSetting: 'default setting',
51
- defaultSettingMessagePart2: 'at end time.',
52
- manualOverrideSuccess: 'Successfully updated manual override!',
53
- manualOverrideError: 'Error updating manual override. Please try again.',
54
- };
55
- //# sourceMappingURL=ClimateSettingScheduleDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClimateSettingScheduleDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- export declare function ClimateSettingScheduleDeviceBar({ deviceId, onSelectDevice, }: {
3
- deviceId: string;
4
- onSelectDevice: (deviceId: string) => void;
5
- }): JSX.Element | null;
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ChevronWideIcon } from '../../../../lib/icons/ChevronWide.js';
3
- import { useDevice } from '../../../../lib/seam/devices/use-device.js';
4
- import { isThermostatDevice, } from '../../../../lib/seam/thermostats/thermostat-device.js';
5
- import { DeviceImage } from '../../../../lib/ui/device/DeviceImage.js';
6
- import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSettingStatus.js';
7
- export function ClimateSettingScheduleDeviceBar({ deviceId, onSelectDevice, }) {
8
- const { isPending, device } = useDevice({
9
- device_id: deviceId,
10
- });
11
- if (isPending) {
12
- return null;
13
- }
14
- if (device == null) {
15
- return null;
16
- }
17
- if (!isThermostatDevice(device)) {
18
- return null;
19
- }
20
- return _jsx(Content, { device: device, onSelectDevice: onSelectDevice });
21
- }
22
- function Content(props) {
23
- const { device, onSelectDevice } = props;
24
- return (_jsxs("div", { className: 'seam-climate-setting-schedule-device-bar', onClick: () => {
25
- onSelectDevice(device.device_id);
26
- }, children: [_jsxs("div", { className: 'seam-climate-setting-schedule-device-content', children: [_jsx("div", { className: 'seam-device-image', children: _jsx(DeviceImage, { device: device }) }), _jsxs("div", { className: 'seam-climate-setting-schedule-device-details', children: [_jsx("div", { className: 'seam-device-name', children: device.properties.name }), _jsxs("div", { className: 'seam-device-current-climate-setting', children: [t.currentClimate, ":", _jsx(ClimateSettingStatus, { climateSetting: device.properties.current_climate_setting })] })] })] }), _jsx("div", { className: 'seam-climate-setting-schedule-device-chevron', children: _jsx(ChevronWideIcon, {}) })] }));
27
- }
28
- const t = {
29
- currentClimate: 'Current climate',
30
- };
31
- //# sourceMappingURL=ClimateSettingScheduleDeviceBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClimateSettingScheduleDeviceBar.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EACL,kBAAkB,GAEnB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,MAAM,UAAU,+BAA+B,CAAC,EAC9C,QAAQ,EACR,cAAc,GAIf;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAA;IAEF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAC,OAAO,IAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,KAGhB;IACC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAExC,OAAO,CACL,eACE,SAAS,EAAC,0CAA0C,EACpD,OAAO,EAAE,GAAG,EAAE;YACZ,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC,aAED,eAAK,SAAS,EAAC,8CAA8C,aAC3D,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,GAC3B,EACN,eAAK,SAAS,EAAC,8CAA8C,aAC3D,cAAK,SAAS,EAAC,kBAAkB,YAAE,MAAM,CAAC,UAAU,CAAC,IAAI,GAAO,EAChE,eAAK,SAAS,EAAC,qCAAqC,aACjD,CAAC,CAAC,cAAc,OACjB,KAAC,oBAAoB,IACnB,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,uBAAuB,GACzD,IACE,IACF,IACF,EACN,cAAK,SAAS,EAAC,8CAA8C,YAC3D,KAAC,eAAe,KAAG,GACf,IACF,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,cAAc,EAAE,iBAAiB;CAClC,CAAA"}
@@ -1 +0,0 @@
1
- export declare const formatDateTime: (date: string) => string;
@@ -1,9 +0,0 @@
1
- import { DateTime } from 'luxon';
2
- export const formatDateTime = (date) => DateTime.fromISO(date).toLocaleString({
3
- month: 'short',
4
- day: 'numeric',
5
- hour: 'numeric',
6
- minute: '2-digit',
7
- timeZoneName: 'short',
8
- });
9
- //# sourceMappingURL=dates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleDetails/dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE,CACrD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC;IACpC,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,OAAO;CACtB,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import type { ClimateSettingSchedule } from '@seamapi/types/connect';
3
- interface ClimateSettingScheduleRowProps {
4
- climateSettingSchedule: ClimateSettingSchedule;
5
- onClick: () => void;
6
- }
7
- export declare function ClimateSettingScheduleRow({ climateSettingSchedule, onClick, }: ClimateSettingScheduleRowProps): JSX.Element;
8
- export {};
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ClimateSettingScheduleIcon } from '../../../../lib/icons/ClimateSettingSchedule.js';
3
- import { ClimateSettingScheduleRowDetails } from '../../../../lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js';
4
- import { TableCell } from '../../../../lib/ui/Table/TableCell.js';
5
- import { TableRow } from '../../../../lib/ui/Table/TableRow.js';
6
- import { Title } from '../../../../lib/ui/typography/Title.js';
7
- export function ClimateSettingScheduleRow({ climateSettingSchedule, onClick, }) {
8
- return (_jsxs(TableRow, { onClick: onClick, children: [_jsx(TableCell, { className: 'seam-icon-cell', children: _jsx("div", { children: _jsx(ClimateSettingScheduleIcon, {}) }) }), _jsxs(TableCell, { className: 'seam-name-cell', children: [_jsx(Title, { className: 'seam-truncated-text', children: climateSettingSchedule.name }), _jsx(ClimateSettingScheduleRowDetails, { climateSettingSchedule: climateSettingSchedule })] })] }));
9
- }
10
- //# sourceMappingURL=ClimateSettingScheduleRow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClimateSettingScheduleRow.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRow.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,EAAE,gCAAgC,EAAE,MAAM,qFAAqF,CAAA;AACtI,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAOlD,MAAM,UAAU,yBAAyB,CAAC,EACxC,sBAAsB,EACtB,OAAO,GACwB;IAC/B,OAAO,CACL,MAAC,QAAQ,IAAC,OAAO,EAAE,OAAO,aACxB,KAAC,SAAS,IAAC,SAAS,EAAC,gBAAgB,YACnC,wBACE,KAAC,0BAA0B,KAAG,GAC1B,GACI,EACZ,MAAC,SAAS,IAAC,SAAS,EAAC,gBAAgB,aACnC,KAAC,KAAK,IAAC,SAAS,EAAC,qBAAqB,YACnC,sBAAsB,CAAC,IAAI,GACtB,EACR,KAAC,gCAAgC,IAC/B,sBAAsB,EAAE,sBAAsB,GAC9C,IACQ,IACH,CACZ,CAAA;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import type { ClimateSettingSchedule } from '@seamapi/types/connect';
3
- export declare function ClimateSettingScheduleRowDetails(props: {
4
- climateSettingSchedule: ClimateSettingSchedule;
5
- }): JSX.Element;
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DateTime } from 'luxon';
3
- import { useDevice } from '../../../../lib/seam/devices/use-device.js';
4
- import { DotDivider } from '../../../../lib/ui/layout/DotDivider.js';
5
- import { ClimateSettingStatus } from '../../../../lib/ui/thermostat/ClimateSettingStatus.js';
6
- import { useIsDateInPast } from '../../../../lib/ui/use-is-date-in-past.js';
7
- export function ClimateSettingScheduleRowDetails(props) {
8
- const { climateSettingSchedule } = props;
9
- const { device } = useDevice({ device_id: climateSettingSchedule.device_id });
10
- return (_jsxs("div", { className: 'seam-details', children: [_jsx("span", { className: 'seam-device-name seam-truncated-text', children: device?.properties.name }), _jsx(DotDivider, {}), _jsx(Duration, { climateSettingSchedule: climateSettingSchedule }), _jsx(DotDivider, {}), _jsx(ClimateSettingStatus, { climateSetting: climateSettingSchedule })] }));
11
- }
12
- function Duration(props) {
13
- const { climateSettingSchedule } = props;
14
- const hasStarted = useIsDateInPast(climateSettingSchedule.schedule_starts_at) ?? false;
15
- if (hasStarted) {
16
- return (_jsxs("span", { children: [t.ends, " ", formatDate(climateSettingSchedule.schedule_ends_at), ' '] }));
17
- }
18
- return (_jsxs("span", { children: [t.starts, " ", formatDate(climateSettingSchedule.schedule_starts_at)] }));
19
- }
20
- const formatDate = (date) => DateTime.fromISO(date).toLocaleString({
21
- month: 'long',
22
- day: 'numeric',
23
- });
24
- const t = {
25
- starts: 'Starts',
26
- ends: 'Ends',
27
- };
28
- //# sourceMappingURL=ClimateSettingScheduleRowDetails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClimateSettingScheduleRowDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,UAAU,gCAAgC,CAAC,KAEhD;IACC,MAAM,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,SAAS,EAAE,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAA;IAE7E,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC3B,eAAM,SAAS,EAAC,sCAAsC,YACnD,MAAM,EAAE,UAAU,CAAC,IAAI,GACnB,EACP,KAAC,UAAU,KAAG,EACd,KAAC,QAAQ,IAAC,sBAAsB,EAAE,sBAAsB,GAAI,EAC5D,KAAC,UAAU,KAAG,EACd,KAAC,oBAAoB,IAAC,cAAc,EAAE,sBAAsB,GAAI,IAC5D,CACP,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAEjB;IACC,MAAM,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAA;IAExC,MAAM,UAAU,GACd,eAAe,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAA;IAErE,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,2BACG,CAAC,CAAC,IAAI,OAAG,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAC7D,CACR,CAAA;IACH,CAAC;IAED,OAAO,CACL,2BACG,CAAC,CAAC,MAAM,OAAG,UAAU,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAC5D,CACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAC1C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC;IACpC,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,SAAS;CACf,CAAC,CAAA;AAEJ,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAA"}