@seamapi/react 2.5.1 → 2.7.0
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.
- package/README.md +1 -1
- package/dist/elements.js +10929 -10622
- package/dist/elements.js.map +1 -1
- package/lib/dates.js.map +1 -1
- package/lib/icons/AccessCodeKey.js +1 -1
- package/lib/icons/AccessCodeKey.js.map +1 -1
- package/lib/icons/Add.js +1 -1
- package/lib/icons/Add.js.map +1 -1
- package/lib/icons/ArrowBack.js +1 -1
- package/lib/icons/ArrowBack.js.map +1 -1
- package/lib/icons/ArrowRestart.js +1 -1
- package/lib/icons/ArrowRestart.js.map +1 -1
- package/lib/icons/ArrowRight.js +1 -1
- package/lib/icons/ArrowRight.js.map +1 -1
- package/lib/icons/BatteryLevelCritical.js +1 -1
- package/lib/icons/BatteryLevelCritical.js.map +1 -1
- package/lib/icons/BatteryLevelFull.js +1 -1
- package/lib/icons/BatteryLevelFull.js.map +1 -1
- package/lib/icons/BatteryLevelHigh.js +1 -1
- package/lib/icons/BatteryLevelHigh.js.map +1 -1
- package/lib/icons/BatteryLevelLow.js +1 -1
- package/lib/icons/BatteryLevelLow.js.map +1 -1
- package/lib/icons/BatteryLevelWired.js +1 -1
- package/lib/icons/BatteryLevelWired.js.map +1 -1
- package/lib/icons/Bee.js +1 -1
- package/lib/icons/Bee.js.map +1 -1
- package/lib/icons/Check.js +1 -1
- package/lib/icons/Check.js.map +1 -1
- package/lib/icons/CheckBlack.js +1 -1
- package/lib/icons/CheckBlack.js.map +1 -1
- package/lib/icons/CheckGreen.js +1 -1
- package/lib/icons/CheckGreen.js.map +1 -1
- package/lib/icons/CheckboxBlank.js +1 -1
- package/lib/icons/CheckboxBlank.js.map +1 -1
- package/lib/icons/CheckboxFilled.js +1 -1
- package/lib/icons/CheckboxFilled.js.map +1 -1
- package/lib/icons/ChevronDown.js +1 -1
- package/lib/icons/ChevronDown.js.map +1 -1
- package/lib/icons/ChevronRight.js +1 -1
- package/lib/icons/ChevronRight.js.map +1 -1
- package/lib/icons/ChevronWide.js +1 -1
- package/lib/icons/ChevronWide.js.map +1 -1
- package/lib/icons/ClimateSettingSchedule.js +1 -1
- package/lib/icons/ClimateSettingSchedule.js.map +1 -1
- package/lib/icons/Close.js +1 -1
- package/lib/icons/Close.js.map +1 -1
- package/lib/icons/CloseWhite.js +1 -1
- package/lib/icons/CloseWhite.js.map +1 -1
- package/lib/icons/Copy.js +1 -1
- package/lib/icons/Copy.js.map +1 -1
- package/lib/icons/DotsEllipsisMore.js +1 -1
- package/lib/icons/DotsEllipsisMore.js.map +1 -1
- package/lib/icons/Edit.js +1 -1
- package/lib/icons/Edit.js.map +1 -1
- package/lib/icons/ExclamationCircle.js +1 -1
- package/lib/icons/ExclamationCircle.js.map +1 -1
- package/lib/icons/ExclamationCircleOutline.js +1 -1
- package/lib/icons/ExclamationCircleOutline.js.map +1 -1
- package/lib/icons/Fan.js +1 -1
- package/lib/icons/Fan.js.map +1 -1
- package/lib/icons/FanOutline.js +1 -1
- package/lib/icons/FanOutline.js.map +1 -1
- package/lib/icons/Info.js +1 -1
- package/lib/icons/Info.js.map +1 -1
- package/lib/icons/InfoDark.js +1 -1
- package/lib/icons/InfoDark.js.map +1 -1
- package/lib/icons/LockLocked.js +1 -1
- package/lib/icons/LockLocked.js.map +1 -1
- package/lib/icons/LockUnlocked.js +1 -1
- package/lib/icons/LockUnlocked.js.map +1 -1
- package/lib/icons/Off.js +1 -1
- package/lib/icons/Off.js.map +1 -1
- package/lib/icons/OnlineStatusAccountOffline.js +1 -1
- package/lib/icons/OnlineStatusAccountOffline.js.map +1 -1
- package/lib/icons/OnlineStatusDeviceOffline.js +1 -1
- package/lib/icons/OnlineStatusDeviceOffline.js.map +1 -1
- package/lib/icons/OnlineStatusOnline.js +1 -1
- package/lib/icons/OnlineStatusOnline.js.map +1 -1
- package/lib/icons/RadioChecked.js +1 -1
- package/lib/icons/RadioChecked.js.map +1 -1
- package/lib/icons/RadioUnchecked.js +1 -1
- package/lib/icons/RadioUnchecked.js.map +1 -1
- package/lib/icons/Seam.js +1 -1
- package/lib/icons/Seam.js.map +1 -1
- package/lib/icons/Search.js +1 -1
- package/lib/icons/Search.js.map +1 -1
- package/lib/icons/TemperatureAdd.js +1 -1
- package/lib/icons/TemperatureAdd.js.map +1 -1
- package/lib/icons/TemperatureSubtract.js +1 -1
- package/lib/icons/TemperatureSubtract.js.map +1 -1
- package/lib/icons/ThermostatCool.js +1 -1
- package/lib/icons/ThermostatCool.js.map +1 -1
- package/lib/icons/ThermostatCoolLarge.js +1 -1
- package/lib/icons/ThermostatCoolLarge.js.map +1 -1
- package/lib/icons/ThermostatHeat.js +1 -1
- package/lib/icons/ThermostatHeat.js.map +1 -1
- package/lib/icons/ThermostatHeatCool.js +1 -1
- package/lib/icons/ThermostatHeatCool.js.map +1 -1
- package/lib/icons/ThermostatHeatLarge.js +1 -1
- package/lib/icons/ThermostatHeatLarge.js.map +1 -1
- package/lib/icons/ThermostatOff.js +1 -1
- package/lib/icons/ThermostatOff.js.map +1 -1
- package/lib/icons/TriangleWarning.js +1 -1
- package/lib/icons/TriangleWarning.js.map +1 -1
- package/lib/icons/TriangleWarningOutline.js +1 -1
- package/lib/icons/TriangleWarningOutline.js.map +1 -1
- package/lib/seam/SeamProvider.js.map +1 -1
- package/lib/seam/access-codes/use-access-codes.js.map +1 -1
- package/lib/seam/access-codes/use-update-access-code.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
- package/lib/seam/components/AccessCodeDetails/AccessCodeDevice.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeHealthBar.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeMenu.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
- package/lib/seam/components/AccessCodeTable/CodeDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +1 -1
- package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +1 -1
- package/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.js.map +1 -1
- package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +1 -1
- package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceHealthBar.js.map +1 -1
- package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
- package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.d.ts +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.d.ts +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js +5 -9
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.d.ts +3 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js +2 -2
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-model.js +5 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-model.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-models.js +5 -1
- package/lib/seam/components/SupportedDeviceTable/use-device-models.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.d.ts +5 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js +22 -5
- package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.d.ts +4 -2
- package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.js +2 -1
- package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/use-manufacturers.js.map +1 -1
- package/lib/seam/connect-webviews/use-create-connect-webview.js.map +1 -1
- package/lib/seam/devices/use-devices.js.map +1 -1
- package/lib/seam/devices/use-toggle-lock.js.map +1 -1
- package/lib/seam/error-handlers.js.map +1 -1
- package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js.map +1 -1
- package/lib/seam/thermostats/use-cool-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-heat-cool-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-heat-thermostat.js.map +1 -1
- package/lib/seam/thermostats/use-set-thermostat-off.js.map +1 -1
- package/lib/seam/thermostats/use-update-fan-mode.js.map +1 -1
- package/lib/seam/thermostats/use-update-thermostat.js.map +1 -1
- package/lib/seam/use-seam-client.js.map +1 -1
- package/lib/set-point-bounds.js.map +1 -1
- package/lib/telemetry/TelemetryProvider.js.map +1 -1
- package/lib/telemetry/client.js.map +1 -1
- package/lib/ui/AccessCodeForm/AccessCodeForm.js.map +1 -1
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +1 -1
- package/lib/ui/FormField.js.map +1 -1
- package/lib/ui/LoadingToast/LoadingToast.js.map +1 -1
- package/lib/ui/Menu/Menu.js.map +1 -1
- package/lib/ui/Menu/MenuItem.js.map +1 -1
- package/lib/ui/RadioField/Radio.js.map +1 -1
- package/lib/ui/RadioField/RadioField.js.map +1 -1
- package/lib/ui/Snackbar/Snackbar.js.map +1 -1
- package/lib/ui/TextField/TextField.js.map +1 -1
- package/lib/ui/TimeZonePicker/TimeZonePicker.js.map +1 -1
- package/lib/ui/Tooltip/Tooltip.js.map +1 -1
- package/lib/ui/device/BatteryStatus.js.map +1 -1
- package/lib/ui/device/LockStatus.js.map +1 -1
- package/lib/ui/device/OnlineStatus.js.map +1 -1
- package/lib/ui/layout/ContentHeader.js.map +1 -1
- package/lib/ui/thermostat/ClimateModeMenu.js.map +1 -1
- package/lib/ui/thermostat/TemperatureControlGroup.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +6 -6
- package/src/lib/icons/AccessCodeKey.tsx +1 -1
- package/src/lib/icons/Add.tsx +1 -1
- package/src/lib/icons/ArrowBack.tsx +1 -1
- package/src/lib/icons/ArrowRestart.tsx +1 -1
- package/src/lib/icons/ArrowRight.tsx +1 -1
- package/src/lib/icons/BatteryLevelCritical.tsx +1 -1
- package/src/lib/icons/BatteryLevelFull.tsx +1 -1
- package/src/lib/icons/BatteryLevelHigh.tsx +1 -1
- package/src/lib/icons/BatteryLevelLow.tsx +1 -1
- package/src/lib/icons/BatteryLevelWired.tsx +1 -1
- package/src/lib/icons/Bee.tsx +1 -1
- package/src/lib/icons/Check.tsx +1 -1
- package/src/lib/icons/CheckBlack.tsx +1 -1
- package/src/lib/icons/CheckGreen.tsx +1 -1
- package/src/lib/icons/CheckboxBlank.tsx +1 -1
- package/src/lib/icons/CheckboxFilled.tsx +1 -1
- package/src/lib/icons/ChevronDown.tsx +1 -1
- package/src/lib/icons/ChevronRight.tsx +1 -1
- package/src/lib/icons/ChevronWide.tsx +1 -1
- package/src/lib/icons/ClimateSettingSchedule.tsx +1 -1
- package/src/lib/icons/Close.tsx +1 -1
- package/src/lib/icons/CloseWhite.tsx +1 -1
- package/src/lib/icons/Copy.tsx +1 -1
- package/src/lib/icons/DotsEllipsisMore.tsx +1 -1
- package/src/lib/icons/Edit.tsx +1 -1
- package/src/lib/icons/ExclamationCircle.tsx +1 -1
- package/src/lib/icons/ExclamationCircleOutline.tsx +1 -1
- package/src/lib/icons/Fan.tsx +1 -1
- package/src/lib/icons/FanOutline.tsx +1 -1
- package/src/lib/icons/Info.tsx +1 -1
- package/src/lib/icons/InfoDark.tsx +1 -1
- package/src/lib/icons/LockLocked.tsx +1 -1
- package/src/lib/icons/LockUnlocked.tsx +1 -1
- package/src/lib/icons/Off.tsx +1 -1
- package/src/lib/icons/OnlineStatusAccountOffline.tsx +1 -1
- package/src/lib/icons/OnlineStatusDeviceOffline.tsx +1 -1
- package/src/lib/icons/OnlineStatusOnline.tsx +2 -2
- package/src/lib/icons/RadioChecked.tsx +1 -1
- package/src/lib/icons/RadioUnchecked.tsx +1 -1
- package/src/lib/icons/Seam.tsx +1 -2
- package/src/lib/icons/Search.tsx +1 -1
- package/src/lib/icons/TemperatureAdd.tsx +1 -1
- package/src/lib/icons/TemperatureSubtract.tsx +1 -1
- package/src/lib/icons/ThermostatCool.tsx +1 -1
- package/src/lib/icons/ThermostatCoolLarge.tsx +1 -1
- package/src/lib/icons/ThermostatHeat.tsx +1 -1
- package/src/lib/icons/ThermostatHeatCool.tsx +2 -2
- package/src/lib/icons/ThermostatHeatLarge.tsx +1 -1
- package/src/lib/icons/ThermostatOff.tsx +1 -1
- package/src/lib/icons/TriangleWarning.tsx +1 -1
- package/src/lib/icons/TriangleWarningOutline.tsx +2 -5
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +6 -0
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.tsx +12 -12
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.element.ts +2 -0
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.tsx +6 -0
- package/src/lib/seam/components/SupportedDeviceTable/use-device-model.ts +5 -1
- package/src/lib/seam/components/SupportedDeviceTable/use-device-models.ts +5 -1
- package/src/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.ts +37 -10
- package/src/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.ts +12 -4
- package/src/lib/version.ts +1 -1
|
@@ -16,7 +16,7 @@ export function ThermostatHeatLargeIcon(
|
|
|
16
16
|
>
|
|
17
17
|
<path
|
|
18
18
|
fill='#FC8E28'
|
|
19
|
-
d='M4 14c0-1.75.417-3.308 1.25-4.675S7 6.808 8 5.875c1-.933 1.917-1.646 2.75-2.
|
|
19
|
+
d='M4 14c0-1.75.417-3.308 1.25-4.675S7 6.808 8 5.875c1-.933 1.917-1.646 2.75-2.137L12 3v3.3c0 .617.208 1.104.625 1.463.417.358.883.537 1.4.537.283 0 .554-.058.813-.175.258-.117.495-.308.712-.575L16 7c1.2.7 2.167 1.67 2.9 2.912.733 1.242 1.1 2.605 1.1 4.088 0 1.467-.358 2.804-1.075 4.012a8.086 8.086 0 0 1-2.825 2.863c.283-.4.504-.837.662-1.312.159-.476.238-.98.238-1.513a4.8 4.8 0 0 0-.375-1.887 4.957 4.957 0 0 0-1.075-1.588L12 11.1l-3.525 3.475a5.093 5.093 0 0 0-1.1 1.6A4.709 4.709 0 0 0 7 18.05c0 .533.08 1.037.237 1.512.159.476.38.913.663 1.313a8.086 8.086 0 0 1-2.825-2.863C4.358 16.805 4 15.468 4 14m8-.1 2.125 2.075c.283.283.5.6.65.95.15.35.225.725.225 1.125 0 .817-.292 1.512-.875 2.087-.583.575-1.292.863-2.125.863s-1.542-.288-2.125-.863A2.823 2.823 0 0 1 9 18.05c0-.383.075-.754.225-1.113.15-.358.367-.679.65-.962z'
|
|
20
20
|
/>
|
|
21
21
|
</svg>
|
|
22
22
|
)
|
|
@@ -14,7 +14,7 @@ export function ThermostatOffIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
|
|
|
14
14
|
>
|
|
15
15
|
<path
|
|
16
16
|
fill='#9DA1A9'
|
|
17
|
-
d='M11.78 13.64 10.36 12.22a6.403 6.403 0 0 1-1.633.765 6.127 6.127 0 0 1-1.805.266 6.086 6.086 0 0 1-2.437-.492 6.311 6.311 0 0 1-1.985-1.336 6.312 6.312 0 0 1-1.336-1.985A6.086 6.086 0 0 1 .671 7c0-.625.089-1.227.266-1.805a6.4 6.4 0 0 1 .766-1.633L.28 2.141l.89-.891 11.5 11.
|
|
17
|
+
d='M11.78 13.64 10.36 12.22a6.403 6.403 0 0 1-1.633.765 6.127 6.127 0 0 1-1.805.266 6.086 6.086 0 0 1-2.437-.492 6.311 6.311 0 0 1-1.985-1.336 6.312 6.312 0 0 1-1.336-1.985A6.086 6.086 0 0 1 .671 7c0-.625.089-1.227.266-1.805a6.4 6.4 0 0 1 .766-1.633L.28 2.141l.89-.891 11.5 11.5zM6.922 12a4.955 4.955 0 0 0 2.532-.687L2.609 4.469A4.956 4.956 0 0 0 1.92 7c0 1.385.487 2.565 1.461 3.54.974.973 2.154 1.46 3.54 1.46m5.219-1.562-.906-.907A4.955 4.955 0 0 0 11.922 7c0-1.385-.488-2.565-1.462-3.54C9.486 2.488 8.307 2 6.921 2a4.955 4.955 0 0 0-2.531.688l-.906-.907a6.401 6.401 0 0 1 1.633-.765A6.127 6.127 0 0 1 6.92.75c.865 0 1.677.164 2.438.492.76.328 1.422.774 1.984 1.336a6.311 6.311 0 0 1 1.336 1.985c.328.76.492 1.572.492 2.437 0 .625-.088 1.227-.265 1.805a6.4 6.4 0 0 1-.766 1.633'
|
|
18
18
|
/>
|
|
19
19
|
</svg>
|
|
20
20
|
)
|
|
@@ -30,7 +30,7 @@ export function TriangleWarningIcon(
|
|
|
30
30
|
<g mask='url(#triangle-warning_svg__a)'>
|
|
31
31
|
<path
|
|
32
32
|
fill='#F3980F'
|
|
33
|
-
d='M1 21 12 2l11
|
|
33
|
+
d='M1 21 12 2l11 19zm11-3a.968.968 0 0 0 .713-.288A.967.967 0 0 0 13 17a.967.967 0 0 0-.287-.712A.968.968 0 0 0 12 16a.965.965 0 0 0-.712.288A.965.965 0 0 0 11 17c0 .283.096.52.288.712A.965.965 0 0 0 12 18m-1-3h2v-5h-2z'
|
|
34
34
|
/>
|
|
35
35
|
</g>
|
|
36
36
|
</svg>
|
|
@@ -14,11 +14,8 @@ export function TriangleWarningOutlineIcon(
|
|
|
14
14
|
fill='none'
|
|
15
15
|
{...props}
|
|
16
16
|
>
|
|
17
|
-
<path
|
|
18
|
-
|
|
19
|
-
d='m12 6.49 7.53 13.01H4.47L12 6.49Zm0-3.99-11 19h22l-11-19Z'
|
|
20
|
-
/>
|
|
21
|
-
<path fill='#FF9800' d='M13 16.5h-2v2h2v-2ZM13 10.5h-2v5h2v-5Z' />
|
|
17
|
+
<path fill='#FF9800' d='m12 6.49 7.53 13.01H4.47zm0-3.99-11 19h22z' />
|
|
18
|
+
<path fill='#FF9800' d='M13 16.5h-2v2h2zM13 10.5h-2v5h2z' />
|
|
22
19
|
</svg>
|
|
23
20
|
)
|
|
24
21
|
}
|
|
@@ -15,6 +15,8 @@ interface SupportedDeviceContentProps {
|
|
|
15
15
|
filters: DeviceModelFilters
|
|
16
16
|
manufacturers: string[] | null
|
|
17
17
|
excludedManufacturers: string[]
|
|
18
|
+
includeIf: string[] | null
|
|
19
|
+
excludeIf: string[]
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export function SupportedDeviceContent({
|
|
@@ -23,6 +25,8 @@ export function SupportedDeviceContent({
|
|
|
23
25
|
filters,
|
|
24
26
|
manufacturers,
|
|
25
27
|
excludedManufacturers,
|
|
28
|
+
includeIf,
|
|
29
|
+
excludeIf,
|
|
26
30
|
}: SupportedDeviceContentProps): JSX.Element | null {
|
|
27
31
|
const { deviceModels, isLoading, isError, refetch } = useFilteredDeviceModels(
|
|
28
32
|
{
|
|
@@ -30,6 +34,8 @@ export function SupportedDeviceContent({
|
|
|
30
34
|
filters,
|
|
31
35
|
manufacturers,
|
|
32
36
|
excludedManufacturers,
|
|
37
|
+
includeIf,
|
|
38
|
+
excludeIf,
|
|
33
39
|
}
|
|
34
40
|
)
|
|
35
41
|
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { Dispatch, SetStateAction } from 'react'
|
|
2
2
|
|
|
3
3
|
import { FilterCategoryMenu } from 'lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js'
|
|
4
|
-
import
|
|
4
|
+
import {
|
|
5
|
+
type DeviceModelFilters,
|
|
6
|
+
supportedIntegrationSupportLevels,
|
|
7
|
+
} from 'lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js'
|
|
5
8
|
import { Button } from 'lib/ui/Button.js'
|
|
6
9
|
import { Menu } from 'lib/ui/Menu/Menu.js'
|
|
7
10
|
import { SearchTextField } from 'lib/ui/TextField/SearchTextField.js'
|
|
@@ -28,6 +31,9 @@ export function SupportedDeviceFilterArea({
|
|
|
28
31
|
const appliedFiltersCount = getAppliedFilterCount(filters)
|
|
29
32
|
|
|
30
33
|
const { manufacturers: manufacturersData } = useFilteredManufacturers({
|
|
34
|
+
integrationSupportLevels: filters.supportedOnly
|
|
35
|
+
? supportedIntegrationSupportLevels
|
|
36
|
+
: null,
|
|
31
37
|
manufacturers,
|
|
32
38
|
excludedManufacturers,
|
|
33
39
|
})
|
|
@@ -44,16 +50,6 @@ export function SupportedDeviceFilterArea({
|
|
|
44
50
|
|
|
45
51
|
const allLabel = t.all
|
|
46
52
|
|
|
47
|
-
const options =
|
|
48
|
-
manufacturersData
|
|
49
|
-
?.filter((manufacturer) => {
|
|
50
|
-
if (filters.supportedOnly) {
|
|
51
|
-
return ['stable', 'beta'].includes(manufacturer.integration)
|
|
52
|
-
}
|
|
53
|
-
return true
|
|
54
|
-
})
|
|
55
|
-
?.map((manufacturer) => manufacturer.display_name) ?? []
|
|
56
|
-
|
|
57
53
|
return (
|
|
58
54
|
<div className='seam-supported-device-table-filter-area'>
|
|
59
55
|
<div className='seam-deliberate-block' />
|
|
@@ -79,7 +75,11 @@ export function SupportedDeviceFilterArea({
|
|
|
79
75
|
<FilterCategoryMenu
|
|
80
76
|
label={t.manufacturer}
|
|
81
77
|
allLabel={allLabel}
|
|
82
|
-
options={
|
|
78
|
+
options={
|
|
79
|
+
manufacturersData?.map(
|
|
80
|
+
(manufacturer) => manufacturer.display_name
|
|
81
|
+
) ?? []
|
|
82
|
+
}
|
|
83
83
|
onSelect={(manufacturer: string) => {
|
|
84
84
|
setFilters((filters) => ({
|
|
85
85
|
...filters,
|
|
@@ -8,6 +8,8 @@ export const props: ElementProps<SupportedDeviceTableProps> = {
|
|
|
8
8
|
disableFilter: 'boolean',
|
|
9
9
|
manufacturers: 'array',
|
|
10
10
|
excludedManufacturers: 'array',
|
|
11
|
+
includeIf: 'array',
|
|
12
|
+
excludeIf: 'array',
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export { SupportedDeviceTable as Component } from './SupportedDeviceTable.js'
|
|
@@ -15,6 +15,8 @@ export interface SupportedDeviceTableProps extends CommonProps {
|
|
|
15
15
|
disableFilter?: boolean
|
|
16
16
|
manufacturers?: string[] | null
|
|
17
17
|
excludedManufacturers?: string[]
|
|
18
|
+
includeIf?: string[] | null
|
|
19
|
+
excludeIf?: string[]
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export const NestedSupportedDeviceTable =
|
|
@@ -24,6 +26,8 @@ export function SupportedDeviceTable({
|
|
|
24
26
|
disableFilter = false,
|
|
25
27
|
manufacturers = null,
|
|
26
28
|
excludedManufacturers = [],
|
|
29
|
+
includeIf = null,
|
|
30
|
+
excludeIf = [],
|
|
27
31
|
className,
|
|
28
32
|
}: SupportedDeviceTableProps = {}): JSX.Element {
|
|
29
33
|
useComponentTelemetry('SupportedDeviceTable')
|
|
@@ -59,6 +63,8 @@ export function SupportedDeviceTable({
|
|
|
59
63
|
filters={filters}
|
|
60
64
|
manufacturers={manufacturers}
|
|
61
65
|
excludedManufacturers={excludedManufacturers}
|
|
66
|
+
includeIf={includeIf}
|
|
67
|
+
excludeIf={excludeIf}
|
|
62
68
|
/>
|
|
63
69
|
</div>
|
|
64
70
|
)
|
|
@@ -37,7 +37,11 @@ export function useDeviceModel(
|
|
|
37
37
|
},
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
return {
|
|
40
|
+
return {
|
|
41
|
+
...rest,
|
|
42
|
+
// @ts-expect-error: Upstream mismatch between type and route type.
|
|
43
|
+
deviceModel: data,
|
|
44
|
+
}
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
type DeviceModelsGetParams = RouteRequestParams<'/v1/device_models/get'>
|
|
@@ -49,7 +49,11 @@ export function useDeviceModels(
|
|
|
49
49
|
},
|
|
50
50
|
})
|
|
51
51
|
|
|
52
|
-
return {
|
|
52
|
+
return {
|
|
53
|
+
...rest,
|
|
54
|
+
// @ts-expect-error: Upstream mismatch between type and route type.
|
|
55
|
+
deviceModels: data,
|
|
56
|
+
}
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
type DeviceModelsListParams = RouteRequestParams<'/v1/device_models/list'>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'
|
|
2
|
+
|
|
1
3
|
import {
|
|
2
4
|
useDeviceModels,
|
|
3
5
|
type UseDeviceModelsParams,
|
|
@@ -10,26 +12,47 @@ export interface DeviceModelFilters {
|
|
|
10
12
|
manufacturer: string | null
|
|
11
13
|
}
|
|
12
14
|
|
|
15
|
+
export const supportedIntegrationSupportLevels: ManufacturerIntegrationSupportLevel[] =
|
|
16
|
+
['stable', 'beta']
|
|
17
|
+
|
|
13
18
|
export const useFilteredDeviceModels = ({
|
|
14
19
|
filterValue,
|
|
15
20
|
filters,
|
|
21
|
+
includeIf,
|
|
22
|
+
excludeIf,
|
|
16
23
|
...manufacturersParams
|
|
17
24
|
}: {
|
|
18
25
|
filterValue: string
|
|
19
26
|
filters: DeviceModelFilters
|
|
20
27
|
manufacturers: string[] | null
|
|
21
28
|
excludedManufacturers: string[]
|
|
29
|
+
includeIf: string[] | null
|
|
30
|
+
excludeIf: string[]
|
|
22
31
|
}): ReturnType<typeof useDeviceModels> => {
|
|
23
|
-
const { manufacturers } = useFilteredManufacturers(
|
|
32
|
+
const { manufacturers } = useFilteredManufacturers({
|
|
33
|
+
...manufacturersParams,
|
|
34
|
+
integrationSupportLevels: filters.supportedOnly
|
|
35
|
+
? supportedIntegrationSupportLevels
|
|
36
|
+
: null,
|
|
37
|
+
})
|
|
24
38
|
|
|
25
39
|
const params: UseDeviceModelsParams = {}
|
|
26
40
|
|
|
41
|
+
if (excludeIf.length > 0) {
|
|
42
|
+
params.exclude_if = excludeIf
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// UPSTREAM: API does not parse zero-length arrays correctly.
|
|
46
|
+
if (includeIf != null && includeIf.length > 0) {
|
|
47
|
+
params.include_if = includeIf
|
|
48
|
+
}
|
|
49
|
+
|
|
27
50
|
if (filterValue.trim() !== '') {
|
|
28
51
|
params.text_search = filterValue.trim()
|
|
29
52
|
}
|
|
30
53
|
|
|
31
54
|
if (filters.supportedOnly) {
|
|
32
|
-
params.
|
|
55
|
+
params.integration_support_levels = supportedIntegrationSupportLevels
|
|
33
56
|
}
|
|
34
57
|
|
|
35
58
|
if (filters.manufacturer !== null) {
|
|
@@ -50,13 +73,17 @@ export const useFilteredDeviceModels = ({
|
|
|
50
73
|
|
|
51
74
|
return {
|
|
52
75
|
...rest,
|
|
53
|
-
deviceModels:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
deviceModels:
|
|
77
|
+
// UPSTREAM: API does not parse zero-length arrays correctly.
|
|
78
|
+
includeIf?.length === 0
|
|
79
|
+
? []
|
|
80
|
+
: deviceModels?.filter(
|
|
81
|
+
(deviceModel) =>
|
|
82
|
+
manufacturers?.some(
|
|
83
|
+
(manufacturer) =>
|
|
84
|
+
deviceModel.manufacturer.manufacturer_id ===
|
|
85
|
+
manufacturer.manufacturer_id
|
|
86
|
+
)
|
|
87
|
+
),
|
|
61
88
|
}
|
|
62
89
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'
|
|
2
|
+
|
|
1
3
|
import { useManufacturers } from 'lib/seam/components/SupportedDeviceTable/use-manufacturers.js'
|
|
2
4
|
|
|
3
5
|
interface Params {
|
|
4
6
|
manufacturers: string[] | null
|
|
5
7
|
excludedManufacturers: string[]
|
|
8
|
+
integrationSupportLevels: ManufacturerIntegrationSupportLevel[] | null
|
|
6
9
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
export const useFilteredManufacturers = ({
|
|
12
|
+
integrationSupportLevels,
|
|
13
|
+
...params
|
|
14
|
+
}: Params): ReturnType<typeof useManufacturers> => {
|
|
10
15
|
const { manufacturers, ...rest } = useManufacturers({
|
|
16
|
+
integration_support_levels: integrationSupportLevels ?? undefined,
|
|
11
17
|
liqe_query: createLiqeQuery(params),
|
|
12
18
|
})
|
|
13
19
|
|
|
@@ -22,7 +28,9 @@ export const useFilteredManufacturers = (
|
|
|
22
28
|
export const createLiqeQuery = ({
|
|
23
29
|
manufacturers,
|
|
24
30
|
excludedManufacturers,
|
|
25
|
-
}: Params
|
|
31
|
+
}: Pick<Params, 'manufacturers' | 'excludedManufacturers'>):
|
|
32
|
+
| string
|
|
33
|
+
| undefined => {
|
|
26
34
|
if (
|
|
27
35
|
(manufacturers?.some(isInvalidInput) ?? false) ||
|
|
28
36
|
excludedManufacturers.some(isInvalidInput)
|
package/src/lib/version.ts
CHANGED