zigbee2mqtt-windfront 2.10.1 → 2.11.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.
- package/dist/assets/{About-CY4EExx4.js → About-CIMFNPGi.js} +1 -1
- package/dist/assets/About-CIMFNPGi.js.br +0 -0
- package/dist/assets/{ActivityPage-CYZnxIxe.js → ActivityPage-CigYNDtC.js} +1 -1
- package/dist/assets/ActivityPage-CigYNDtC.js.br +0 -0
- package/dist/assets/{Bind-BYgD6S99.js → Bind-D1Qo_dQm.js} +1 -1
- package/dist/assets/Bind-D1Qo_dQm.js.br +0 -0
- package/dist/assets/{BindRow-HDG6qvx9.js → BindRow-DQ33rQcP.js} +1 -1
- package/dist/assets/BindRow-DQ33rQcP.js.br +0 -0
- package/dist/assets/{BindingsPage-BeaWy-YQ.js → BindingsPage-Dm8NgXh0.js} +1 -1
- package/dist/assets/BindingsPage-Dm8NgXh0.js.br +0 -0
- package/dist/assets/Bridge-DiysZ3uT.js +1 -0
- package/dist/assets/Bridge-DiysZ3uT.js.br +0 -0
- package/dist/assets/{CheckboxField-db3_5uYc.js → CheckboxField-CBqKSuiA.js} +1 -1
- package/dist/assets/CheckboxField-CBqKSuiA.js.br +0 -0
- package/dist/assets/{ClusterSinglePicker-BAlHhNvH.js → ClusterSinglePicker-nUKjaZbF.js} +1 -1
- package/dist/assets/ClusterSinglePicker-nUKjaZbF.js.br +0 -0
- package/dist/assets/{Clusters-jMWrMy5T.js → Clusters-DBRCRqeY.js} +1 -1
- package/dist/assets/Clusters-DBRCRqeY.js.br +0 -0
- package/dist/assets/{ContributePage-BeTUHiU8.js → ContributePage-DOac0JPU.js} +1 -1
- package/dist/assets/ContributePage-DOac0JPU.js.br +0 -0
- package/dist/assets/{Dashboard-CuurGX1a.js → Dashboard-Bf5UIHBl.js} +1 -1
- package/dist/assets/Dashboard-Bf5UIHBl.js.br +0 -0
- package/dist/assets/{DashboardFeatureWrapper-ClxxGPb8.js → DashboardFeatureWrapper-C5cTX2Yd.js} +1 -1
- package/dist/assets/DashboardFeatureWrapper-C5cTX2Yd.js.br +0 -0
- package/dist/assets/{DebouncedInput-B0pwTRBI.js → DebouncedInput-Bm_sFuTC.js} +1 -1
- package/dist/assets/DebouncedInput-Bm_sFuTC.js.br +0 -0
- package/dist/assets/{DevConsole-06g74TuE.js → DevConsole-D6I2XUci.js} +3 -3
- package/dist/assets/DevConsole-D6I2XUci.js.br +0 -0
- package/dist/assets/{DevConsole-BrQMTzyI.js → DevConsole-DQuSRed4.js} +1 -1
- package/dist/assets/DevConsole-DQuSRed4.js.br +0 -0
- package/dist/assets/{DeviceCard-BKg-xoD3.js → DeviceCard-Jno_2bki.js} +1 -1
- package/dist/assets/DeviceCard-Jno_2bki.js.br +0 -0
- package/dist/assets/{DeviceImage-DIrJd7Dp.js → DeviceImage-DAL8fj7m.js} +1 -1
- package/dist/assets/DeviceImage-DAL8fj7m.js.br +0 -0
- package/dist/assets/{DeviceInfo-B1ZJQOyg.js → DeviceInfo-Caa1NomM.js} +1 -1
- package/dist/assets/DeviceInfo-Caa1NomM.js.br +0 -0
- package/dist/assets/{DevicePage-YHmN6FuA.js → DevicePage-BMoIoLGR.js} +2 -2
- package/dist/assets/DevicePage-BMoIoLGR.js.br +0 -0
- package/dist/assets/{DevicePicker-DQwwrImD.js → DevicePicker-BQE6PtnK.js} +1 -1
- package/dist/assets/DevicePicker-BQE6PtnK.js.br +0 -0
- package/dist/assets/{DeviceSettings-D6eYY3r_.js → DeviceSettings-DegsXFov.js} +1 -1
- package/dist/assets/DeviceSettings-DegsXFov.js.br +0 -0
- package/dist/assets/{DeviceSpecificSettings-DG6CBb9Z.js → DeviceSpecificSettings-DaGeF-aG.js} +1 -1
- package/dist/assets/DeviceSpecificSettings-DaGeF-aG.js.br +0 -0
- package/dist/assets/{Devices-C7M8BLsL.js → Devices-DB35XIGg.js} +1 -1
- package/dist/assets/Devices-DB35XIGg.js.br +0 -0
- package/dist/assets/{DevicesPage-BXyYU4kS.js → DevicesPage-Bzc6k0_l.js} +1 -1
- package/dist/assets/DevicesPage-Bzc6k0_l.js.br +0 -0
- package/dist/assets/{DisplayValue-DgCI-hkG.js → DisplayValue-BX0bcoSg.js} +1 -1
- package/dist/assets/DisplayValue-BX0bcoSg.js.br +0 -0
- package/dist/assets/{Docs-PqmDFPMQ.js → Docs-CHLN3mCs.js} +1 -1
- package/dist/assets/Docs-CHLN3mCs.js.br +0 -0
- package/dist/assets/{Duration-CmByvdMZ.js → Duration-2jHbVRFA.js} +1 -1
- package/dist/assets/Duration-2jHbVRFA.js.br +0 -0
- package/dist/assets/{EndpointPicker-BPzrF6Hq.js → EndpointPicker-DlYDImDR.js} +1 -1
- package/dist/assets/EndpointPicker-DlYDImDR.js.br +0 -0
- package/dist/assets/{Exposes-BDrGV1Y2.js → Exposes--JwyB8hM.js} +1 -1
- package/dist/assets/Exposes--JwyB8hM.js.br +5 -0
- package/dist/assets/{Exposes-BvsSU1-c.js → Exposes-A_bjwSNo.js} +1 -1
- package/dist/assets/Exposes-A_bjwSNo.js.br +0 -0
- package/dist/assets/{FeatureWrapper-C6zVaw0q.js → FeatureWrapper-5iLBJB0_.js} +1 -1
- package/dist/assets/FeatureWrapper-5iLBJB0_.js.br +0 -0
- package/dist/assets/{FrontendSettingsPage-B_XBR41f.js → FrontendSettingsPage-Da6QFYJN.js} +1 -1
- package/dist/assets/FrontendSettingsPage-Da6QFYJN.js.br +0 -0
- package/dist/assets/{GroupPage-DdI6iPEN.js → GroupPage-odyho6Av.js} +2 -2
- package/dist/assets/GroupPage-odyho6Av.js.br +0 -0
- package/dist/assets/{GroupSettings-WDasoIBp.js → GroupSettings-BvE_j6Ig.js} +1 -1
- package/dist/assets/GroupSettings-BvE_j6Ig.js.br +0 -0
- package/dist/assets/{Groups-Dz8pQjgW.js → Groups-BY6bIpuf.js} +1 -1
- package/dist/assets/Groups-BY6bIpuf.js.br +0 -0
- package/dist/assets/{GroupsPage-xTIh-yTu.js → GroupsPage-DFpEE6jq.js} +1 -1
- package/dist/assets/GroupsPage-DFpEE6jq.js.br +0 -0
- package/dist/assets/{Health-nubHfgME.js → Health-BY-XPRlA.js} +1 -1
- package/dist/assets/Health-BY-XPRlA.js.br +0 -0
- package/dist/assets/{HomePage-CX6-kXdp.js → HomePage-DgOT8oRF.js} +1 -1
- package/dist/assets/HomePage-DgOT8oRF.js.br +0 -0
- package/dist/assets/{IndeterminateCheckbox-BH2nO7r_.js → IndeterminateCheckbox-CJakcLtu.js} +1 -1
- package/dist/assets/IndeterminateCheckbox-CJakcLtu.js.br +0 -0
- package/dist/assets/InfoAlert-5ZrJ0C3a.js +1 -0
- package/dist/assets/InfoAlert-5ZrJ0C3a.js.br +0 -0
- package/dist/assets/{InputField--n4h7Oo1.js → InputField-B_6Ee4_m.js} +1 -1
- package/dist/assets/InputField-B_6Ee4_m.js.br +0 -0
- package/dist/assets/{Json-DqjbeMEd.js → Json-B3uGPKRz.js} +1 -1
- package/dist/assets/Json-B3uGPKRz.js.br +0 -0
- package/dist/assets/{LastSeen-r8nkwasK.js → LastSeen-YOzeyMXj.js} +1 -1
- package/dist/assets/LastSeen-YOzeyMXj.js.br +0 -0
- package/dist/assets/{LogsPage-OKmgRhuE.js → LogsPage-l6ly5tLz.js} +1 -1
- package/dist/assets/LogsPage-l6ly5tLz.js.br +0 -0
- package/dist/assets/Lqi-BLanrDho.js +1 -0
- package/dist/assets/Lqi-BLanrDho.js.br +0 -0
- package/dist/assets/{NetworkPage-CriLAS_9.js → NetworkPage-Dby3Si-G.js} +2 -2
- package/dist/assets/NetworkPage-Dby3Si-G.js.br +0 -0
- package/dist/assets/{NumberField-94JP5juN.js → NumberField-DL6vGGqp.js} +1 -1
- package/dist/assets/NumberField-DL6vGGqp.js.br +0 -0
- package/dist/assets/{OtaControlGroup-Kb3MQRwH.js → OtaControlGroup-B5IsRAv6.js} +1 -1
- package/dist/assets/OtaControlGroup-B5IsRAv6.js.br +0 -0
- package/dist/assets/{OtaPage-B9tZr8Eg.js → OtaPage-DFPpzVNN.js} +1 -1
- package/dist/assets/OtaPage-DFPpzVNN.js.br +0 -0
- package/dist/assets/{PowerSource-DzZNHWU_.js → PowerSource-B4Kn6y4z.js} +1 -1
- package/dist/assets/PowerSource-B4Kn6y4z.js.br +0 -0
- package/dist/assets/{RawNetworkData-BWYBe4u5.js → RawNetworkData-BHo8rjbA.js} +3 -3
- package/dist/assets/RawNetworkData-BHo8rjbA.js.br +0 -0
- package/dist/assets/{RawNetworkMap-C67YpMgb.js → RawNetworkMap-CCKpgf84.js} +1 -1
- package/dist/assets/RawNetworkMap-CCKpgf84.js.br +0 -0
- package/dist/assets/{RecallRemove-CslZZc3U.js → RecallRemove-B8kK-jlT.js} +1 -1
- package/dist/assets/RecallRemove-B8kK-jlT.js.br +0 -0
- package/dist/assets/{RemoveDeviceModal-BaLC-Bwj.js → RemoveDeviceModal-YYA5ncWd.js} +1 -1
- package/dist/assets/RemoveDeviceModal-YYA5ncWd.js.br +0 -0
- package/dist/assets/{Reporting-CmcpQXHf.js → Reporting-B0uOboKx.js} +1 -1
- package/dist/assets/Reporting-B0uOboKx.js.br +0 -0
- package/dist/assets/ReportingPage-B9RoDznx.js +1 -0
- package/dist/assets/ReportingPage-B9RoDznx.js.br +0 -0
- package/dist/assets/ReportingRow-EvLhObhq.js +1 -0
- package/dist/assets/ReportingRow-EvLhObhq.js.br +0 -0
- package/dist/assets/{Scene-CLP83ZzX.js → Scene-O-LkPbzm.js} +1 -1
- package/dist/assets/Scene-O-LkPbzm.js.br +0 -0
- package/dist/assets/{SelectField-B-HRxZRq.js → SelectField-BkTP72p-.js} +1 -1
- package/dist/assets/SelectField-BkTP72p-.js.br +0 -0
- package/dist/assets/{Settings-B9kIyGv-.js → Settings-DJkLsRQz.js} +1 -1
- package/dist/assets/Settings-DJkLsRQz.js.br +0 -0
- package/dist/assets/{SettingsList-BShv79DR.js → SettingsList-dKrzLqZS.js} +1 -1
- package/dist/assets/SettingsList-dKrzLqZS.js.br +0 -0
- package/dist/assets/SettingsPage-BLoqdo0J.js +2 -0
- package/dist/assets/SettingsPage-BLoqdo0J.js.br +7 -0
- package/dist/assets/State-D2HVcJjs.js +1 -0
- package/dist/assets/State-D2HVcJjs.js.br +0 -0
- package/dist/assets/{Table-DYUiMUns.js → Table-DrSTNSTO.js} +1 -1
- package/dist/assets/Table-DrSTNSTO.js.br +0 -0
- package/dist/assets/{TextareaField-DQE1lt4V.js → TextareaField-SVbSFlbf.js} +1 -1
- package/dist/assets/TextareaField-SVbSFlbf.js.br +0 -0
- package/dist/assets/{TimeAgo-DRUxTJGI.js → TimeAgo-CeXmHrG4.js} +1 -1
- package/dist/assets/TimeAgo-CeXmHrG4.js.br +0 -0
- package/dist/assets/{Tools-CpMT43pX.js → Tools-xskx-V5_.js} +1 -1
- package/dist/assets/Tools-xskx-V5_.js.br +0 -0
- package/dist/assets/{TouchlinkPage-C9YC6NGa.js → TouchlinkPage-BTCkpEsl.js} +1 -1
- package/dist/assets/TouchlinkPage-BTCkpEsl.js.br +0 -0
- package/dist/assets/{VendorLink-Bh6ogA8f.js → VendorLink-CYBqr3tj.js} +1 -1
- package/dist/assets/VendorLink-CYBqr3tj.js.br +0 -0
- package/dist/assets/{_createCompounder-DFCi93dH.js → _createCompounder-JrZUBxnL.js} +1 -1
- package/dist/assets/_createCompounder-JrZUBxnL.js.br +0 -0
- package/dist/assets/{floating-ui.react-Dl7Q3Gga.js → floating-ui.react-CjPmCA_-.js} +1 -1
- package/dist/assets/floating-ui.react-CjPmCA_-.js.br +0 -0
- package/dist/assets/index-C1LTvZEM.js +1 -0
- package/dist/assets/index-C1LTvZEM.js.br +0 -0
- package/dist/assets/{index-CagYUo5R.js → index-RbRX26AQ.js} +1 -1
- package/dist/assets/index-RbRX26AQ.js.br +0 -0
- package/dist/assets/index-VJpwYvBU.js +582 -0
- package/dist/assets/index-VJpwYvBU.js.br +0 -0
- package/dist/assets/{isObjectLike-DfZktKQt.js → isObjectLike-CKrHmw-v.js} +1 -1
- package/dist/assets/isObjectLike-CKrHmw-v.js.br +0 -0
- package/dist/assets/{jszip.min-CEZ7V-w1.js → jszip.min-BPkSiqcM.js} +2 -2
- package/dist/assets/jszip.min-BPkSiqcM.js.br +0 -0
- package/dist/assets/{merge-GssuUg4x.js → merge-Bz49Xzes.js} +1 -1
- package/dist/assets/merge-Bz49Xzes.js.br +0 -0
- package/dist/assets/{oui-ZzrT1VIw.js → oui-EFTCc7c_.js} +1 -1
- package/dist/assets/oui-EFTCc7c_.js.br +0 -0
- package/dist/assets/{react-select.esm-DdGv14Tx.js → react-select.esm-DM_HiCZr.js} +1 -1
- package/dist/assets/react-select.esm-DM_HiCZr.js.br +0 -0
- package/dist/assets/snakeCase-BPMTuOlK.js +1 -0
- package/dist/assets/snakeCase-BPMTuOlK.js.br +0 -0
- package/dist/assets/{startCase-BOfTEHX8.js → startCase-DNIChZAc.js} +1 -1
- package/dist/assets/startCase-DNIChZAc.js.br +0 -0
- package/dist/assets/useColumnCount-BNJ8FuYE.js +1 -0
- package/dist/assets/useColumnCount-BNJ8FuYE.js.br +0 -0
- package/dist/assets/{useSearch-C9nDWp9J.js → useSearch-yONxWjVC.js} +1 -1
- package/dist/assets/useSearch-yONxWjVC.js.br +0 -0
- package/dist/assets/{useTable-DtdBoC1d.js → useTable-BnWLFbU3.js} +2 -2
- package/dist/assets/useTable-BnWLFbU3.js.br +0 -0
- package/dist/index.html +1 -1
- package/dist/index.html.br +0 -0
- package/package.json +12 -12
- package/dist/assets/About-CY4EExx4.js.br +0 -0
- package/dist/assets/ActivityPage-CYZnxIxe.js.br +0 -0
- package/dist/assets/Bind-BYgD6S99.js.br +0 -0
- package/dist/assets/BindRow-HDG6qvx9.js.br +0 -0
- package/dist/assets/BindingsPage-BeaWy-YQ.js.br +0 -0
- package/dist/assets/Bridge-BAfZtCBt.js +0 -1
- package/dist/assets/Bridge-BAfZtCBt.js.br +0 -0
- package/dist/assets/CheckboxField-db3_5uYc.js.br +0 -0
- package/dist/assets/ClusterSinglePicker-BAlHhNvH.js.br +0 -0
- package/dist/assets/Clusters-jMWrMy5T.js.br +0 -0
- package/dist/assets/ContributePage-BeTUHiU8.js.br +0 -0
- package/dist/assets/Dashboard-CuurGX1a.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-ClxxGPb8.js.br +0 -0
- package/dist/assets/DebouncedInput-B0pwTRBI.js.br +0 -0
- package/dist/assets/DevConsole-06g74TuE.js.br +0 -0
- package/dist/assets/DevConsole-BrQMTzyI.js.br +0 -0
- package/dist/assets/DeviceCard-BKg-xoD3.js.br +0 -0
- package/dist/assets/DeviceImage-DIrJd7Dp.js.br +0 -0
- package/dist/assets/DeviceInfo-B1ZJQOyg.js.br +0 -0
- package/dist/assets/DevicePage-YHmN6FuA.js.br +0 -0
- package/dist/assets/DevicePicker-DQwwrImD.js.br +0 -0
- package/dist/assets/DeviceSettings-D6eYY3r_.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-DG6CBb9Z.js.br +0 -0
- package/dist/assets/Devices-C7M8BLsL.js.br +0 -0
- package/dist/assets/DevicesPage-BXyYU4kS.js.br +0 -0
- package/dist/assets/DisplayValue-DgCI-hkG.js.br +0 -0
- package/dist/assets/Docs-PqmDFPMQ.js.br +0 -0
- package/dist/assets/Duration-CmByvdMZ.js.br +0 -0
- package/dist/assets/EndpointPicker-BPzrF6Hq.js.br +0 -0
- package/dist/assets/Exposes-BDrGV1Y2.js.br +0 -0
- package/dist/assets/Exposes-BvsSU1-c.js.br +0 -0
- package/dist/assets/FeatureWrapper-C6zVaw0q.js.br +0 -0
- package/dist/assets/FrontendSettingsPage-B_XBR41f.js.br +0 -0
- package/dist/assets/GroupPage-DdI6iPEN.js.br +0 -0
- package/dist/assets/GroupSettings-WDasoIBp.js.br +0 -0
- package/dist/assets/Groups-Dz8pQjgW.js.br +0 -0
- package/dist/assets/GroupsPage-xTIh-yTu.js.br +0 -0
- package/dist/assets/Health-nubHfgME.js.br +0 -0
- package/dist/assets/HomePage-CX6-kXdp.js.br +0 -0
- package/dist/assets/IndeterminateCheckbox-BH2nO7r_.js.br +0 -2
- package/dist/assets/InfoAlert-7FqdBwBc.js +0 -1
- package/dist/assets/InfoAlert-7FqdBwBc.js.br +0 -0
- package/dist/assets/InputField--n4h7Oo1.js.br +0 -0
- package/dist/assets/Json-DqjbeMEd.js.br +0 -0
- package/dist/assets/LastSeen-r8nkwasK.js.br +0 -0
- package/dist/assets/LogsPage-OKmgRhuE.js.br +0 -0
- package/dist/assets/Lqi-DTCcmxmi.js +0 -1
- package/dist/assets/Lqi-DTCcmxmi.js.br +0 -0
- package/dist/assets/NetworkPage-CriLAS_9.js.br +0 -0
- package/dist/assets/NumberField-94JP5juN.js.br +0 -0
- package/dist/assets/OtaControlGroup-Kb3MQRwH.js.br +0 -0
- package/dist/assets/OtaPage-B9tZr8Eg.js.br +0 -0
- package/dist/assets/PowerSource-DzZNHWU_.js.br +0 -0
- package/dist/assets/RawNetworkData-BWYBe4u5.js.br +0 -0
- package/dist/assets/RawNetworkMap-C67YpMgb.js.br +0 -0
- package/dist/assets/RecallRemove-CslZZc3U.js.br +0 -0
- package/dist/assets/RemoveDeviceModal-BaLC-Bwj.js.br +0 -0
- package/dist/assets/Reporting-CmcpQXHf.js.br +0 -0
- package/dist/assets/ReportingPage-De5m5Z6j.js +0 -1
- package/dist/assets/ReportingPage-De5m5Z6j.js.br +0 -0
- package/dist/assets/ReportingRow-BUz3Yeni.js +0 -1
- package/dist/assets/ReportingRow-BUz3Yeni.js.br +0 -0
- package/dist/assets/Scene-CLP83ZzX.js.br +0 -0
- package/dist/assets/SelectField-B-HRxZRq.js.br +0 -0
- package/dist/assets/Settings-B9kIyGv-.js.br +0 -0
- package/dist/assets/SettingsList-BShv79DR.js.br +0 -0
- package/dist/assets/SettingsPage-BEj3EHqE.js +0 -2
- package/dist/assets/SettingsPage-BEj3EHqE.js.br +0 -0
- package/dist/assets/State-Ch1G2yef.js +0 -1
- package/dist/assets/State-Ch1G2yef.js.br +0 -0
- package/dist/assets/Table-DYUiMUns.js.br +0 -0
- package/dist/assets/TextareaField-DQE1lt4V.js.br +0 -0
- package/dist/assets/TimeAgo-DRUxTJGI.js.br +0 -0
- package/dist/assets/Tools-CpMT43pX.js.br +0 -0
- package/dist/assets/TouchlinkPage-C9YC6NGa.js.br +0 -0
- package/dist/assets/VendorLink-Bh6ogA8f.js.br +0 -0
- package/dist/assets/_createCompounder-DFCi93dH.js.br +0 -0
- package/dist/assets/floating-ui.react-Dl7Q3Gga.js.br +0 -0
- package/dist/assets/index-C6XRflBd.js +0 -1
- package/dist/assets/index-C6XRflBd.js.br +0 -0
- package/dist/assets/index-CagYUo5R.js.br +0 -2
- package/dist/assets/index-JmF9gCML.js +0 -582
- package/dist/assets/index-JmF9gCML.js.br +0 -0
- package/dist/assets/isObjectLike-DfZktKQt.js.br +0 -7
- package/dist/assets/jszip.min-CEZ7V-w1.js.br +0 -0
- package/dist/assets/merge-GssuUg4x.js.br +0 -0
- package/dist/assets/oui-ZzrT1VIw.js.br +0 -0
- package/dist/assets/react-select.esm-DdGv14Tx.js.br +0 -0
- package/dist/assets/snakeCase-CKaYIYMS.js +0 -1
- package/dist/assets/snakeCase-CKaYIYMS.js.br +0 -0
- package/dist/assets/startCase-BOfTEHX8.js.br +0 -0
- package/dist/assets/useColumnCount-BRKUnjZh.js +0 -1
- package/dist/assets/useColumnCount-BRKUnjZh.js.br +0 -0
- package/dist/assets/useSearch-C9nDWp9J.js.br +0 -0
- package/dist/assets/useTable-DtdBoC1d.js.br +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as n}from"./index-
|
|
1
|
+
import{r,j as n}from"./index-VJpwYvBU.js";const m=r.memo(({obj:e,lines:s})=>{const t=JSON.stringify(e,null,4),a=s??Math.max(10,(t.match(/\n/g)||"").length+1);return n.jsx("textarea",{className:"textarea w-full",readOnly:!0,rows:a,value:t})});export{m as J};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,u as c,j as r}from"./index-
|
|
1
|
+
import{r as o,u as c,j as r}from"./index-VJpwYvBU.js";import{T as i}from"./TimeAgo-CeXmHrG4.js";const u=(e,t)=>{if(e)switch(t){case"ISO_8601":case"ISO_8601_local":return new Date(Date.parse(e));case"epoch":return new Date(e);case"disable":return;default:console.error(`Unknown last_seen type ${t}`);return}},p=o.memo(({lastSeen:e,config:t,fallback:s=null})=>{const{i18n:n}=c(),a=u(e,t);return a?r.jsx("span",{children:r.jsx(i,{datetime:a,locale:n.language})}):s});export{p as L};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as k,E,G as A,u as _,a as r,r as t,j as s,N as T,M,A as G,J as F,S as D,a9 as O,F as h,
|
|
1
|
+
import{C as k,E,G as A,u as _,a as r,r as t,j as s,N as T,M,A as G,J as F,S as D,a9 as O,F as h,ar as C,I as v,as as P,s as B,at as L,au as H,B as N,f as V,av as z}from"./index-VJpwYvBU.js";import{C as $}from"./CheckboxField-CBqKSuiA.js";import{D as q}from"./DebouncedInput-Bm_sFuTC.js";import{S as p}from"./SelectField-BkTP72p-.js";import{u as R}from"./useSearch-yONxWjVC.js";import"./envs-CRUy-_iG.js";const U={error:"bg-error text-error-content",warning:"bg-warning text-warning-content",info:"bg-info text-info-content",debug:"bg-accent text-accent-content opacity-50"},J=t.memo(({sourceIdx:l})=>{const{t:a}=_(["logs","common"]),u=r(v(e=>e.bridgeInfo[l].config.advanced.log_level)),o=r(v(e=>e.logs[l])),c=r(e=>e.logsLimit),x=r(e=>e.setLogsLimit),n=r(e=>e.clearLogs),[m,i,j]=R(),[d,S]=t.useState("all"),[f,w]=t.useState(!1),b=t.useMemo(()=>o.filter(e=>(d==="all"||e.level===d)&&(f||i.length===0||e.message.toLowerCase().includes(i))),[i,f,d,o]),y=t.useCallback((e,g)=>i.length>0&&e.toLowerCase().includes(i)?U[g]:P[g],[i]),I=t.useCallback(async e=>{await B(l,"bridge/request/options",{options:{advanced:{log_level:e}}})},[l]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-top",children:[s.jsxs(p,{name:"log_level",label:a(e=>e.show_only,{ns:"common"}),value:d,onChange:e=>S(e.target.value),className:"select select-sm",children:[s.jsx("option",{value:"all",children:"all"},"all"),L.map(e=>s.jsx("option",{value:e,children:e},e))]}),s.jsxs("fieldset",{className:"fieldset",children:[s.jsx("legend",{className:"fieldset-legend",children:a(e=>e.filter_by_text)}),s.jsxs("div",{className:"join",children:[s.jsxs("label",{className:"input input-sm w-64 join-item",children:[s.jsx(h,{icon:H}),s.jsx(q,{onChange:j,placeholder:a(e=>e.search,{ns:"common"}),value:m})]}),s.jsx(N,{item:"",onClick:j,className:"btn btn-sm btn-square btn-warning btn-outline join-item",title:a(e=>e.clear,{ns:"common"}),disabled:m.length===0,children:s.jsx(h,{icon:V})})]})]}),s.jsx($,{name:"highlight_only",label:a(e=>e.highlight_only),checked:f,onChange:e=>w(e.target.checked),className:"checkbox checkbox-sm"}),s.jsx("fieldset",{className:"fieldset self-end",children:s.jsxs(N,{item:l,onClick:n,className:"btn btn-sm btn-outline btn-warning btn-primary",disabled:o.length===0,children:[s.jsx(h,{icon:C}),a(e=>e.clear,{ns:"common"})]})}),s.jsxs("div",{className:"ml-auto flex flex-row gap-3",children:[s.jsx(p,{name:"log_limit",label:a(e=>e.logs_limit),onChange:e=>{x(Number.parseInt(e.target.value,10))},value:c,className:"select select-sm",children:z.map(e=>s.jsx("option",{value:e,children:e},e))}),s.jsx(p,{name:"log_level_config",label:a(e=>e.log_level_config),value:u,onChange:e=>!e.target.validationMessage&&I(e.target.value),className:"select select-sm",children:L.map(e=>s.jsx("option",{value:e,children:e},e))})]})]}),s.jsx("div",{className:"mockup-code w-full mt-1 mb-3 before:content-none",children:b.length>0?b.map((e,g)=>s.jsx("pre",{"data-prefix":g,className:y(e.message,e.level),children:s.jsxs("code",{children:["[",e.timestamp,"] ",e.message]})},`${g}-${e.timestamp}`)):s.jsx("pre",{"data-prefix":"~",children:s.jsxs("code",{children:["[",new Date().toLocaleString(),"] ",a(e=>e.empty_logs_message)]})})})]})}),K=({isActive:l})=>l?"menu-active":void 0;function se(){const l=k(),{sourceIdx:a}=E(),[u,o]=A(a),{t:c}=_(["logs","common"]),x=r(n=>n.clearAllLogs);return t.useEffect(()=>{(!a||!o)&&l("/logs/0",{replace:!0})},[a,o,l]),s.jsxs(s.Fragment,{children:[s.jsx(T,{children:M&&s.jsxs("div",{className:"flex-1 flex flex-col",children:[s.jsx("div",{className:"menu menu-horizontal flex-1 pb-0",children:G.map((n,m)=>s.jsx("li",{children:s.jsx(F,{to:`/logs/${m}`,className:K,children:s.jsx(D,{idx:m,alwaysShowName:!0})})},n))}),s.jsx("div",{className:"menu menu-horizontal justify-end",children:s.jsxs(O,{onClick:x,className:"btn btn-sm btn-outline btn-warning btn-primary",title:c(n=>n.clear_all,{ns:"common"}),modalDescription:c(n=>n.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:c(n=>n.cancel,{ns:"common"}),children:[s.jsx(h,{icon:C}),c(n=>n.clear_all,{ns:"common"})]})})]})}),s.jsx(J,{sourceIdx:u},a)]})}export{se as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,j as s,F as m}from"./index-VJpwYvBU.js";import{a as n}from"./index-C1LTvZEM.js";import{D as e}from"./DisplayValue-BX0bcoSg.js";const x=r.memo(({value:o})=>{const[t,a]=n(o);return s.jsxs(s.Fragment,{children:[s.jsx(m,{icon:t,className:a})," ",s.jsx(e,{value:o,name:"linkquality"})]})});export{x as L};
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-
|
|
2
|
-
import{C as M,E,G as T,r,j as a,N as R,M as L,A as z,J as A,S as I,u as F,a as p,I as h,m as x,a3 as f,s as D,F as m,a4 as g,B as P,a5 as O,Q as B,$ as w}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-BHo8rjbA.js","./index-VJpwYvBU.js","./envs-CRUy-_iG.js","./index-DZ314hCQ.css","./useSearch-yONxWjVC.js","./DeviceImage-DAL8fj7m.js","./index-RbRX26AQ.js","./defineProperty-CegpTSss.js","./DebouncedInput-Bm_sFuTC.js","./PowerSource-B4Kn6y4z.js","./snakeCase-BPMTuOlK.js","./_createCompounder-JrZUBxnL.js","./isObjectLike-CKrHmw-v.js","./index-Bs7zcW7e.js","./Lqi-BLanrDho.js","./index-C1LTvZEM.js","./DisplayValue-BX0bcoSg.js","./RawNetworkMap-CCKpgf84.js","./merge-Bz49Xzes.js","./isObject--vsEa_js.js","./extends-CF3RwP-h.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{C as M,E,G as T,r,j as a,N as R,M as L,A as z,J as A,S as I,u as F,a as p,I as h,m as x,a3 as f,s as D,F as m,a4 as g,B as P,a5 as O,Q as B,$ as w}from"./index-VJpwYvBU.js";import{C as G}from"./CheckboxField-CBqKSuiA.js";import{S as j}from"./SelectField-BkTP72p-.js";import"./envs-CRUy-_iG.js";const V=r.lazy(async()=>await w(()=>import("./RawNetworkData-BHo8rjbA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),import.meta.url)),Y=r.lazy(async()=>await w(()=>import("./RawNetworkMap-CCKpgf84.js"),__vite__mapDeps([17,1,2,3,18,12,19,20,6,13]),import.meta.url)),q=r.memo(({sourceIdx:s})=>{const{t}=F(["network","common"]),l=p(h(e=>e.networkMapIsLoading[s])),n=p(h(e=>e.networkMap[s])),i=p(e=>e.setNetworkMap),o=p(e=>e.setNetworkMapIsLoading),[c,v]=r.useState("raw"),[d,k]=r.useState(!1),[u,N]=r.useState(x.get(f,"data")),y=r.useCallback(e=>{e.target.value&&v(e.target.value)},[]),_=r.useCallback(e=>{e.target.value&&(x.set(f,e.target.value),N(e.target.value))},[]),b=r.useCallback(e=>{k(e.target.checked)},[]),C=r.useCallback(async()=>{i(s,void 0),o(s),await D(s,"bridge/request/networkmap",{type:c,routes:d})},[s,c,d,i,o]),S=r.useMemo(()=>{if(l)return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:a.jsx("span",{className:"loading loading-infinity loading-xl"})}),a.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:t(e=>e.loading,{ns:"common"})})]});if(n)switch(n.type){case"raw":return u==="data"?a.jsx(V,{sourceIdx:s,map:n.value}):a.jsx(Y,{sourceIdx:s,map:n.value});case"graphviz":return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[a.jsx(m,{icon:g,size:"2xl"}),t(e=>e.copy_paste_on),a.jsx("a",{href:"https://dreampuf.github.io/GraphvizOnline",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://dreampuf.github.io/GraphvizOnline"}),a.jsx("a",{href:"https://edotor.net/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://edotor.net/"})]}),a.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:n.value})]});case"plantuml":return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[a.jsx(m,{icon:g,size:"2xl"}),t(e=>e.copy_paste_on),a.jsx("a",{href:"https://editor.plantuml.com/uml/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://editor.plantuml.com/uml/"}),a.jsx("a",{href:"https://www.planttext.com/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://www.planttext.com/"})]}),a.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:n.value})]})}return a.jsxs("div",{className:"flex flex-col justify-center items-center gap-2",children:[a.jsx("p",{className:"max-w-prose",children:t(e=>e.begin_info_type)}),a.jsx("p",{className:"max-w-prose",children:t(e=>e.begin_info_routes)}),a.jsx("p",{className:"max-w-prose",children:t(e=>e.begin_info_display)})]})},[s,n,l,u,t]);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex flex-row flex-wrap justify-center gap-3 mb-2",children:[a.jsxs(j,{name:"type",label:t(e=>e.type),value:c,onChange:y,children:[a.jsx("option",{value:"raw",children:t(e=>e.raw)}),a.jsx("option",{value:"graphviz",children:t(e=>e.graphviz)}),a.jsx("option",{value:"plantuml",children:t(e=>e.plantuml)})]}),a.jsx(G,{name:"enable_routes",label:t(e=>e.enable_routes),checked:d,onChange:b}),a.jsx("fieldset",{className:"fieldset self-end",children:a.jsxs(P,{className:"btn btn-outline btn-primary ms-3 me-6",onClick:C,title:t(n?e=>e.reload:e=>e.load),disabled:l,children:[n?a.jsx(m,{icon:O}):a.jsx(m,{icon:B}),t(n?e=>e.reload:e=>e.load)]})}),c==="raw"&&a.jsxs(j,{name:"display_type",label:t(e=>e.display_type),value:u,onChange:_,children:[a.jsx("option",{value:"data",children:t(e=>e.data)}),a.jsx("option",{value:"map",children:t(e=>e.map)})]})]}),S]})}),K=({isActive:s})=>s?"menu-active":void 0;function Q(){const s=M(),{sourceIdx:t}=E(),[l,n]=T(t);return r.useEffect(()=>{(!t||!n)&&s("/network/0",{replace:!0})},[t,n,s]),a.jsxs(a.Fragment,{children:[a.jsx(R,{children:L&&a.jsx("div",{className:"menu menu-horizontal flex-1",children:z.map((i,o)=>a.jsx("li",{children:a.jsx(A,{to:`/network/${o}`,className:K,children:a.jsx(I,{idx:o,alwaysShowName:!0})})},i))})}),a.jsx(q,{sourceIdx:l},t)]})}export{Q as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,j as e}from"./index-
|
|
1
|
+
import{r as s,j as e}from"./index-VJpwYvBU.js";const h=s.memo(a=>{const{label:r,detail:u,onSubmit:c,initialValue:i,minimal:m,...d}=a,[n,x]=s.useState(i);s.useEffect(()=>{x(i)},[i]);const o=s.useCallback(t=>{x(t.target.value?t.target.valueAsNumber:"")},[]),l=s.useCallback(t=>{c(n,!t.target.validationMessage)},[c,n]);return e.jsxs("fieldset",{className:"fieldset",children:[r&&e.jsxs("legend",{className:"fieldset-legend",children:[r,a.required?" *":""]}),a.min!=null&&a.max!=null&&e.jsxs("div",{className:"w-full max-w-xs",children:[e.jsx("input",{className:"range range-xs range-primary",onChange:o,onTouchEnd:l,onMouseUp:l,onKeyUp:l,...d,type:"range",value:n}),e.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[e.jsx("span",{children:a.min}),m&&e.jsx("span",{children:n}),e.jsx("span",{children:a.max})]})]}),!m&&e.jsx("input",{className:`input ${a.pattern||a.required?"validator":""}`,onChange:o,onBlur:l,...d,type:"number",value:n}),u&&e.jsx("p",{className:"label whitespace-normal",children:u})]})});export{h as N};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,u as O,j as e,ah as P,B as y,F as x,b5 as se,b6 as ne,f as re,ap as ie,b7 as le,ai as oe,aj as ce}from"./index-JmF9gCML.js";import{u as ue,g as de,d as me,c as fe,e as pe,F as _e,f as ge,o as he,a as xe,s as be,b as we}from"./floating-ui.react-Dl7Q3Gga.js";import{C as M}from"./CheckboxField-db3_5uYc.js";import{I as N}from"./InputField--n4h7Oo1.js";import{S as je}from"./SelectField-B-HRxZRq.js";const ye=new Uint8Array([30,241,238,11]),G=56,ve=a=>{if(a==null||a<0)return;const s=a.toString(16).padStart(8,"0"),n=`${s[0]}.${s[1]}`,r=Number.parseInt(s.slice(2,4),16),i=`${s[4]}.${s[5]}`,p=Number.parseInt(s.slice(6),16);return[n,r,i,p]};function ke(a,s,n){const i=(a instanceof ArrayBuffer?a:a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)).slice(s,n);return new TextDecoder("utf-8").decode(i).replace(/\0+$/g,"").trimEnd()}function Ne(a,s){if(!s.length)return 0;for(let n=0;n<=a.length-s.length;n+=1)if(Se(a,s,n))return n;return-1}function Se(a,s,n){if(n<0||n+s.length>a.length)return!1;for(let r=0;r<s.length;r+=1)if(a[n+r]!==s[r])return!1;return!0}function Ue(a){const s=Ne(new Uint8Array(a),ye);if(s===-1)throw new Error("Invalid OTA file");const n=s>0?a.slice(s):a,r=new DataView(n);if(n.byteLength<G)throw new Error("Buffer too small to contain header");const i=new Uint8Array(n.slice(0,4)),p=r.getUint16(4,!0),b=r.getUint16(6,!0),g=r.getUint16(8,!0),c=r.getUint16(10,!0),A=r.getUint16(12,!0),v=r.getUint32(14,!0),C=r.getUint16(18,!0),k=ke(n,20,52),d=r.getUint32(52,!0);let m=G,_,w,l,j;if(g&1){if(m+1>n.byteLength)throw new Error("Unexpected end of buffer while reading securityCredentialVersion");_=r.getUint8(m),m+=1}if(g&2){if(m+8>n.byteLength)throw new Error("Unexpected end of buffer while reading upgradeFileDestination");w=new Uint8Array(n.slice(m,m+8)),m+=8}if(g&4){if(m+4>n.byteLength)throw new Error("Unexpected end of buffer while reading hardware versions");l=r.getUint16(m,!0),j=r.getUint16(m+2,!0)}return{otaUpgradeFileIdentifier:i,otaHeaderVersion:p,otaHeaderLength:b,otaHeaderFieldControl:g,manufacturerCode:c,imageType:A,fileVersion:v,zigbeeStackVersion:C,otaHeaderString:k,totalImageSize:d,securityCredentialVersion:_,upgradeFileDestination:w,minimumHardwareVersion:l,maximumHardwareVersion:j}}function Ae(a){return new Promise((s,n)=>{const r=new FileReader;r.onload=()=>{if(r.result instanceof ArrayBuffer)try{const i=Ue(r.result);let p="";for(const b of new Uint8Array(r.result))p+=b.toString(16).padStart(2,"0");s([p,i])}catch(i){n(i)}else n(new Error("Unexpected read result"))},r.onerror=()=>n(r.error??new Error("Unknown file read error")),r.readAsArrayBuffer(a)})}const Ce=o.memo(({settings:a,setSettings:s,defaultSettings:n})=>{const{t:r}=O("ota");return e.jsxs("div",{className:"flex flex-col gap-0 items-center",children:[e.jsx(N,{type:"number",name:"image_block_request_timeout",label:r(i=>i.image_block_request_timeout),min:1e4,max:2147483647,value:a.image_block_request_timeout??"",placeholder:`${n.image_block_request_timeout??15e4}`,onChange:i=>s({...a,image_block_request_timeout:i.target.value?i.target.valueAsNumber:void 0})}),e.jsx(N,{type:"number",name:"image_block_response_delay",label:r(i=>i.image_block_response_delay),min:50,value:a.image_block_response_delay??"",placeholder:`${n.image_block_response_delay??250}`,onChange:i=>s({...a,image_block_response_delay:i.target.value?i.target.valueAsNumber:void 0})}),e.jsx(N,{type:"number",name:"default_maximum_data_size",label:r(i=>i.default_maximum_data_size),min:10,max:100,value:a.default_maximum_data_size??"",placeholder:`${n.default_maximum_data_size??50}`,onChange:i=>s({...a,default_maximum_data_size:i.target.value?i.target.valueAsNumber:void 0})})]})}),J=o.memo(({version:a,showRaw:s})=>{const{t:n}=O("ota"),r=o.useMemo(()=>ve(a),[a]);return r===void 0?e.jsx("span",{children:"N/A"}):e.jsxs("div",{className:`flex flex-col ${s?"":"tooltip tooltip-top"}`,"data-tip":a,children:[e.jsxs("span",{children:[n(i=>i.app),": ",`${r[0]} build ${r[1]}`]}),e.jsxs("span",{children:[n(i=>i.stack),": ",`${r[2]} build ${r[3]}`]}),s?e.jsx("span",{className:"text-base-content/75",children:a}):null]})}),Re=o.memo(({sourceIdx:a,device:s,state:n,otaSettings:r,onCheckClick:i,onUpdateClick:p,onScheduleClick:b,onUnscheduleClick:g})=>{const{t:c}=O(["ota","common"]),A=s.interview_state===P.InProgress||s.interview_state===P.Pending||n?.state==="updating",v=s.definition?.supports_ota,C=n?.state==="scheduled",k=o.useRef(null),[d,m]=o.useState(v?"default":"custom_index"),[_,w]=o.useState(!1),[l,j]=o.useState(null),[f,S]=o.useState(null),[q,R]=o.useState(null),[$,K]=o.useState(null),[z,I]=o.useState(!1),[h,Q]=o.useState({}),D=o.useRef(null),[T,F]=o.useState(!1),{refs:V,floatingStyles:W,context:U}=ue({open:T,onOpenChange:F,middleware:[he(4),xe({padding:16,crossAxis:!0}),be({padding:16,crossAxis:!0}),we({element:D})]}),X=de(U,{event:"click"}),Y=me(U),Z=fe(U),{getReferenceProps:ee,getFloatingProps:te}=pe([X,Y,Z]);o.useEffect(()=>{w(!1),j(null),S(null),I(!1)},[d]);const E=o.useCallback(async t=>{switch(F(!1),t){case"check":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};l&&(u.url=l),await i(u);break}case"update":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};l&&(u.url=l),f&&(u.hex=f),h.image_block_request_timeout&&(u.image_block_request_timeout=h.image_block_request_timeout),h.image_block_response_delay&&(u.image_block_response_delay=h.image_block_response_delay),h.default_maximum_data_size&&(u.default_maximum_data_size=h.default_maximum_data_size),await p(u);break}case"schedule":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};l&&(u.url=l),f&&(u.hex=f),await b(u);break}case"unschedule":{await g({sourceIdx:a,ieee:s.ieee_address});break}}},[a,s.ieee_address,l,f,_,h,i,p,b,g]),ae=o.useMemo(()=>d==="custom_firmware"||d==="custom_index"&&(!l||!/.+\.json$/.test(l)),[d,l]),B=o.useMemo(()=>d==="custom_firmware"&&(!f&&!l||!!f&&!!l)||d==="custom_index"&&(!l||!/.+\.json$/.test(l)),[d,f,l]);return e.jsxs(e.Fragment,{children:[C?e.jsx(y,{className:"btn btn-sm btn-square btn-outline btn-error join-item",onClick:g,item:{sourceIdx:a,ieee:s.ieee_address},title:c(t=>t.unschedule),children:e.jsx(x,{icon:se})}):e.jsx("button",{ref:V.setReference,type:"button",className:"btn btn-sm btn-square btn-outline btn-primary join-item tooltip tooltip-top",...ee(),"data-tip":"OTA",disabled:A,children:e.jsx(x,{icon:ne})}),T?e.jsx(_e,{children:e.jsxs("aside",{ref:V.setFloating,style:W,...te({className:"card bg-base-200 shadow-lg border border-base-300 w-[min(32rem,calc(100vw-2.5rem))] max-h-[90vh] z-11"}),children:[e.jsxs("div",{className:"card-body py-2 w-full h-full overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h4",{className:"card-title",children:["OTA: ",s.friendly_name]}),e.jsx(y,{onClick:()=>F(!1),className:"btn btn-ghost btn-square",children:e.jsx(x,{icon:re})})]}),e.jsxs("div",{className:"flex flex-col gap-2 items-center w-full h-full overflow-y-auto",children:[n?.installed_version?e.jsx("ul",{className:"steps steps-horizontal w-full mb-2",children:e.jsx("li",{className:"step step-neutral","data-content":"●",children:e.jsx(J,{version:n.installed_version,showRaw:!0})})}):null,v?null:e.jsx("span",{className:"text-base-content/65",children:c(t=>t.no_official_ota_support)}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-top",children:[e.jsxs(je,{name:"source_type",label:c(t=>t.source),onChange:t=>{m(t.target.value)},value:d,children:[v?e.jsx("option",{value:"default",children:c(t=>t.default)}):null,e.jsx("option",{value:"custom_index",children:c(t=>t.custom_index)}),e.jsx("option",{value:"custom_firmware",children:c(t=>t.custom_firmware)})]}),e.jsx(M,{name:"source_downgrade",label:c(t=>t.downgrade),onChange:t=>w(t.target.checked),checked:_}),e.jsx(M,{name:"show_update_settings",label:c(t=>t.show_update_settings),checked:z,onChange:t=>I(t.target.checked)})]}),_?e.jsx("p",{children:c(t=>t.downgrade_notice)}):null,z?e.jsx(Ce,{settings:h,setSettings:Q,defaultSettings:r}):null,e.jsx("div",{className:"flex flex-col w-full items-center",children:d==="default"?null:d==="custom_index"?e.jsx(N,{name:"source_url",type:"text",label:c(t=>t.source_url_index),onChange:t=>j(t.target.value?t.target.value:null),value:l||"",pattern:".+\\.json$",required:!0}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`join join-horizontal items-center mt-2 ${f?"w-full":""}`,children:[e.jsx("input",{ref:k,name:"source_hex",type:"file",accept:"application/octet-stream,.zigbee,.ota,.bin",className:"file-input join-item flex-1",onChange:async t=>{const u=t.target.files?.[0];if(u)try{const[H,L]=await Ae(u);S({data:H,file_name:u.name||void 0}),R(L),n?.installed_version&&w(L.fileVersion<n.installed_version)}catch(H){S(null),R(null),K(H.message)}},disabled:!!l}),e.jsx(y,{item:a,onClick:()=>{S(null),k.current&&(k.current.value="")},className:"btn btn-square btn-outline btn-warning btn-primary join-item",disabled:!f,title:c(t=>t.clear,{ns:"common"}),children:e.jsx(x,{icon:ie})})]}),q?e.jsx("ul",{className:"steps steps-horizontal w-full mt-1",children:e.jsx("li",{className:"step step-primary","data-content":"★",children:e.jsx(J,{version:q.fileVersion,showRaw:!0})})}):$?e.jsx("p",{children:$}):null,e.jsx("div",{className:"divider mb-1",children:"OR"}),e.jsx(N,{name:"source_url",type:"text",label:c(t=>t.source_url_firmware),onChange:t=>j(t.target.value?t.target.value:null),value:l||"",readOnly:!!f})]})})]}),e.jsxs("div",{className:"card-actions justify-end py-2",children:[e.jsx(y,{className:"btn btn-square btn-outline btn-primary join-item",onClick:E,item:"check",title:c(t=>t.check),disabled:ae,children:e.jsx(x,{icon:le})}),e.jsx(y,{className:"btn btn-square btn-outline btn-error join-item",onClick:E,item:"update",title:c(t=>t.update),disabled:B,children:e.jsx(x,{icon:oe})}),e.jsx(y,{className:"btn btn-square btn-outline btn-info join-item",onClick:E,item:"schedule",title:c(t=>t.schedule),disabled:B,children:e.jsx(x,{icon:ce})})]})]}),e.jsx(ge,{ref:D,context:U,className:"fill-base-200 [&>path:first-of-type]:stroke-base-300 [&>path:last-of-type]:stroke-base-300"})]})}):null]})});export{J as O,Ce as a,Re as b,ve as f};
|
|
1
|
+
import{r as o,u as O,j as e,aj as P,B as y,F as x,b7 as se,b8 as ne,f as re,ar as le,b9 as ie,ak as oe,al as ce}from"./index-VJpwYvBU.js";import{u as ue,g as de,d as me,c as fe,e as pe,F as _e,f as ge,o as he,a as xe,s as be,b as we}from"./floating-ui.react-CjPmCA_-.js";import{C as M}from"./CheckboxField-CBqKSuiA.js";import{I as N}from"./InputField-B_6Ee4_m.js";import{S as je}from"./SelectField-BkTP72p-.js";const ye=new Uint8Array([30,241,238,11]),G=56,ke=a=>{if(a==null||a<0)return;const s=a.toString(16).padStart(8,"0"),n=`${s[0]}.${s[1]}`,r=Number.parseInt(s.slice(2,4),16),l=`${s[4]}.${s[5]}`,p=Number.parseInt(s.slice(6),16);return[n,r,l,p]};function ve(a,s,n){const l=(a instanceof ArrayBuffer?a:a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)).slice(s,n);return new TextDecoder("utf-8").decode(l).replace(/\0+$/g,"").trimEnd()}function Ne(a,s){if(!s.length)return 0;for(let n=0;n<=a.length-s.length;n+=1)if(Se(a,s,n))return n;return-1}function Se(a,s,n){if(n<0||n+s.length>a.length)return!1;for(let r=0;r<s.length;r+=1)if(a[n+r]!==s[r])return!1;return!0}function Ue(a){const s=Ne(new Uint8Array(a),ye);if(s===-1)throw new Error("Invalid OTA file");const n=s>0?a.slice(s):a,r=new DataView(n);if(n.byteLength<G)throw new Error("Buffer too small to contain header");const l=new Uint8Array(n.slice(0,4)),p=r.getUint16(4,!0),b=r.getUint16(6,!0),g=r.getUint16(8,!0),c=r.getUint16(10,!0),A=r.getUint16(12,!0),k=r.getUint32(14,!0),C=r.getUint16(18,!0),v=ve(n,20,52),d=r.getUint32(52,!0);let m=G,_,w,i,j;if(g&1){if(m+1>n.byteLength)throw new Error("Unexpected end of buffer while reading securityCredentialVersion");_=r.getUint8(m),m+=1}if(g&2){if(m+8>n.byteLength)throw new Error("Unexpected end of buffer while reading upgradeFileDestination");w=new Uint8Array(n.slice(m,m+8)),m+=8}if(g&4){if(m+4>n.byteLength)throw new Error("Unexpected end of buffer while reading hardware versions");i=r.getUint16(m,!0),j=r.getUint16(m+2,!0)}return{otaUpgradeFileIdentifier:l,otaHeaderVersion:p,otaHeaderLength:b,otaHeaderFieldControl:g,manufacturerCode:c,imageType:A,fileVersion:k,zigbeeStackVersion:C,otaHeaderString:v,totalImageSize:d,securityCredentialVersion:_,upgradeFileDestination:w,minimumHardwareVersion:i,maximumHardwareVersion:j}}function Ae(a){return new Promise((s,n)=>{const r=new FileReader;r.onload=()=>{if(r.result instanceof ArrayBuffer)try{const l=Ue(r.result);let p="";for(const b of new Uint8Array(r.result))p+=b.toString(16).padStart(2,"0");s([p,l])}catch(l){n(l)}else n(new Error("Unexpected read result"))},r.onerror=()=>n(r.error??new Error("Unknown file read error")),r.readAsArrayBuffer(a)})}const Ce=o.memo(({settings:a,setSettings:s,defaultSettings:n})=>{const{t:r}=O("ota");return e.jsxs("div",{className:"flex flex-col gap-0 items-center",children:[e.jsx(N,{type:"number",name:"image_block_request_timeout",label:r(l=>l.image_block_request_timeout),min:1e4,max:2147483647,value:a.image_block_request_timeout??"",placeholder:`${n.image_block_request_timeout??15e4}`,onChange:l=>s({...a,image_block_request_timeout:l.target.value?l.target.valueAsNumber:void 0})}),e.jsx(N,{type:"number",name:"image_block_response_delay",label:r(l=>l.image_block_response_delay),min:50,value:a.image_block_response_delay??"",placeholder:`${n.image_block_response_delay??250}`,onChange:l=>s({...a,image_block_response_delay:l.target.value?l.target.valueAsNumber:void 0})}),e.jsx(N,{type:"number",name:"default_maximum_data_size",label:r(l=>l.default_maximum_data_size),min:10,max:100,value:a.default_maximum_data_size??"",placeholder:`${n.default_maximum_data_size??50}`,onChange:l=>s({...a,default_maximum_data_size:l.target.value?l.target.valueAsNumber:void 0})})]})}),J=o.memo(({version:a,showRaw:s})=>{const{t:n}=O("ota"),r=o.useMemo(()=>ke(a),[a]);return r===void 0?e.jsx("span",{children:"N/A"}):e.jsxs("div",{className:`flex flex-col ${s?"":"tooltip tooltip-top"}`,"data-tip":a,children:[e.jsxs("span",{children:[n(l=>l.app),": ",`${r[0]} build ${r[1]}`]}),e.jsxs("span",{children:[n(l=>l.stack),": ",`${r[2]} build ${r[3]}`]}),s?e.jsx("span",{className:"text-base-content/75",children:a}):null]})}),Re=o.memo(({sourceIdx:a,device:s,state:n,otaSettings:r,onCheckClick:l,onUpdateClick:p,onScheduleClick:b,onUnscheduleClick:g})=>{const{t:c}=O(["ota","common"]),A=s.interview_state===P.InProgress||s.interview_state===P.Pending||n?.state==="updating",k=s.definition?.supports_ota,C=n?.state==="scheduled",v=o.useRef(null),[d,m]=o.useState(k?"default":"custom_index"),[_,w]=o.useState(!1),[i,j]=o.useState(null),[f,S]=o.useState(null),[q,R]=o.useState(null),[$,K]=o.useState(null),[z,I]=o.useState(!1),[h,Q]=o.useState({}),D=o.useRef(null),[T,F]=o.useState(!1),{refs:V,floatingStyles:W,context:U}=ue({open:T,onOpenChange:F,middleware:[he(4),xe({padding:16,crossAxis:!0}),be({padding:16,crossAxis:!0}),we({element:D})]}),X=de(U,{event:"click"}),Y=me(U),Z=fe(U),{getReferenceProps:ee,getFloatingProps:te}=pe([X,Y,Z]);o.useEffect(()=>{w(!1),j(null),S(null),I(!1)},[d]);const E=o.useCallback(async t=>{switch(F(!1),t){case"check":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};i&&(u.url=i),await l(u);break}case"update":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};i&&(u.url=i),f&&(u.hex=f),h.image_block_request_timeout&&(u.image_block_request_timeout=h.image_block_request_timeout),h.image_block_response_delay&&(u.image_block_response_delay=h.image_block_response_delay),h.default_maximum_data_size&&(u.default_maximum_data_size=h.default_maximum_data_size),await p(u);break}case"schedule":{const u={sourceIdx:a,ieee:s.ieee_address,downgrade:_};i&&(u.url=i),f&&(u.hex=f),await b(u);break}case"unschedule":{await g({sourceIdx:a,ieee:s.ieee_address});break}}},[a,s.ieee_address,i,f,_,h,l,p,b,g]),ae=o.useMemo(()=>d==="custom_firmware"||d==="custom_index"&&(!i||!/.+\.json$/.test(i)),[d,i]),B=o.useMemo(()=>d==="custom_firmware"&&(!f&&!i||!!f&&!!i)||d==="custom_index"&&(!i||!/.+\.json$/.test(i)),[d,f,i]);return e.jsxs(e.Fragment,{children:[C?e.jsx(y,{className:"btn btn-sm btn-square btn-outline btn-error join-item",onClick:g,item:{sourceIdx:a,ieee:s.ieee_address},title:c(t=>t.unschedule),children:e.jsx(x,{icon:se})}):e.jsx("button",{ref:V.setReference,type:"button",className:"btn btn-sm btn-square btn-outline btn-primary join-item tooltip tooltip-top",...ee(),"data-tip":"OTA",disabled:A,children:e.jsx(x,{icon:ne})}),T?e.jsx(_e,{children:e.jsxs("aside",{ref:V.setFloating,style:W,...te({className:"card bg-base-200 shadow-lg border border-base-300 w-[min(32rem,calc(100vw-2.5rem))] max-h-[90vh] z-11"}),children:[e.jsxs("div",{className:"card-body py-2 w-full h-full overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h4",{className:"card-title",children:["OTA: ",s.friendly_name]}),e.jsx(y,{onClick:()=>F(!1),className:"btn btn-ghost btn-square",children:e.jsx(x,{icon:re})})]}),e.jsxs("div",{className:"flex flex-col gap-2 items-center w-full h-full overflow-y-auto",children:[n?.installed_version?e.jsx("ul",{className:"steps steps-horizontal w-full mb-2",children:e.jsx("li",{className:"step step-neutral","data-content":"●",children:e.jsx(J,{version:n.installed_version,showRaw:!0})})}):null,k?null:e.jsx("span",{className:"text-base-content/65",children:c(t=>t.no_official_ota_support)}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-top",children:[e.jsxs(je,{name:"source_type",label:c(t=>t.source),onChange:t=>{m(t.target.value)},value:d,children:[k?e.jsx("option",{value:"default",children:c(t=>t.default)}):null,e.jsx("option",{value:"custom_index",children:c(t=>t.custom_index)}),e.jsx("option",{value:"custom_firmware",children:c(t=>t.custom_firmware)})]}),e.jsx(M,{name:"source_downgrade",label:c(t=>t.downgrade),onChange:t=>w(t.target.checked),checked:_}),e.jsx(M,{name:"show_update_settings",label:c(t=>t.show_update_settings),checked:z,onChange:t=>I(t.target.checked)})]}),_?e.jsx("p",{children:c(t=>t.downgrade_notice)}):null,z?e.jsx(Ce,{settings:h,setSettings:Q,defaultSettings:r}):null,e.jsx("div",{className:"flex flex-col w-full items-center",children:d==="default"?null:d==="custom_index"?e.jsx(N,{name:"source_url",type:"text",label:c(t=>t.source_url_index),onChange:t=>j(t.target.value?t.target.value:null),value:i||"",pattern:".+\\.json$",required:!0}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`join join-horizontal items-center mt-2 ${f?"w-full":""}`,children:[e.jsx("input",{ref:v,name:"source_hex",type:"file",accept:"application/octet-stream,.zigbee,.ota,.bin",className:"file-input join-item flex-1",onChange:async t=>{const u=t.target.files?.[0];if(u)try{const[H,L]=await Ae(u);S({data:H,file_name:u.name||void 0}),R(L),n?.installed_version&&w(L.fileVersion<n.installed_version)}catch(H){S(null),R(null),K(H.message)}},disabled:!!i}),e.jsx(y,{item:a,onClick:()=>{S(null),v.current&&(v.current.value="")},className:"btn btn-square btn-outline btn-warning btn-primary join-item",disabled:!f,title:c(t=>t.clear,{ns:"common"}),children:e.jsx(x,{icon:le})})]}),q?e.jsx("ul",{className:"steps steps-horizontal w-full mt-1",children:e.jsx("li",{className:"step step-primary","data-content":"★",children:e.jsx(J,{version:q.fileVersion,showRaw:!0})})}):$?e.jsx("p",{children:$}):null,e.jsx("div",{className:"divider mb-1",children:"OR"}),e.jsx(N,{name:"source_url",type:"text",label:c(t=>t.source_url_firmware),onChange:t=>j(t.target.value?t.target.value:null),value:i||"",readOnly:!!f})]})})]}),e.jsxs("div",{className:"card-actions justify-end py-2",children:[e.jsx(y,{className:"btn btn-square btn-outline btn-primary join-item",onClick:E,item:"check",title:c(t=>t.check),disabled:ae,children:e.jsx(x,{icon:ie})}),e.jsx(y,{className:"btn btn-square btn-outline btn-error join-item",onClick:E,item:"update",title:c(t=>t.update),disabled:B,children:e.jsx(x,{icon:oe})}),e.jsx(y,{className:"btn btn-square btn-outline btn-info join-item",onClick:E,item:"schedule",title:c(t=>t.schedule),disabled:B,children:e.jsx(x,{icon:ce})})]})]}),e.jsx(ge,{ref:D,context:U,className:"fill-base-200 [&>path:first-of-type]:stroke-base-300 [&>path:last-of-type]:stroke-base-300"})]})}):null]})});export{J as O,Ce as a,Re as b,ke as f};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,u as O,ah as D,j as s,F as N,ai as L,B as I,f as M,aj as U,a as q,A as E,s as F,x as B,S as G,y as H,L as P,t as V,N as K,a9 as $,M as J}from"./index-JmF9gCML.js";import{D as Q}from"./DeviceImage-DIrJd7Dp.js";import{I as W}from"./IndeterminateCheckbox-BH2nO7r_.js";import{O as w,a as X,f as T,b as Y}from"./OtaControlGroup-Kb3MQRwH.js";import{u as Z,g as ee,d as se,c as te,e as ae,F as ie,f as ne,o as oe,a as re,s as le,b as de}from"./floating-ui.react-Dl7Q3Gga.js";import{C as ce}from"./CheckboxField-db3_5uYc.js";import{D as me}from"./Duration-CmByvdMZ.js";import{T as ue}from"./Table-DYUiMUns.js";import{u as fe,T as pe}from"./useTable-DtdBoC1d.js";import{D as he,V as ge}from"./VendorLink-Bh6ogA8f.js";import{P as be}from"./PowerSource-DzZNHWU_.js";import"./envs-CRUy-_iG.js";import"./index-CagYUo5R.js";import"./defineProperty-CegpTSss.js";import"./InputField--n4h7Oo1.js";import"./SelectField-B-HRxZRq.js";import"./floating-ui.dom-DbzrgdRQ.js";import"./DebouncedInput-B0pwTRBI.js";import"./snakeCase-CKaYIYMS.js";import"./_createCompounder-DFCi93dH.js";import"./isObjectLike-DfZktKQt.js";const xe=r.memo(({sourceIdx:c,device:l,state:i,otaSettings:a,onUpdateClick:m,onScheduleClick:x})=>{const{t:h}=O(["ota","common"]),f=l.interview_state===D.InProgress||l.interview_state===D.Pending||i.state==="updating",[_,y]=r.useState(!1),[u,j]=r.useState({}),v=r.useRef(null),[C,g]=r.useState(!1),{refs:k,floatingStyles:S,context:b}=Z({open:C,onOpenChange:g,middleware:[oe(4),re({padding:16,crossAxis:!0}),le({padding:16,crossAxis:!0}),de({element:v})]}),e=ee(b,{event:"click"}),t=se(b),n=te(b),{getReferenceProps:o,getFloatingProps:p}=ae([e,t,n]),R=r.useCallback(async d=>{if(i.latest_version&&i.installed_version&&i.latest_source){g(!1);const A=i.latest_version<i.installed_version;switch(d){case"update":{const z={sourceIdx:c,ieee:l.ieee_address,downgrade:A,url:i.latest_source};u.image_block_request_timeout&&(z.image_block_request_timeout=u.image_block_request_timeout),u.image_block_response_delay&&(z.image_block_response_delay=u.image_block_response_delay),u.default_maximum_data_size&&(z.default_maximum_data_size=u.default_maximum_data_size),await m(z);break}case"schedule":{await x({sourceIdx:c,ieee:l.ieee_address,downgrade:A,url:i.latest_source});break}}}},[c,l.ieee_address,u,i,m,x]);return s.jsxs(s.Fragment,{children:[s.jsx("button",{ref:k.setReference,type:"button",className:`btn btn-sm btn-square btn-outline ${i.latest_version>i.installed_version?"btn-accent":"btn-error"} join-item tooltip tooltip-top`,...o(),"data-tip":h(d=>d.update),disabled:f,children:s.jsx(N,{icon:L})}),C?s.jsx(ie,{children:s.jsxs("aside",{ref:k.setFloating,style:S,...p({className:"card bg-base-200 shadow-lg border border-base-300 w-[min(32rem,calc(100vw-2.5rem))] max-h-[90vh] z-11"}),children:[s.jsxs("div",{className:"card-body py-2 w-full h-full overflow-hidden",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("h4",{className:"card-title",children:["OTA: ",l.friendly_name]}),s.jsx(I,{onClick:()=>g(!1),className:"btn btn-ghost btn-square",children:s.jsx(N,{icon:M})})]}),s.jsxs("div",{className:"flex flex-col gap-2 w-full h-full overflow-y-auto",children:[s.jsxs("div",{className:"flex flex-col w-full gap-2",children:[s.jsx("ul",{className:"steps steps-horizontal w-full mb-2",children:i.latest_version>i.installed_version?s.jsxs(s.Fragment,{children:[s.jsx("li",{className:"step step-neutral","data-content":"●",children:s.jsx(w,{version:i.installed_version,showRaw:!0})}),s.jsx("li",{className:"step step-accent","data-content":"★",children:s.jsx(w,{version:i.latest_version,showRaw:!0})})]}):s.jsxs(s.Fragment,{children:[s.jsx("li",{className:"step step-error","data-content":"★",children:s.jsx(w,{version:i.latest_version,showRaw:!0})}),s.jsx("li",{className:"step step-neutral","data-content":"●",children:s.jsx(w,{version:i.installed_version,showRaw:!0})})]})}),s.jsxs("p",{children:[h(d=>d.source),": "]}),s.jsx("div",{className:"wrap-anywhere",children:s.jsx("p",{className:"text-base-content/65",children:i.latest_source})}),s.jsxs("p",{children:[h(d=>d.release_notes),": "]}),s.jsx("div",{className:"wrap-anywhere",children:s.jsx("p",{className:"text-base-content/65",children:i.latest_release_notes??"N/A"})})]}),s.jsx(ce,{name:"show_update_settings",label:h(d=>d.show_update_settings),checked:_,onChange:d=>y(d.target.checked)}),_?s.jsx(X,{settings:u,setSettings:j,defaultSettings:a}):null]}),s.jsxs("div",{className:"card-actions justify-end py-2",children:[s.jsx(I,{className:"btn btn-square btn-outline btn-error join-item",onClick:R,item:"update",title:h(d=>d.update),children:s.jsx(N,{icon:L})}),s.jsx(I,{className:"btn btn-square btn-outline btn-info join-item",onClick:R,item:"schedule",title:h(d=>d.schedule),children:s.jsx(N,{icon:U})})]})]}),s.jsx(ne,{ref:v,context:b,className:"fill-base-200 [&>path:first-of-type]:stroke-base-300 [&>path:last-of-type]:stroke-base-300"})]})}):null]})}),_e=({label:c,remaining:l,progress:i})=>l&&l>0?s.jsxs(s.Fragment,{children:[s.jsx("progress",{className:"progress",value:i,max:"100"}),s.jsxs("div",{children:[c," ",s.jsx(me,{durationSec:l})]})]}):s.jsx("progress",{className:"progress",value:i,max:"100"}),we=r.memo(({device:c})=>{const{t:l}=O("zigbee");let i="https://github.com/Koenkk/zigbee-OTA/releases";const a=c.software_build_id||l(m=>m.unknown);switch(c?.definition?.vendor){case"IKEA":i="https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html";break;case"Inovelli":i="https://help.inovelli.com/en/articles/8503774-what-is-the-latest-firmware-version-for-your-device#h_b74c1e7dc6";break;case"Philips":i=`https://www.philips-hue.com/en-us/support/release-notes/${c.definition?.exposes.find(m=>m.type==="light")?"lamps":"accessories"}`;break;case"Ubisys":i=`https://www.ubisys.de/en/support/firmware/change-logs-${c.definition?.model?.replace(/[-]/g,"").toLowerCase()}/`;break}return s.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:i,className:"link link-hover",children:a})});function Ue(){const c=q(e=>e.devices),l=q(e=>e.deviceStates),i=q(e=>e.bridgeInfo),{t:a}=O(["ota","zigbee","common"]),[m,x]=r.useState({});r.useEffect(()=>{x({})},[c]);const h=r.useMemo(()=>{const e=[];for(let t=0;t<E.length;t++){const n=i[t].config.ota;for(const o of c[t])if(o.definition?.supports_ota&&!o.disabled){const p=l[t][o.friendly_name]??{};e.push({sourceIdx:t,device:o,state:p.update,batteryState:o.power_source==="Battery"?{batteryPercent:p.battery,batteryState:p.battery_state,batteryLow:p.battery_low}:void 0,otaSettings:n})}}return e},[l,c,i]),f=r.useMemo(()=>Object.keys(m).length,[m]),_=r.useCallback(async e=>{const t=[];for(const n of g.getFilteredRowModel().rows)if(n.getIsSelected()){const{sourceIdx:o,device:p}=n.original;t.push(F(o,e,{id:p.ieee_address}))}x({}),t.length>0&&await Promise.allSettled(t)},[]),y=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/check/downgrade":"bridge/request/device/ota_update/check",{id:t,...o}),[]),u=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/update/downgrade":"bridge/request/device/ota_update/update",{id:t,...o}),[]),j=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/schedule/downgrade":"bridge/request/device/ota_update/schedule",{id:t,...o}),[]),v=r.useCallback(async({sourceIdx:e,ieee:t})=>await F(e,"bridge/request/device/ota_update/unschedule",{id:t}),[]),C=r.useMemo(()=>[{id:"select",size:45,header:({table:e})=>s.jsx(W,{checked:e.getIsAllRowsSelected(),indeterminate:e.getIsSomeRowsSelected(),onChange:e.getToggleAllRowsSelectedHandler()}),accessorFn:()=>"",cell:({row:e})=>s.jsx("input",{type:"checkbox",className:"checkbox",checked:e.getIsSelected(),disabled:!e.getCanSelect(),onChange:e.getToggleSelectedHandler()}),enableGlobalFilter:!1,enableColumnFilter:!1,enableSorting:!1},{id:"source",size:60,header:()=>s.jsx("span",{title:a(e=>e.source,{ns:"common"}),children:s.jsx(N,{icon:H})}),accessorFn:({sourceIdx:e})=>B[e],cell:({row:{original:{sourceIdx:e}}})=>s.jsx(G,{idx:e,nameClassName:"hidden md:inline-block"}),filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"friendly_name",size:250,minSize:175,header:a(e=>e.friendly_name,{ns:"common"}),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??""} ${e.ieee_address}`,cell:({row:{original:{sourceIdx:e,device:t,state:n,batteryState:o}}})=>s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"avatar",children:s.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:s.jsx(Q,{device:t,otaState:n?.state,disabled:!1})})}),s.jsxs("div",{className:"flex-grow flex flex-col min-w-0",children:[s.jsx(P,{to:`/device/${e}/${t.ieee_address}/info`,className:"link link-hover truncate",children:t.friendly_name}),t.description&&s.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:t.description,children:t.description}),s.jsx("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:o&&s.jsx("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",children:s.jsx(be,{device:t,...o,showLevel:!0})})})]})]}),sortingFn:(e,t)=>e.original.device.friendly_name.localeCompare(t.original.device.friendly_name),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0}},{id:"ieee_address",minSize:175,header:a(e=>e.ieee_address,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.ieee_address} ${V(e.network_address,4)} ${e.network_address}`,cell:({row:{original:{sourceIdx:e,device:t}}})=>s.jsxs(s.Fragment,{children:[s.jsx("div",{children:s.jsx(P,{to:`/device/${e}/${t.ieee_address}/info`,className:"link link-hover font-mono",children:t.ieee_address})}),s.jsxs("div",{className:"flex flex-row gap-1",children:[s.jsx("span",{className:"badge badge-ghost badge-sm cursor-default font-mono",title:a(n=>n.network_address_hex,{ns:"zigbee"}),children:V(t.network_address,4)}),s.jsx("span",{className:"badge badge-ghost badge-sm cursor-default font-mono",title:a(n=>n.network_address_dec,{ns:"zigbee"}),children:t.network_address})]})]}),sortingFn:(e,t)=>e.original.device.ieee_address.localeCompare(t.original.device.ieee_address),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"model",minSize:175,header:a(e=>e.model,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.definition?.model??""} ${e.model_id??""} ${e.definition?.vendor??e.manufacturer??""}`,cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(he,{modelId:e.model_id,supported:e.supported,definitionModel:e.definition?.model}),s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost tooltip tooltip-bottom","data-tip":a(t=>t.manufacturer,{ns:"zigbee"}),children:s.jsx(ge,{supported:e.supported,definitionVendor:e.definition?.vendor})})})]}),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0,showFacetedOccurrences:!0}},{id:"firmware_id",minSize:175,header:a(e=>e.firmware_id,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.software_build_id??""} ${e.date_code??""}`,cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(we,{device:e}),e.date_code&&s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost tooltip tooltip-bottom","data-tip":a(t=>t.firmware_build_date,{ns:"zigbee"}),children:e.date_code})})]}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"firmware_version",minSize:175,header:a(e=>e.firmware_version),accessorFn:({state:e})=>T(e?.installed_version)?.join(" "),cell:({row:{original:{state:e}}})=>s.jsx(w,{version:e?.installed_version}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"available_firmware_version",minSize:175,header:a(e=>e.available_firmware_version),accessorFn:({state:e})=>T(e?.latest_version)?.join(" "),cell:({row:{original:{state:e}}})=>s.jsx(w,{version:e?.latest_version}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"state",header:a(e=>e.state,{ns:"common"}),accessorFn:({state:e})=>e?.state?a(t=>t[e.state]):a(t=>t.unknown,{ns:"zigbee"}),filterFn:"equals",meta:{filterVariant:"select"}},{id:"actions",header:"",minSize:130,accessorFn:({state:e})=>e?.state,cell:({row:{original:{sourceIdx:e,device:t,state:n,otaSettings:o}}})=>n?.state==="updating"?s.jsx(_e,{label:a(p=>p.remaining_time),remaining:n.remaining,progress:n.progress}):s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(Y,{sourceIdx:e,device:t,state:n,otaSettings:o,onCheckClick:y,onUpdateClick:u,onScheduleClick:j,onUnscheduleClick:v}),n?.state==="available"?s.jsx(xe,{sourceIdx:e,device:t,state:n,otaSettings:o,onUpdateClick:u,onScheduleClick:j}):null]}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}],[y,u,j,v,a]),{table:g,resetFilters:k,globalFilter:S,columnFilters:b}=fe({id:"ota-devices",columns:C,data:h,visibleColumns:{source:J,state:!1},sorting:[{id:"friendly_name",desc:!1}],rowSelection:m,onRowSelectionChange:x});return r.useEffect(()=>{const e=new Set;for(const o of g.getFilteredRowModel().rows)e.add(o.id);let t=!1;const n={};for(const o in m)e.has(o)?n[o]=!0:t=!0;t&&x(n)},[g,m,h,S,b]),s.jsxs(s.Fragment,{children:[s.jsx(K,{children:s.jsx(pe,{table:g,resetFilters:k,globalFilter:S,columnFilters:b})}),s.jsxs("div",{className:"mb-5",children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-2 px-2 pb-3",children:[s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/check",onClick:_,title:a(e=>e.check_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.check_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/update",onClick:_,title:a(e=>e.update_selected),modalDescription:a(e=>e.update_selected_info),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.update_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/schedule",onClick:_,title:a(e=>e.schedule_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.schedule_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/unschedule",onClick:_,title:a(e=>e.unschedule_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.unschedule_selected)} (${f})`})]}),s.jsx(ue,{id:"ota-devices",table:g,resetFilters:k,globalFilter:S,columnFilters:b})]})]})}export{Ue as default};
|
|
1
|
+
import{r,u as O,aj as D,j as s,F as N,ak as L,B as I,f as M,al as U,a as q,A as E,s as F,x as B,S as G,y as H,L as P,t as V,N as K,a9 as $,M as J}from"./index-VJpwYvBU.js";import{D as Q}from"./DeviceImage-DAL8fj7m.js";import{I as W}from"./IndeterminateCheckbox-CJakcLtu.js";import{O as w,a as X,f as T,b as Y}from"./OtaControlGroup-B5IsRAv6.js";import{u as Z,g as ee,d as se,c as te,e as ae,F as ie,f as ne,o as oe,a as re,s as le,b as de}from"./floating-ui.react-CjPmCA_-.js";import{C as ce}from"./CheckboxField-CBqKSuiA.js";import{D as me}from"./Duration-2jHbVRFA.js";import{T as ue}from"./Table-DrSTNSTO.js";import{u as fe,T as pe}from"./useTable-BnWLFbU3.js";import{D as he,V as ge}from"./VendorLink-CYBqr3tj.js";import{P as be}from"./PowerSource-B4Kn6y4z.js";import"./envs-CRUy-_iG.js";import"./index-RbRX26AQ.js";import"./defineProperty-CegpTSss.js";import"./InputField-B_6Ee4_m.js";import"./SelectField-BkTP72p-.js";import"./floating-ui.dom-DbzrgdRQ.js";import"./DebouncedInput-Bm_sFuTC.js";import"./snakeCase-BPMTuOlK.js";import"./_createCompounder-JrZUBxnL.js";import"./isObjectLike-CKrHmw-v.js";const xe=r.memo(({sourceIdx:c,device:l,state:i,otaSettings:a,onUpdateClick:m,onScheduleClick:x})=>{const{t:h}=O(["ota","common"]),f=l.interview_state===D.InProgress||l.interview_state===D.Pending||i.state==="updating",[_,y]=r.useState(!1),[u,j]=r.useState({}),v=r.useRef(null),[C,g]=r.useState(!1),{refs:k,floatingStyles:S,context:b}=Z({open:C,onOpenChange:g,middleware:[oe(4),re({padding:16,crossAxis:!0}),le({padding:16,crossAxis:!0}),de({element:v})]}),e=ee(b,{event:"click"}),t=se(b),n=te(b),{getReferenceProps:o,getFloatingProps:p}=ae([e,t,n]),R=r.useCallback(async d=>{if(i.latest_version&&i.installed_version&&i.latest_source){g(!1);const A=i.latest_version<i.installed_version;switch(d){case"update":{const z={sourceIdx:c,ieee:l.ieee_address,downgrade:A,url:i.latest_source};u.image_block_request_timeout&&(z.image_block_request_timeout=u.image_block_request_timeout),u.image_block_response_delay&&(z.image_block_response_delay=u.image_block_response_delay),u.default_maximum_data_size&&(z.default_maximum_data_size=u.default_maximum_data_size),await m(z);break}case"schedule":{await x({sourceIdx:c,ieee:l.ieee_address,downgrade:A,url:i.latest_source});break}}}},[c,l.ieee_address,u,i,m,x]);return s.jsxs(s.Fragment,{children:[s.jsx("button",{ref:k.setReference,type:"button",className:`btn btn-sm btn-square btn-outline ${i.latest_version>i.installed_version?"btn-accent":"btn-error"} join-item tooltip tooltip-top`,...o(),"data-tip":h(d=>d.update),disabled:f,children:s.jsx(N,{icon:L})}),C?s.jsx(ie,{children:s.jsxs("aside",{ref:k.setFloating,style:S,...p({className:"card bg-base-200 shadow-lg border border-base-300 w-[min(32rem,calc(100vw-2.5rem))] max-h-[90vh] z-11"}),children:[s.jsxs("div",{className:"card-body py-2 w-full h-full overflow-hidden",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("h4",{className:"card-title",children:["OTA: ",l.friendly_name]}),s.jsx(I,{onClick:()=>g(!1),className:"btn btn-ghost btn-square",children:s.jsx(N,{icon:M})})]}),s.jsxs("div",{className:"flex flex-col gap-2 w-full h-full overflow-y-auto",children:[s.jsxs("div",{className:"flex flex-col w-full gap-2",children:[s.jsx("ul",{className:"steps steps-horizontal w-full mb-2",children:i.latest_version>i.installed_version?s.jsxs(s.Fragment,{children:[s.jsx("li",{className:"step step-neutral","data-content":"●",children:s.jsx(w,{version:i.installed_version,showRaw:!0})}),s.jsx("li",{className:"step step-accent","data-content":"★",children:s.jsx(w,{version:i.latest_version,showRaw:!0})})]}):s.jsxs(s.Fragment,{children:[s.jsx("li",{className:"step step-error","data-content":"★",children:s.jsx(w,{version:i.latest_version,showRaw:!0})}),s.jsx("li",{className:"step step-neutral","data-content":"●",children:s.jsx(w,{version:i.installed_version,showRaw:!0})})]})}),s.jsxs("p",{children:[h(d=>d.source),": "]}),s.jsx("div",{className:"wrap-anywhere",children:s.jsx("p",{className:"text-base-content/65",children:i.latest_source})}),s.jsxs("p",{children:[h(d=>d.release_notes),": "]}),s.jsx("div",{className:"wrap-anywhere",children:s.jsx("p",{className:"text-base-content/65",children:i.latest_release_notes??"N/A"})})]}),s.jsx(ce,{name:"show_update_settings",label:h(d=>d.show_update_settings),checked:_,onChange:d=>y(d.target.checked)}),_?s.jsx(X,{settings:u,setSettings:j,defaultSettings:a}):null]}),s.jsxs("div",{className:"card-actions justify-end py-2",children:[s.jsx(I,{className:"btn btn-square btn-outline btn-error join-item",onClick:R,item:"update",title:h(d=>d.update),children:s.jsx(N,{icon:L})}),s.jsx(I,{className:"btn btn-square btn-outline btn-info join-item",onClick:R,item:"schedule",title:h(d=>d.schedule),children:s.jsx(N,{icon:U})})]})]}),s.jsx(ne,{ref:v,context:b,className:"fill-base-200 [&>path:first-of-type]:stroke-base-300 [&>path:last-of-type]:stroke-base-300"})]})}):null]})}),_e=({label:c,remaining:l,progress:i})=>l&&l>0?s.jsxs(s.Fragment,{children:[s.jsx("progress",{className:"progress",value:i,max:"100"}),s.jsxs("div",{children:[c," ",s.jsx(me,{durationSec:l})]})]}):s.jsx("progress",{className:"progress",value:i,max:"100"}),we=r.memo(({device:c})=>{const{t:l}=O("zigbee");let i="https://github.com/Koenkk/zigbee-OTA/releases";const a=c.software_build_id||l(m=>m.unknown);switch(c?.definition?.vendor){case"IKEA":i="https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html";break;case"Inovelli":i="https://help.inovelli.com/en/articles/8503774-what-is-the-latest-firmware-version-for-your-device#h_b74c1e7dc6";break;case"Philips":i=`https://www.philips-hue.com/en-us/support/release-notes/${c.definition?.exposes.find(m=>m.type==="light")?"lamps":"accessories"}`;break;case"Ubisys":i=`https://www.ubisys.de/en/support/firmware/change-logs-${c.definition?.model?.replace(/[-]/g,"").toLowerCase()}/`;break}return s.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:i,className:"link link-hover",children:a})});function Ue(){const c=q(e=>e.devices),l=q(e=>e.deviceStates),i=q(e=>e.bridgeInfo),{t:a}=O(["ota","zigbee","common"]),[m,x]=r.useState({});r.useEffect(()=>{x({})},[c]);const h=r.useMemo(()=>{const e=[];for(let t=0;t<E.length;t++){const n=i[t].config.ota;for(const o of c[t])if(o.definition?.supports_ota&&!o.disabled){const p=l[t][o.friendly_name]??{};e.push({sourceIdx:t,device:o,state:p.update,batteryState:o.power_source==="Battery"?{batteryPercent:p.battery,batteryState:p.battery_state,batteryLow:p.battery_low}:void 0,otaSettings:n})}}return e},[l,c,i]),f=r.useMemo(()=>Object.keys(m).length,[m]),_=r.useCallback(async e=>{const t=[];for(const n of g.getFilteredRowModel().rows)if(n.getIsSelected()){const{sourceIdx:o,device:p}=n.original;t.push(F(o,e,{id:p.ieee_address}))}x({}),t.length>0&&await Promise.allSettled(t)},[]),y=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/check/downgrade":"bridge/request/device/ota_update/check",{id:t,...o}),[]),u=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/update/downgrade":"bridge/request/device/ota_update/update",{id:t,...o}),[]),j=r.useCallback(async({sourceIdx:e,ieee:t,downgrade:n,...o})=>await F(e,n?"bridge/request/device/ota_update/schedule/downgrade":"bridge/request/device/ota_update/schedule",{id:t,...o}),[]),v=r.useCallback(async({sourceIdx:e,ieee:t})=>await F(e,"bridge/request/device/ota_update/unschedule",{id:t}),[]),C=r.useMemo(()=>[{id:"select",size:45,header:({table:e})=>s.jsx(W,{checked:e.getIsAllRowsSelected(),indeterminate:e.getIsSomeRowsSelected(),onChange:e.getToggleAllRowsSelectedHandler()}),accessorFn:()=>"",cell:({row:e})=>s.jsx("input",{type:"checkbox",className:"checkbox",checked:e.getIsSelected(),disabled:!e.getCanSelect(),onChange:e.getToggleSelectedHandler()}),enableGlobalFilter:!1,enableColumnFilter:!1,enableSorting:!1},{id:"source",size:60,header:()=>s.jsx("span",{title:a(e=>e.source,{ns:"common"}),children:s.jsx(N,{icon:H})}),accessorFn:({sourceIdx:e})=>B[e],cell:({row:{original:{sourceIdx:e}}})=>s.jsx(G,{idx:e,nameClassName:"hidden md:inline-block"}),filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"friendly_name",size:250,minSize:175,header:a(e=>e.friendly_name,{ns:"common"}),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??""} ${e.ieee_address}`,cell:({row:{original:{sourceIdx:e,device:t,state:n,batteryState:o}}})=>s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"avatar",children:s.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:s.jsx(Q,{device:t,otaState:n?.state,disabled:!1})})}),s.jsxs("div",{className:"flex-grow flex flex-col min-w-0",children:[s.jsx(P,{to:`/device/${e}/${t.ieee_address}/info`,className:"link link-hover truncate",children:t.friendly_name}),t.description&&s.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:t.description,children:t.description}),s.jsx("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:o&&s.jsx("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",children:s.jsx(be,{device:t,...o,showLevel:!0})})})]})]}),sortingFn:(e,t)=>e.original.device.friendly_name.localeCompare(t.original.device.friendly_name),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0}},{id:"ieee_address",minSize:175,header:a(e=>e.ieee_address,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.ieee_address} ${V(e.network_address,4)} ${e.network_address}`,cell:({row:{original:{sourceIdx:e,device:t}}})=>s.jsxs(s.Fragment,{children:[s.jsx("div",{children:s.jsx(P,{to:`/device/${e}/${t.ieee_address}/info`,className:"link link-hover font-mono",children:t.ieee_address})}),s.jsxs("div",{className:"flex flex-row gap-1",children:[s.jsx("span",{className:"badge badge-ghost badge-sm cursor-default font-mono",title:a(n=>n.network_address_hex,{ns:"zigbee"}),children:V(t.network_address,4)}),s.jsx("span",{className:"badge badge-ghost badge-sm cursor-default font-mono",title:a(n=>n.network_address_dec,{ns:"zigbee"}),children:t.network_address})]})]}),sortingFn:(e,t)=>e.original.device.ieee_address.localeCompare(t.original.device.ieee_address),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"model",minSize:175,header:a(e=>e.model,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.definition?.model??""} ${e.model_id??""} ${e.definition?.vendor??e.manufacturer??""}`,cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(he,{modelId:e.model_id,supported:e.supported,definitionModel:e.definition?.model}),s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost tooltip tooltip-bottom","data-tip":a(t=>t.manufacturer,{ns:"zigbee"}),children:s.jsx(ge,{supported:e.supported,definitionVendor:e.definition?.vendor})})})]}),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0,showFacetedOccurrences:!0}},{id:"firmware_id",minSize:175,header:a(e=>e.firmware_id,{ns:"zigbee"}),accessorFn:({device:e})=>`${e.software_build_id??""} ${e.date_code??""}`,cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(we,{device:e}),e.date_code&&s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost tooltip tooltip-bottom","data-tip":a(t=>t.firmware_build_date,{ns:"zigbee"}),children:e.date_code})})]}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"firmware_version",minSize:175,header:a(e=>e.firmware_version),accessorFn:({state:e})=>T(e?.installed_version)?.join(" "),cell:({row:{original:{state:e}}})=>s.jsx(w,{version:e?.installed_version}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"available_firmware_version",minSize:175,header:a(e=>e.available_firmware_version),accessorFn:({state:e})=>T(e?.latest_version)?.join(" "),cell:({row:{original:{state:e}}})=>s.jsx(w,{version:e?.latest_version}),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"state",header:a(e=>e.state,{ns:"common"}),accessorFn:({state:e})=>e?.state?a(t=>t[e.state]):a(t=>t.unknown,{ns:"zigbee"}),filterFn:"equals",meta:{filterVariant:"select"}},{id:"actions",header:"",minSize:130,accessorFn:({state:e})=>e?.state,cell:({row:{original:{sourceIdx:e,device:t,state:n,otaSettings:o}}})=>n?.state==="updating"?s.jsx(_e,{label:a(p=>p.remaining_time),remaining:n.remaining,progress:n.progress}):s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(Y,{sourceIdx:e,device:t,state:n,otaSettings:o,onCheckClick:y,onUpdateClick:u,onScheduleClick:j,onUnscheduleClick:v}),n?.state==="available"?s.jsx(xe,{sourceIdx:e,device:t,state:n,otaSettings:o,onUpdateClick:u,onScheduleClick:j}):null]}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}],[y,u,j,v,a]),{table:g,resetFilters:k,globalFilter:S,columnFilters:b}=fe({id:"ota-devices",columns:C,data:h,visibleColumns:{source:J,state:!1},sorting:[{id:"friendly_name",desc:!1}],rowSelection:m,onRowSelectionChange:x});return r.useEffect(()=>{const e=new Set;for(const o of g.getFilteredRowModel().rows)e.add(o.id);let t=!1;const n={};for(const o in m)e.has(o)?n[o]=!0:t=!0;t&&x(n)},[g,m,h,S,b]),s.jsxs(s.Fragment,{children:[s.jsx(K,{children:s.jsx(pe,{table:g,resetFilters:k,globalFilter:S,columnFilters:b})}),s.jsxs("div",{className:"mb-5",children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-2 px-2 pb-3",children:[s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/check",onClick:_,title:a(e=>e.check_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.check_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/update",onClick:_,title:a(e=>e.update_selected),modalDescription:a(e=>e.update_selected_info),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.update_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/schedule",onClick:_,title:a(e=>e.schedule_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.schedule_selected)} (${f})`}),s.jsx($,{className:"btn btn-outline btn-error btn-sm",item:"bridge/request/device/ota_update/unschedule",onClick:_,title:a(e=>e.unschedule_selected),modalDescription:a(e=>e.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:a(e=>e.cancel,{ns:"common"}),disabled:f===0,children:`${a(e=>e.unschedule_selected)} (${f})`})]}),s.jsx(ue,{id:"ota-devices",table:g,resetFilters:k,globalFilter:S,columnFilters:b})]})]})}export{Ue as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as j,u as g,j as a,F as c,k as B,
|
|
1
|
+
import{r as j,u as g,j as a,F as c,k as B,a_ as k,by as E,h as P,bz as u,bA as v,bB as x,bC as C,bD as p}from"./index-VJpwYvBU.js";import{s as w}from"./snakeCase-BPMTuOlK.js";const L=j.memo(h=>{const{device:m,batteryPercent:s,batteryState:y,batteryLow:f,showLevel:d,...l}=h,{t:n}=g("zigbee");let r;switch(m?.power_source&&(r=m.power_source),r){case"Battery":{let t=n(b=>b.battery),i="",e=u,o=!1;if(s!=null)i=`${s}%`,s>=85?e=u:s>=65?e=v:s>=40?e=x:s>=20?e=C:(e=p,o=!0);else if(y!=null)switch(i=y,y){case"high":e=u;break;case"medium":e=x;break;case"low":e=p,o=!0;break}else f!=null&&(i=f?"low":"ok",e=f?p:u);return f===!0&&(o=!0),i!==""&&(t+=`, ${n(b=>b.power_level)}: ${i}`),a.jsxs("span",{className:o?"text-error":"",children:[a.jsx(c,{icon:e,fade:o,title:t,...l}),d&&a.jsx("span",{className:"ps-2",children:i})]})}case"Mains (single phase)":case"Mains (3 phase)":case"DC Source":return a.jsx(c,{icon:P,title:n(t=>t[w(r)]),...l});case"Emergency mains and transfer switch":case"Emergency mains constantly powered":return a.jsx(c,{icon:E,title:n(t=>t[w(r)]),...l});default:return m?.type==="GreenPower"?a.jsx(c,{icon:B,title:"Green",...l}):a.jsx(c,{icon:k,title:r?n(t=>t[w(r)]):void 0,...l})}});export{L as P};
|
|
Binary file
|