node-red-contrib-knx-ultimate 7.1.2 → 7.1.4
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/CHANGELOG.md +1271 -1863
- package/README.md +4 -10
- package/nodes/hue-config.html +6 -0
- package/nodes/knxUltimate-config.html +14 -0
- package/nodes/knxUltimate.html +6 -0
- package/nodes/knxUltimateAI.html +6 -0
- package/nodes/knxUltimateAIHomeAssistant.html +14 -0
- package/nodes/knxUltimateAlerter.html +6 -0
- package/nodes/knxUltimateAutoResponder.html +6 -0
- package/nodes/knxUltimateDateTime.html +7 -1
- package/nodes/knxUltimateGarage.html +15 -1
- package/nodes/knxUltimateGlobalContext.html +6 -0
- package/nodes/knxUltimateHATranslator.html +6 -1
- package/nodes/knxUltimateHueAreaMotion.html +14 -0
- package/nodes/knxUltimateHueBattery.html +14 -0
- package/nodes/knxUltimateHueButton.html +14 -0
- package/nodes/knxUltimateHueCameraMotion.html +14 -0
- package/nodes/knxUltimateHueContactSensor.html +14 -0
- package/nodes/knxUltimateHueController.html +14 -0
- package/nodes/knxUltimateHueHumiditySensor.html +14 -0
- package/nodes/knxUltimateHueLight.html +14 -0
- package/nodes/knxUltimateHueLightSensor.html +14 -0
- package/nodes/knxUltimateHueMotion.html +14 -0
- package/nodes/knxUltimateHuePlug.html +14 -0
- package/nodes/knxUltimateHueScene.html +14 -0
- package/nodes/knxUltimateHueTapDial.html +14 -0
- package/nodes/knxUltimateHueTemperatureSensor.html +14 -0
- package/nodes/knxUltimateHueZigbeeConnectivity.html +14 -0
- package/nodes/knxUltimateHuedevice_software_update.html +14 -0
- package/nodes/knxUltimateIoTBridge.html +14 -0
- package/nodes/knxUltimateLoadControl.html +6 -0
- package/nodes/knxUltimateLogger.html +6 -0
- package/nodes/knxUltimateMatterBridge.html +15 -1
- package/nodes/knxUltimateMatterControllerDevice.html +15 -1
- package/nodes/knxUltimateMultiRouting.html +7 -1
- package/nodes/knxUltimateRouterFilter.html +7 -1
- package/nodes/knxUltimateSceneController.html +6 -0
- package/nodes/knxUltimateStaircase.html +7 -1
- package/nodes/knxUltimateUtility.html +6 -0
- package/nodes/knxUltimateViewer.html +6 -0
- package/nodes/knxUltimateWatchDog.html +16 -1
- package/nodes/locales/de/hue-config.html +8 -0
- package/nodes/locales/de/knxUltimate-config.html +8 -0
- package/nodes/locales/de/knxUltimate.html +8 -0
- package/nodes/locales/de/knxUltimateAI.html +8 -0
- package/nodes/locales/de/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/de/knxUltimateAlerter.html +9 -1
- package/nodes/locales/de/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/de/knxUltimateDateTime.html +8 -1
- package/nodes/locales/de/knxUltimateGarage.html +8 -0
- package/nodes/locales/de/knxUltimateGlobalContext.html +9 -1
- package/nodes/locales/de/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/de/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/de/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/de/knxUltimateHueButton.html +8 -0
- package/nodes/locales/de/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/de/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/de/knxUltimateHueController.html +8 -0
- package/nodes/locales/de/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/de/knxUltimateHueLight.html +8 -0
- package/nodes/locales/de/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/de/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/de/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/de/knxUltimateHueScene.html +8 -0
- package/nodes/locales/de/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/de/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/de/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/de/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/de/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/de/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/de/knxUltimateLogger.html +8 -0
- package/nodes/locales/de/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/de/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/de/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/de/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/de/knxUltimateSceneController.html +9 -1
- package/nodes/locales/de/knxUltimateStaircase.html +8 -0
- package/nodes/locales/de/knxUltimateUtility.html +8 -0
- package/nodes/locales/de/knxUltimateUtility.json +34 -0
- package/nodes/locales/de/knxUltimateViewer.html +8 -0
- package/nodes/locales/de/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/de/matter-config.html +8 -0
- package/nodes/locales/de/matterbridge-config.html +8 -0
- package/nodes/locales/en/hue-config.html +8 -0
- package/nodes/locales/en/knxUltimate-config.html +8 -0
- package/nodes/locales/en/knxUltimate.html +8 -0
- package/nodes/locales/en/knxUltimateAI.html +8 -0
- package/nodes/locales/en/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/en/knxUltimateAlerter.html +8 -0
- package/nodes/locales/en/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/en/knxUltimateDateTime.html +8 -0
- package/nodes/locales/en/knxUltimateGarage.html +8 -0
- package/nodes/locales/en/knxUltimateGlobalContext.html +8 -0
- package/nodes/locales/en/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/en/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/en/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/en/knxUltimateHueButton.html +8 -0
- package/nodes/locales/en/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/en/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/en/knxUltimateHueController.html +8 -0
- package/nodes/locales/en/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/en/knxUltimateHueLight.html +8 -0
- package/nodes/locales/en/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/en/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/en/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/en/knxUltimateHueScene.html +8 -0
- package/nodes/locales/en/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/en/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/en/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/en/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/en/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/en/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/en/knxUltimateLogger.html +8 -0
- package/nodes/locales/en/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/en/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/en/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/en/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/en/knxUltimateSceneController.html +8 -0
- package/nodes/locales/en/knxUltimateStaircase.html +8 -0
- package/nodes/locales/en/knxUltimateUtility.html +8 -0
- package/nodes/locales/en/knxUltimateUtility.json +34 -0
- package/nodes/locales/en/knxUltimateViewer.html +8 -0
- package/nodes/locales/en/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/en/matter-config.html +8 -0
- package/nodes/locales/en/matterbridge-config.html +8 -0
- package/nodes/locales/es/hue-config.html +8 -0
- package/nodes/locales/es/knxUltimate-config.html +8 -0
- package/nodes/locales/es/knxUltimate.html +8 -0
- package/nodes/locales/es/knxUltimateAI.html +8 -0
- package/nodes/locales/es/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/es/knxUltimateAlerter.html +8 -0
- package/nodes/locales/es/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/es/knxUltimateDateTime.html +8 -1
- package/nodes/locales/es/knxUltimateGarage.html +8 -0
- package/nodes/locales/es/knxUltimateGlobalContext.html +8 -0
- package/nodes/locales/es/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/es/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/es/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/es/knxUltimateHueButton.html +8 -0
- package/nodes/locales/es/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/es/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/es/knxUltimateHueController.html +8 -0
- package/nodes/locales/es/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/es/knxUltimateHueLight.html +8 -0
- package/nodes/locales/es/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/es/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/es/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/es/knxUltimateHueScene.html +8 -0
- package/nodes/locales/es/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/es/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/es/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/es/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/es/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/es/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/es/knxUltimateLogger.html +8 -0
- package/nodes/locales/es/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/es/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/es/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/es/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/es/knxUltimateSceneController.html +8 -0
- package/nodes/locales/es/knxUltimateStaircase.html +8 -0
- package/nodes/locales/es/knxUltimateUtility.html +8 -0
- package/nodes/locales/es/knxUltimateUtility.json +35 -1
- package/nodes/locales/es/knxUltimateViewer.html +8 -0
- package/nodes/locales/es/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/es/matter-config.html +8 -0
- package/nodes/locales/es/matterbridge-config.html +8 -0
- package/nodes/locales/fr/hue-config.html +8 -0
- package/nodes/locales/fr/knxUltimate-config.html +8 -0
- package/nodes/locales/fr/knxUltimate.html +8 -0
- package/nodes/locales/fr/knxUltimateAI.html +8 -0
- package/nodes/locales/fr/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/fr/knxUltimateAlerter.html +8 -0
- package/nodes/locales/fr/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/fr/knxUltimateDateTime.html +8 -1
- package/nodes/locales/fr/knxUltimateGarage.html +8 -0
- package/nodes/locales/fr/knxUltimateGlobalContext.html +8 -0
- package/nodes/locales/fr/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/fr/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/fr/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/fr/knxUltimateHueButton.html +8 -0
- package/nodes/locales/fr/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/fr/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/fr/knxUltimateHueController.html +8 -0
- package/nodes/locales/fr/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/fr/knxUltimateHueLight.html +8 -0
- package/nodes/locales/fr/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/fr/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/fr/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/fr/knxUltimateHueScene.html +8 -0
- package/nodes/locales/fr/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/fr/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/fr/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/fr/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/fr/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/fr/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/fr/knxUltimateLogger.html +8 -0
- package/nodes/locales/fr/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/fr/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/fr/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/fr/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/fr/knxUltimateSceneController.html +8 -0
- package/nodes/locales/fr/knxUltimateStaircase.html +8 -0
- package/nodes/locales/fr/knxUltimateUtility.html +8 -0
- package/nodes/locales/fr/knxUltimateUtility.json +34 -0
- package/nodes/locales/fr/knxUltimateViewer.html +8 -0
- package/nodes/locales/fr/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/fr/matter-config.html +8 -0
- package/nodes/locales/fr/matterbridge-config.html +8 -0
- package/nodes/locales/it/hue-config.html +8 -0
- package/nodes/locales/it/knxUltimate-config.html +8 -0
- package/nodes/locales/it/knxUltimate.html +8 -0
- package/nodes/locales/it/knxUltimateAI.html +8 -0
- package/nodes/locales/it/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/it/knxUltimateAlerter.html +8 -0
- package/nodes/locales/it/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/it/knxUltimateDateTime.html +8 -0
- package/nodes/locales/it/knxUltimateGarage.html +8 -0
- package/nodes/locales/it/knxUltimateGlobalContext.html +8 -0
- package/nodes/locales/it/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/it/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/it/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/it/knxUltimateHueButton.html +8 -0
- package/nodes/locales/it/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/it/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/it/knxUltimateHueController.html +8 -0
- package/nodes/locales/it/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/it/knxUltimateHueLight.html +8 -0
- package/nodes/locales/it/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/it/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/it/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/it/knxUltimateHueScene.html +8 -0
- package/nodes/locales/it/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/it/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/it/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/it/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/it/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/it/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/it/knxUltimateLogger.html +8 -0
- package/nodes/locales/it/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/it/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/it/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/it/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/it/knxUltimateSceneController.html +8 -0
- package/nodes/locales/it/knxUltimateStaircase.html +8 -0
- package/nodes/locales/it/knxUltimateUtility.html +8 -0
- package/nodes/locales/it/knxUltimateUtility.json +34 -0
- package/nodes/locales/it/knxUltimateViewer.html +8 -0
- package/nodes/locales/it/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/it/matter-config.html +8 -0
- package/nodes/locales/it/matterbridge-config.html +8 -0
- package/nodes/locales/zh-CN/hue-config.html +8 -0
- package/nodes/locales/zh-CN/knxUltimate-config.html +8 -0
- package/nodes/locales/zh-CN/knxUltimate.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateAI.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateAIHomeAssistant.html +11 -0
- package/nodes/locales/zh-CN/knxUltimateAlerter.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateAutoResponder.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateDateTime.html +8 -1
- package/nodes/locales/zh-CN/knxUltimateGarage.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateGlobalContext.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHATranslator.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueAreaMotion.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueBattery.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueButton.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueCameraMotion.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueContactSensor.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueController.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueHumiditySensor.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueLight.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueLightSensor.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueMotion.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHuePlug.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueScene.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueTapDial.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueTemperatureSensor.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHueZigbeeConnectivity.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateHuedevice_software_update.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateIoTBridge.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateLoadControl.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateLogger.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateMatterBridge.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateMatterControllerDevice.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateMultiRouting.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateRouterFilter.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateSceneController.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateStaircase.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateUtility.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateUtility.json +34 -0
- package/nodes/locales/zh-CN/knxUltimateViewer.html +8 -0
- package/nodes/locales/zh-CN/knxUltimateWatchDog.html +8 -0
- package/nodes/locales/zh-CN/matter-config.html +8 -0
- package/nodes/locales/zh-CN/matterbridge-config.html +8 -0
- package/nodes/matter-config.html +6 -0
- package/nodes/matterbridge-config.html +6 -0
- package/nodes/plugins/knxUltimate-migration-notice-plugin.html +25 -0
- package/nodes/plugins/knxUltimateAI-vue/assets/app.js +10 -10
- package/nodes/plugins/knxUltimateAI-vue/assets/chunk-purify.es.js +3 -3
- package/nodes/plugins/knxUltimateViewer-vue/assets/app.js +2 -2
- package/package.json +5 -1
- package/resources/flowMigrationBackup.js +1 -1
- package/resources/legacyMigrationNotice.js +8 -12
- package/resources/upgradeToV8.js +1193 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function s(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=s(n);fetch(n.href,i)}})();function Zs(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const X={},wt=[],He=()=>{},Zr=()=>!1,ps=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),gs=e=>e.startsWith("onUpdate:"),fe=Object.assign,Qs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ci=Object.prototype.hasOwnProperty,q=(e,t)=>ci.call(e,t),D=Array.isArray,xt=e=>kt(e)==="[object Map]",ms=e=>kt(e)==="[object Set]",mr=e=>kt(e)==="[object Date]",F=e=>typeof e=="function",Q=e=>typeof e=="string",je=e=>typeof e=="symbol",G=e=>e!==null&&typeof e=="object",Qr=e=>(G(e)||F(e))&&F(e.then)&&F(e.catch),en=Object.prototype.toString,kt=e=>en.call(e),ai=e=>kt(e).slice(8,-1),tn=e=>kt(e)==="[object Object]",er=e=>Q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rt=Zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_s=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ui=/-\w/g,Ee=_s(e=>e.replace(ui,t=>t.slice(1).toUpperCase())),fi=/\B([A-Z])/g,pt=_s(e=>e.replace(fi,"-$1").toLowerCase()),sn=_s(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ns=_s(e=>e?`on${sn(e)}`:""),Be=(e,t)=>!Object.is(e,t),ss=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},rn=(e,t,s,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:s})},bs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let _r;const ys=()=>_r||(_r=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function tr(e){if(D(e)){const t={};for(let s=0;s<e.length;s++){const r=e[s],n=Q(r)?gi(r):tr(r);if(n)for(const i in n)t[i]=n[i]}return t}else if(Q(e)||G(e))return e}const di=/;(?![^(]*\))/g,hi=/:([^]+)/,pi=/\/\*[^]*?\*\//g;function gi(e){const t={};return e.replace(pi,"").split(di).forEach(s=>{if(s){const r=s.split(hi);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function vs(e){let t="";if(Q(e))t=e;else if(D(e))for(let s=0;s<e.length;s++){const r=vs(e[s]);r&&(t+=r+" ")}else if(G(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const mi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",_i=Zs(mi);function nn(e){return!!e||e===""}function bi(e,t){if(e.length!==t.length)return!1;let s=!0;for(let r=0;s&&r<e.length;r++)s=Gt(e[r],t[r]);return s}function Gt(e,t){if(e===t)return!0;let s=mr(e),r=mr(t);if(s||r)return s&&r?e.getTime()===t.getTime():!1;if(s=je(e),r=je(t),s||r)return e===t;if(s=D(e),r=D(t),s||r)return s&&r?bi(e,t):!1;if(s=G(e),r=G(t),s||r){if(!s||!r)return!1;const n=Object.keys(e).length,i=Object.keys(t).length;if(n!==i)return!1;for(const o in e){const l=e.hasOwnProperty(o),u=t.hasOwnProperty(o);if(l&&!u||!l&&u||!Gt(e[o],t[o]))return!1}}return String(e)===String(t)}function yi(e,t){return e.findIndex(s=>Gt(s,t))}const on=e=>!!(e&&e.__v_isRef===!0),M=e=>Q(e)?e:e==null?"":D(e)||G(e)&&(e.toString===en||!F(e.toString))?on(e)?M(e.value):JSON.stringify(e,ln,2):String(e),ln=(e,t)=>on(t)?ln(e,t.value):xt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[r,n],i)=>(s[Is(r,i)+" =>"]=n,s),{})}:ms(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Is(s))}:je(t)?Is(t):G(t)&&!D(t)&&!tn(t)?String(t):t,Is=(e,t="")=>{var s;return je(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let ae;class vi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ae&&(ae.active?(this.parent=ae,this.index=(ae.scopes||(ae.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const r=this.scopes.slice();for(t=0,s=r.length;t<s;t++)r[t].pause()}for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t<s;t++)n[t].resume()}const r=this.effects.slice();for(t=0,s=r.length;t<s;t++)r[t].resume()}}run(t){if(this._active){const s=ae;try{return ae=this,t()}finally{ae=s}}}on(){++this._on===1&&(this.prevScope=ae,ae=this)}off(){if(this._on>0&&--this._on===0){if(ae===this)ae=this.prevScope;else{let t=ae;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,r;for(s=0,r=this.effects.length;s<r;s++)this.effects[s].stop();for(this.effects.length=0,s=0,r=this.cleanups.length;s<r;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const n=this.scopes.slice();for(s=0,r=n.length;s<r;s++)n[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function wi(){return ae}let Y;const Os=new WeakSet;class cn{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ae&&(ae.active?ae.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Os.has(this)&&(Os.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||un(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,br(this),fn(this);const t=Y,s=Te;Y=this,Te=!0;try{return this.fn()}finally{dn(this),Y=t,Te=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)nr(t);this.deps=this.depsTail=void 0,br(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Os.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Us(this)&&this.run()}get dirty(){return Us(this)}}let an=0,Mt,Dt;function un(e,t=!1){if(e.flags|=8,t){e.next=Dt,Dt=e;return}e.next=Mt,Mt=e}function sr(){an++}function rr(){if(--an>0)return;if(Dt){let t=Dt;for(Dt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Mt;){let t=Mt;for(Mt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=s}}if(e)throw e}function fn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function dn(e){let t,s=e.depsTail,r=s;for(;r;){const n=r.prevDep;r.version===-1?(r===s&&(s=n),nr(r),xi(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}e.deps=t,e.depsTail=s}function Us(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Kt)||(e.globalVersion=Kt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Us(e))))return;e.flags|=2;const t=e.dep,s=Y,r=Te;Y=e,Te=!0;try{fn(e);const n=e.fn(e._value);(t.version===0||Be(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{Y=s,Te=r,dn(e),e.flags&=-3}}function nr(e,t=!1){const{dep:s,prevSub:r,nextSub:n}=e;if(r&&(r.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=r,e.nextSub=void 0),s.subs===e&&(s.subs=r,!r&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)nr(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Te=!0;const pn=[];function ze(){pn.push(Te),Te=!1}function Xe(){const e=pn.pop();Te=e===void 0?!0:e}function br(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=Y;Y=void 0;try{t()}finally{Y=s}}}let Kt=0;class Si{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class gn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Y||!Te||Y===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Y)s=this.activeLink=new Si(Y,this),Y.deps?(s.prevDep=Y.depsTail,Y.depsTail.nextDep=s,Y.depsTail=s):Y.deps=Y.depsTail=s,mn(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const r=s.nextDep;r.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=r),s.prevDep=Y.depsTail,s.nextDep=void 0,Y.depsTail.nextDep=s,Y.depsTail=s,Y.deps===s&&(Y.deps=r)}return s}trigger(t){this.version++,Kt++,this.notify(t)}notify(t){sr();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{rr()}}}function mn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)mn(r)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const qs=new WeakMap,ft=Symbol(""),Bs=Symbol(""),$t=Symbol("");function ue(e,t,s){if(Te&&Y){let r=qs.get(e);r||qs.set(e,r=new Map);let n=r.get(s);n||(r.set(s,n=new gn),n.map=r,n.key=s),n.track()}}function We(e,t,s,r,n,i){const o=qs.get(e);if(!o){Kt++;return}const l=u=>{u&&u.trigger()};if(sr(),t==="clear")o.forEach(l);else{const u=D(e),d=u&&er(s);if(u&&s==="length"){const c=Number(r);o.forEach((p,x)=>{(x==="length"||x===$t||!je(x)&&x>=c)&&l(p)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),d&&l(o.get($t)),t){case"add":u?d&&l(o.get("length")):(l(o.get(ft)),xt(e)&&l(o.get(Bs)));break;case"delete":u||(l(o.get(ft)),xt(e)&&l(o.get(Bs)));break;case"set":xt(e)&&l(o.get(ft));break}}rr()}function yt(e){const t=k(e);return t===e?t:(ue(t,"iterate",$t),Ce(e)?t:t.map(Je))}function ws(e){return ue(e=k(e),"iterate",$t),e}function Fe(e,t){return st(e)?Tt(dt(e)?Je(t):t):Je(t)}const Ei={__proto__:null,[Symbol.iterator](){return Vs(this,Symbol.iterator,e=>Fe(this,e))},concat(...e){return yt(this).concat(...e.map(t=>D(t)?yt(t):t))},entries(){return Vs(this,"entries",e=>(e[1]=Fe(this,e[1]),e))},every(e,t){return $e(this,"every",e,t,void 0,arguments)},filter(e,t){return $e(this,"filter",e,t,s=>s.map(r=>Fe(this,r)),arguments)},find(e,t){return $e(this,"find",e,t,s=>Fe(this,s),arguments)},findIndex(e,t){return $e(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $e(this,"findLast",e,t,s=>Fe(this,s),arguments)},findLastIndex(e,t){return $e(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $e(this,"forEach",e,t,void 0,arguments)},includes(...e){return Rs(this,"includes",e)},indexOf(...e){return Rs(this,"indexOf",e)},join(e){return yt(this).join(e)},lastIndexOf(...e){return Rs(this,"lastIndexOf",e)},map(e,t){return $e(this,"map",e,t,void 0,arguments)},pop(){return Pt(this,"pop")},push(...e){return Pt(this,"push",e)},reduce(e,...t){return yr(this,"reduce",e,t)},reduceRight(e,...t){return yr(this,"reduceRight",e,t)},shift(){return Pt(this,"shift")},some(e,t){return $e(this,"some",e,t,void 0,arguments)},splice(...e){return Pt(this,"splice",e)},toReversed(){return yt(this).toReversed()},toSorted(e){return yt(this).toSorted(e)},toSpliced(...e){return yt(this).toSpliced(...e)},unshift(...e){return Pt(this,"unshift",e)},values(){return Vs(this,"values",e=>Fe(this,e))}};function Vs(e,t,s){const r=ws(e),n=r[t]();return r!==e&&!Ce(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const Ti=Array.prototype;function $e(e,t,s,r,n,i){const o=ws(e),l=o!==e&&!Ce(e),u=o[t];if(u!==Ti[t]){const p=u.apply(e,i);return l?Je(p):p}let d=s;o!==e&&(l?d=function(p,x){return s.call(this,Fe(e,p),x,e)}:s.length>2&&(d=function(p,x){return s.call(this,p,x,e)}));const c=u.call(o,d,r);return l&&n?n(c):c}function yr(e,t,s,r){const n=ws(e),i=n!==e&&!Ce(e);let o=s,l=!1;n!==e&&(i?(l=r.length===0,o=function(d,c,p){return l&&(l=!1,d=Fe(e,d)),s.call(this,d,Fe(e,c),p,e)}):s.length>3&&(o=function(d,c,p){return s.call(this,d,c,p,e)}));const u=n[t](o,...r);return l?Fe(e,u):u}function Rs(e,t,s){const r=k(e);ue(r,"iterate",$t);const n=r[t](...s);return(n===-1||n===!1)&&lr(s[0])?(s[0]=k(s[0]),r[t](...s)):n}function Pt(e,t,s=[]){ze(),sr();const r=k(e)[t].apply(e,s);return rr(),Xe(),r}const Ci=Zs("__proto__,__v_isRef,__isVue"),_n=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(je));function Ai(e){je(e)||(e=String(e));const t=k(this);return ue(t,"has",e),t.hasOwnProperty(e)}class bn{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,r){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return r===(n?i?Li:xn:i?wn:vn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=D(t);if(!n){let u;if(o&&(u=Ei[s]))return u;if(s==="hasOwnProperty")return Ai}const l=Reflect.get(t,s,me(t)?t:r);if((je(s)?_n.has(s):Ci(s))||(n||ue(t,"get",s),i))return l;if(me(l)){const u=o&&er(s)?l:l.value;return n&&G(u)?ks(u):u}return G(l)?n?ks(l):xs(l):l}}class yn extends bn{constructor(t=!1){super(!1,t)}set(t,s,r,n){let i=t[s];const o=D(t)&&er(s);if(!this._isShallow){const d=st(i);if(!Ce(r)&&!st(r)&&(i=k(i),r=k(r)),!o&&me(i)&&!me(r))return d||(i.value=r),!0}const l=o?Number(s)<t.length:q(t,s),u=Reflect.set(t,s,r,me(t)?t:n);return t===k(n)&&u&&(l?Be(r,i)&&We(t,"set",s,r):We(t,"add",s,r)),u}deleteProperty(t,s){const r=q(t,s);t[s];const n=Reflect.deleteProperty(t,s);return n&&r&&We(t,"delete",s,void 0),n}has(t,s){const r=Reflect.has(t,s);return(!je(s)||!_n.has(s))&&ue(t,"has",s),r}ownKeys(t){return ue(t,"iterate",D(t)?"length":ft),Reflect.ownKeys(t)}}class Pi extends bn{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Ni=new yn,Ii=new Pi,Oi=new yn(!0);const Ws=e=>e,Zt=e=>Reflect.getPrototypeOf(e);function Vi(e,t,s){return function(...r){const n=this.__v_raw,i=k(n),o=xt(i),l=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,d=n[e](...r),c=s?Ws:t?Tt:Je;return!t&&ue(i,"iterate",u?Bs:ft),fe(Object.create(d),{next(){const{value:p,done:x}=d.next();return x?{value:p,done:x}:{value:l?[c(p[0]),c(p[1])]:c(p),done:x}}})}}function Qt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ri(e,t){const s={get(n){const i=this.__v_raw,o=k(i),l=k(n);e||(Be(n,l)&&ue(o,"get",n),ue(o,"get",l));const{has:u}=Zt(o),d=t?Ws:e?Tt:Je;if(u.call(o,n))return d(i.get(n));if(u.call(o,l))return d(i.get(l));i!==o&&i.get(n)},get size(){const n=this.__v_raw;return!e&&ue(k(n),"iterate",ft),n.size},has(n){const i=this.__v_raw,o=k(i),l=k(n);return e||(Be(n,l)&&ue(o,"has",n),ue(o,"has",l)),n===l?i.has(n):i.has(n)||i.has(l)},forEach(n,i){const o=this,l=o.__v_raw,u=k(l),d=t?Ws:e?Tt:Je;return!e&&ue(u,"iterate",ft),l.forEach((c,p)=>n.call(i,d(c),d(p),o))}};return fe(s,e?{add:Qt("add"),set:Qt("set"),delete:Qt("delete"),clear:Qt("clear")}:{add(n){const i=k(this),o=Zt(i),l=k(n),u=!t&&!Ce(n)&&!st(n)?l:n;return o.has.call(i,u)||Be(n,u)&&o.has.call(i,n)||Be(l,u)&&o.has.call(i,l)||(i.add(u),We(i,"add",u,u)),this},set(n,i){!t&&!Ce(i)&&!st(i)&&(i=k(i));const o=k(this),{has:l,get:u}=Zt(o);let d=l.call(o,n);d||(n=k(n),d=l.call(o,n));const c=u.call(o,n);return o.set(n,i),d?Be(i,c)&&We(o,"set",n,i):We(o,"add",n,i),this},delete(n){const i=k(this),{has:o,get:l}=Zt(i);let u=o.call(i,n);u||(n=k(n),u=o.call(i,n)),l&&l.call(i,n);const d=i.delete(n);return u&&We(i,"delete",n,void 0),d},clear(){const n=k(this),i=n.size!==0,o=n.clear();return i&&We(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=Vi(n,e,t)}),s}function ir(e,t){const s=Ri(e,t);return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(q(s,n)&&n in r?s:r,n,i)}const Mi={get:ir(!1,!1)},Di={get:ir(!1,!0)},Fi={get:ir(!0,!1)};const vn=new WeakMap,wn=new WeakMap,xn=new WeakMap,Li=new WeakMap;function Hi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xs(e){return st(e)?e:or(e,!1,Ni,Mi,vn)}function ji(e){return or(e,!1,Oi,Di,wn)}function ks(e){return or(e,!0,Ii,Fi,xn)}function or(e,t,s,r,n){if(!G(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const o=Hi(ai(e));if(o===0)return e;const l=new Proxy(e,o===2?r:s);return n.set(e,l),l}function dt(e){return st(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function st(e){return!!(e&&e.__v_isReadonly)}function Ce(e){return!!(e&&e.__v_isShallow)}function lr(e){return e?!!e.__v_raw:!1}function k(e){const t=e&&e.__v_raw;return t?k(t):e}function Ki(e){return!q(e,"__v_skip")&&Object.isExtensible(e)&&rn(e,"__v_skip",!0),e}const Je=e=>G(e)?xs(e):e,Tt=e=>G(e)?ks(e):e;function me(e){return e?e.__v_isRef===!0:!1}function L(e){return me(e)?e.value:e}const $i={get:(e,t,s)=>t==="__v_raw"?e:L(Reflect.get(e,t,s)),set:(e,t,s,r)=>{const n=e[t];return me(n)&&!me(s)?(n.value=s,!0):Reflect.set(e,t,s,r)}};function Sn(e){return dt(e)?e:new Proxy(e,$i)}class Ui{constructor(t,s,r){this.fn=t,this.setter=s,this._value=void 0,this.dep=new gn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Kt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Y!==this)return un(this,!0),!0}get value(){const t=this.dep.track();return hn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function qi(e,t,s=!1){let r,n;return F(e)?r=e:(r=e.get,n=e.set),new Ui(r,n,s)}const es={},is=new WeakMap;let ct;function Bi(e,t=!1,s=ct){if(s){let r=is.get(s);r||is.set(s,r=[]),r.push(e)}}function Wi(e,t,s=X){const{immediate:r,deep:n,once:i,scheduler:o,augmentJob:l,call:u}=s,d=C=>n?C:Ce(C)||n===!1||n===0?ke(C,1):ke(C);let c,p,x,T,j=!1,O=!1;if(me(e)?(p=()=>e.value,j=Ce(e)):dt(e)?(p=()=>d(e),j=!0):D(e)?(O=!0,j=e.some(C=>dt(C)||Ce(C)),p=()=>e.map(C=>{if(me(C))return C.value;if(dt(C))return d(C);if(F(C))return u?u(C,2):C()})):F(e)?t?p=u?()=>u(e,2):e:p=()=>{if(x){ze();try{x()}finally{Xe()}}const C=ct;ct=c;try{return u?u(e,3,[T]):e(T)}finally{ct=C}}:p=He,t&&n){const C=p,ee=n===!0?1/0:n;p=()=>ke(C(),ee)}const $=wi(),J=()=>{c.stop(),$&&$.active&&Qs($.effects,c)};if(i&&t){const C=t;t=(...ee)=>{const ne=C(...ee);return J(),ne}}let H=O?new Array(e.length).fill(es):es;const U=C=>{if(!(!(c.flags&1)||!c.dirty&&!C))if(t){const ee=c.run();if(C||n||j||(O?ee.some((ne,be)=>Be(ne,H[be])):Be(ee,H))){x&&x();const ne=ct;ct=c;try{const be=[ee,H===es?void 0:O&&H[0]===es?[]:H,T];H=ee,u?u(t,3,be):t(...be)}finally{ct=ne}}}else c.run()};return l&&l(U),c=new cn(p),c.scheduler=o?()=>o(U,!1):U,T=C=>Bi(C,!1,c),x=c.onStop=()=>{const C=is.get(c);if(C){if(u)u(C,4);else for(const ee of C)ee();is.delete(c)}},t?r?U(!0):H=c.run():o?o(U.bind(null,!0),!0):c.run(),J.pause=c.pause.bind(c),J.resume=c.resume.bind(c),J.stop=J,J}function ke(e,t=1/0,s){if(t<=0||!G(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,me(e))ke(e.value,t,s);else if(D(e))for(let r=0;r<e.length;r++)ke(e[r],t,s);else if(ms(e)||xt(e))e.forEach(r=>{ke(r,t,s)});else if(tn(e)){for(const r in e)ke(e[r],t,s);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ke(e[r],t,s)}return e}function zt(e,t,s,r){try{return r?e(...r):e()}catch(n){Ss(n,t,s)}}function Ae(e,t,s,r){if(F(e)){const n=zt(e,t,s,r);return n&&Qr(n)&&n.catch(i=>{Ss(i,t,s)}),n}if(D(e)){const n=[];for(let i=0;i<e.length;i++)n.push(Ae(e[i],t,s,r));return n}}function Ss(e,t,s,r=!0){const n=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||X;if(t){let l=t.parent;const u=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;l;){const c=l.ec;if(c){for(let p=0;p<c.length;p++)if(c[p](e,u,d)===!1)return}l=l.parent}if(i){ze(),zt(i,null,10,[e,u,d]),Xe();return}}ki(e,s,n,r,o)}function ki(e,t,s,r=!0,n=!1){if(n)throw e;console.error(e)}const pe=[];let De=-1;const St=[];let tt=null,vt=0;const En=Promise.resolve();let os=null;function Tn(e){const t=os||En;return e?t.then(this?e.bind(this):e):t}function Gi(e){let t=De+1,s=pe.length;for(;t<s;){const r=t+s>>>1,n=pe[r],i=Ut(n);i<e||i===e&&n.flags&2?t=r+1:s=r}return t}function cr(e){if(!(e.flags&1)){const t=Ut(e),s=pe[pe.length-1];!s||!(e.flags&2)&&t>=Ut(s)?pe.push(e):pe.splice(Gi(t),0,e),e.flags|=1,Cn()}}function Cn(){os||(os=En.then(Pn))}function zi(e){if(!D(e))tt&&e.id===-1?tt.splice(vt+1,0,e):e.flags&1||(St.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)St.push(e[t]);Cn()}function vr(e,t,s=De+1){for(;s<pe.length;s++){const r=pe[s];if(r&&r.flags&2){if(e&&r.id!==e.uid)continue;pe.splice(s,1),s--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function An(e){if(St.length){const t=[...new Set(St)].sort((s,r)=>Ut(s)-Ut(r));if(St.length=0,tt){for(let s=0;s<t.length;s++)tt.push(t[s]);return}for(tt=t,vt=0;vt<tt.length;vt++){const s=tt[vt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}tt=null,vt=0}}const Ut=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Pn(e){try{for(De=0;De<pe.length;De++){const t=pe[De];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),zt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;De<pe.length;De++){const t=pe[De];t&&(t.flags&=-2)}De=-1,pe.length=0,An(),os=null,(pe.length||St.length)&&Pn()}}let xe=null,Nn=null;function ls(e){const t=xe;return xe=e,Nn=e&&e.type.__scopeId||null,t}function Xi(e,t=xe,s){if(!t||e._n)return e;const r=(...n)=>{r._d&&Rr(-1);const i=ls(t),o=ht.length;let l;try{l=e(...n)}finally{for(let u=ht.length;u>o;u--)ti();ls(i),r._d&&Rr(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function wr(e,t){if(xe===null)return e;const s=Ps(xe),r=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[i,o,l,u=X]=t[n];i&&(F(i)&&(i={mounted:i,updated:i}),i.deep&&ke(o),r.push({dir:i,instance:s,value:o,oldValue:void 0,arg:l,modifiers:u}))}return e}function ot(e,t,s,r){const n=e.dirs,i=t&&t.dirs;for(let o=0;o<n.length;o++){const l=n[o];i&&(l.oldValue=i[o].value);let u=l.dir[r];u&&(ze(),Ae(u,s,8,[e.el,l,e,t]),Xe())}}function Ji(e,t){if(ge){let s=ge.provides;const r=ge.parent&&ge.parent.provides;r===s&&(s=ge.provides=Object.create(r)),s[e]=t}}function rs(e,t,s=!1){const r=Go();if(r||Et){let n=Et?Et._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(n&&e in n)return n[e];if(arguments.length>1)return s&&F(t)?t.call(r&&r.proxy):t}}const Yi=Symbol.for("v-scx"),Zi=()=>rs(Yi);function Ft(e,t,s){return In(e,t,s)}function In(e,t,s=X){const{immediate:r,deep:n,flush:i,once:o}=s,l=fe({},s),u=t&&r||!t&&i!=="post";let d;if(Wt){if(i==="sync"){const T=Zi();d=T.__watcherHandles||(T.__watcherHandles=[])}else if(!u){const T=()=>{};return T.stop=He,T.resume=He,T.pause=He,T}}const c=ge;l.call=(T,j,O)=>Ae(T,c,j,O);let p=!1;i==="post"?l.scheduler=T=>{_e(T,c&&c.suspense)}:i!=="sync"&&(p=!0,l.scheduler=(T,j)=>{j?T():cr(T)}),l.augmentJob=T=>{t&&(T.flags|=4),p&&(T.flags|=2,c&&(T.id=c.uid,T.i=c))};const x=Wi(e,t,l);return Wt&&(d?d.push(x):u&&x()),x}function Qi(e,t,s){const r=this.proxy,n=Q(e)?e.includes(".")?On(r,e):()=>r[e]:e.bind(r,r);let i;F(t)?i=t:(i=t.handler,s=t);const o=Xt(this),l=In(n,i.bind(r),s);return o(),l}function On(e,t){const s=t.split(".");return()=>{let r=e;for(let n=0;n<s.length&&r;n++)r=r[s[n]];return r}}const eo=Symbol("_vte"),Es=e=>e.__isTeleport,Ms=Symbol("_leaveCb");function to(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ye){t=s;break}}return t}function Vn(e){if(!ur(e))return Es(e.type)&&e.children?to(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&F(s.default))return s.default()}}function ar(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;ar(Es(s.type)&&Vn(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Rn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function xr(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const cs=new WeakMap;function Lt(e,t,s,r,n=!1){if(D(e)){e.forEach((O,$)=>Lt(O,t&&(D(t)?t[$]:t),s,r,n));return}if(Ht(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Lt(e,t,s,r.component.subTree);return}const i=r.shapeFlag&4?Ps(r.component):r.el,o=n?null:i,{i:l,r:u}=e,d=t&&t.r,c=l.refs===X?l.refs={}:l.refs,p=l.setupState,x=k(p),T=p===X?Zr:O=>xr(c,O)?!1:q(x,O),j=(O,$)=>!($&&xr(c,$));if(d!=null&&d!==u){if(Sr(t),Q(d))c[d]=null,T(d)&&(p[d]=null);else if(me(d)){const O=t;j(d,O.k)&&(d.value=null),O.k&&(c[O.k]=null)}}if(F(u))zt(u,l,12,[o,c]);else{const O=Q(u),$=me(u);if(O||$){const J=()=>{if(e.f){const H=O?T(u)?p[u]:c[u]:j()||!e.k?u.value:c[e.k];if(n)D(H)&&Qs(H,i);else if(D(H))H.includes(i)||H.push(i);else if(O)c[u]=[i],T(u)&&(p[u]=c[u]);else{const U=[i];j(u,e.k)&&(u.value=U),e.k&&(c[e.k]=U)}}else O?(c[u]=o,T(u)&&(p[u]=o)):$&&(j(u,e.k)&&(u.value=o),e.k&&(c[e.k]=o))};if(o){const H=()=>{J(),cs.delete(e)};H.id=-1,cs.set(e,H),_e(H,s)}else Sr(e),J()}}}function Sr(e){const t=cs.get(e);t&&(t.flags|=8,cs.delete(e))}ys().requestIdleCallback;ys().cancelIdleCallback;const Ht=e=>!!e.type.__asyncLoader,ur=e=>e.type.__isKeepAlive;function so(e,t){Mn(e,"a",t)}function ro(e,t){Mn(e,"da",t)}function Mn(e,t,s=ge){const r=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Ts(t,r,s),s){let n=s.parent;for(;n&&n.parent;)ur(n.parent.vnode)&&no(r,t,s,n),n=n.parent}}function no(e,t,s,r){const n=Ts(t,e,r,!0);Ln(()=>{Qs(r[t],n)},s)}function Ts(e,t,s=ge,r=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{ze();const l=Xt(s),u=Ae(t,s,e,o);return l(),Xe(),u});return r?n.unshift(i):n.push(i),i}}const Ze=e=>(t,s=ge)=>{(!Wt||e==="sp")&&Ts(e,(...r)=>t(...r),s)},io=Ze("bm"),Dn=Ze("m"),oo=Ze("bu"),lo=Ze("u"),Fn=Ze("bum"),Ln=Ze("um"),co=Ze("sp"),ao=Ze("rtg"),uo=Ze("rtc");function fo(e,t=ge){Ts("ec",e,t)}const ho=Symbol.for("v-ndc");function Er(e,t,s,r){let n;const i=s,o=D(e);if(o||Q(e)){const l=o&&dt(e);let u=!1,d=!1;l&&(u=!Ce(e),d=st(e),e=ws(e)),n=new Array(e.length);for(let c=0,p=e.length;c<p;c++)n[c]=t(u?d?Tt(Je(e[c])):Je(e[c]):e[c],c,void 0,i)}else if(typeof e=="number"){n=new Array(e);for(let l=0;l<e;l++)n[l]=t(l+1,l,void 0,i)}else if(G(e))if(e[Symbol.iterator])n=Array.from(e,(l,u)=>t(l,u,void 0,i));else{const l=Object.keys(e);n=new Array(l.length);for(let u=0,d=l.length;u<d;u++){const c=l[u];n[u]=t(e[c],c,u,i)}}else n=[];return n}const Gs=e=>e?ii(e)?Ps(e):Gs(e.parent):null,jt=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gs(e.parent),$root:e=>Gs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>jn(e),$forceUpdate:e=>e.f||(e.f=()=>{cr(e.update)}),$nextTick:e=>e.n||(e.n=Tn.bind(e.proxy)),$watch:e=>Qi.bind(e)}),Ds=(e,t)=>e!==X&&!e.__isScriptSetup&&q(e,t),po={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:r,data:n,props:i,accessCache:o,type:l,appContext:u}=e;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return r[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(Ds(r,t))return o[t]=1,r[t];if(n!==X&&q(n,t))return o[t]=2,n[t];if(q(i,t))return o[t]=3,i[t];if(s!==X&&q(s,t))return o[t]=4,s[t];zs&&(o[t]=0)}}const d=jt[t];let c,p;if(d)return t==="$attrs"&&ue(e.attrs,"get",""),d(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(s!==X&&q(s,t))return o[t]=4,s[t];if(p=u.config.globalProperties,q(p,t))return p[t]},set({_:e},t,s){const{data:r,setupState:n,ctx:i}=e;return Ds(n,t)?(n[t]=s,!0):r!==X&&q(r,t)?(r[t]=s,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:r,appContext:n,props:i,type:o}},l){let u;return!!(s[l]||e!==X&&l[0]!=="$"&&q(e,l)||Ds(t,l)||q(i,l)||q(r,l)||q(jt,l)||q(n.config.globalProperties,l)||(u=o.__cssModules)&&u[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:q(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Tr(e){return D(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let zs=!0;function go(e){const t=jn(e),s=e.proxy,r=e.ctx;zs=!1,t.beforeCreate&&Cr(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:o,watch:l,provide:u,inject:d,created:c,beforeMount:p,mounted:x,beforeUpdate:T,updated:j,activated:O,deactivated:$,beforeDestroy:J,beforeUnmount:H,destroyed:U,unmounted:C,render:ee,renderTracked:ne,renderTriggered:be,errorCaptured:Se,serverPrefetch:gt,expose:Ke,inheritAttrs:rt,components:mt,directives:Qe,filters:nt}=t;if(d&&mo(d,r,null),o)for(const Z in o){const B=o[Z];F(B)&&(r[Z]=B.bind(s))}if(n){const Z=n.call(s,s);G(Z)&&(e.data=xs(Z))}if(zs=!0,i)for(const Z in i){const B=i[Z],Pe=F(B)?B.bind(s,s):F(B.get)?B.get.bind(s,s):He,_t=!F(B)&&F(B.set)?B.set.bind(s):He,Ne=Ot({get:Pe,set:_t});Object.defineProperty(r,Z,{enumerable:!0,configurable:!0,get:()=>Ne.value,set:de=>Ne.value=de})}if(l)for(const Z in l)Hn(l[Z],r,s,Z);if(u){const Z=F(u)?u.call(s):u;Reflect.ownKeys(Z).forEach(B=>{Ji(B,Z[B])})}c&&Cr(c,e,"c");function ie(Z,B){D(B)?B.forEach(Pe=>Z(Pe.bind(s))):B&&Z(B.bind(s))}if(ie(io,p),ie(Dn,x),ie(oo,T),ie(lo,j),ie(so,O),ie(ro,$),ie(fo,Se),ie(uo,ne),ie(ao,be),ie(Fn,H),ie(Ln,C),ie(co,gt),D(Ke))if(Ke.length){const Z=e.exposed||(e.exposed={});Ke.forEach(B=>{Object.defineProperty(Z,B,{get:()=>s[B],set:Pe=>s[B]=Pe,enumerable:!0})})}else e.exposed||(e.exposed={});ee&&e.render===He&&(e.render=ee),rt!=null&&(e.inheritAttrs=rt),mt&&(e.components=mt),Qe&&(e.directives=Qe),gt&&Rn(e)}function mo(e,t,s=He){D(e)&&(e=Xs(e));for(const r in e){const n=e[r];let i;G(n)?"default"in n?i=rs(n.from||r,n.default,!0):i=rs(n.from||r):i=rs(n),me(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Cr(e,t,s){Ae(D(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,s)}function Hn(e,t,s,r){let n=r.includes(".")?On(s,r):()=>s[r];if(Q(e)){const i=t[e];F(i)&&Ft(n,i)}else if(F(e))Ft(n,e.bind(s));else if(G(e))if(D(e))e.forEach(i=>Hn(i,t,s,r));else{const i=F(e.handler)?e.handler.bind(s):t[e.handler];F(i)&&Ft(n,i,e)}}function jn(e){const t=e.type,{mixins:s,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let u;return l?u=l:!n.length&&!s&&!r?u=t:(u={},n.length&&n.forEach(d=>as(u,d,o,!0)),as(u,t,o)),G(t)&&i.set(t,u),u}function as(e,t,s,r=!1){const{mixins:n,extends:i}=t;i&&as(e,i,s,!0),n&&n.forEach(o=>as(e,o,s,!0));for(const o in t)if(!(r&&o==="expose")){const l=_o[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const _o={data:Ar,props:Pr,emits:Pr,methods:It,computed:It,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:It,directives:It,watch:yo,provide:Ar,inject:bo};function Ar(e,t){return t?e?function(){return fe(F(e)?e.call(this,this):e,F(t)?t.call(this,this):t)}:t:e}function bo(e,t){return It(Xs(e),Xs(t))}function Xs(e){if(D(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function he(e,t){return e?[...new Set([].concat(e,t))]:t}function It(e,t){return e?fe(Object.create(null),e,t):t}function Pr(e,t){return e?D(e)&&D(t)?[...new Set([...e,...t])]:fe(Object.create(null),Tr(e),Tr(t??{})):t}function yo(e,t){if(!e)return t;if(!t)return e;const s=fe(Object.create(null),e);for(const r in t)s[r]=he(e[r],t[r]);return s}function Kn(){return{app:null,config:{isNativeTag:Zr,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let vo=0;function wo(e,t){return function(r,n=null){F(r)||(r=fe({},r)),n!=null&&!G(n)&&(n=null);const i=Kn(),o=new WeakSet,l=[];let u=!1;const d=i.app={_uid:vo++,_component:r,_props:n,_container:null,_context:i,_instance:null,version:Qo,get config(){return i.config},set config(c){},use(c,...p){return o.has(c)||(c&&F(c.install)?(o.add(c),c.install(d,...p)):F(c)&&(o.add(c),c(d,...p))),d},mixin(c){return i.mixins.includes(c)||i.mixins.push(c),d},component(c,p){return p?(i.components[c]=p,d):i.components[c]},directive(c,p){return p?(i.directives[c]=p,d):i.directives[c]},mount(c,p,x){if(!u){const T=d._ceVNode||Ge(r,n);return T.appContext=i,x===!0?x="svg":x===!1&&(x=void 0),e(T,c,x),u=!0,d._container=c,c.__vue_app__=d,Ps(T.component)}},onUnmount(c){l.push(c)},unmount(){u&&(Ae(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(c,p){return i.provides[c]=p,d},runWithContext(c){const p=Et;Et=d;try{return c()}finally{Et=p}}};return d}}let Et=null;const xo=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ee(t)}Modifiers`]||e[`${pt(t)}Modifiers`];function So(e,t,...s){if(e.isUnmounted)return;const r=e.vnode.props||X;let n=s;const i=t.startsWith("update:"),o=i&&xo(r,t.slice(7));o&&(o.trim&&(n=s.map(c=>Q(c)?c.trim():c)),o.number&&(n=s.map(bs)));let l,u=r[l=Ns(t)]||r[l=Ns(Ee(t))];!u&&i&&(u=r[l=Ns(pt(t))]),u&&Ae(u,e,6,n);const d=r[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(d,e,6,n)}}const Eo=new WeakMap;function $n(e,t,s=!1){const r=s?Eo:t.emitsCache,n=r.get(e);if(n!==void 0)return n;const i=e.emits;let o={},l=!1;if(!F(e)){const u=d=>{const c=$n(d,t,!0);c&&(l=!0,fe(o,c))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!l?(G(e)&&r.set(e,null),null):(D(i)?i.forEach(u=>o[u]=null):fe(o,i),G(e)&&r.set(e,o),o)}function Cs(e,t){return!e||!ps(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,pt(t))||q(e,t))}function Nr(e){const{type:t,vnode:s,proxy:r,withProxy:n,propsOptions:[i],slots:o,attrs:l,emit:u,render:d,renderCache:c,props:p,data:x,setupState:T,ctx:j,inheritAttrs:O}=e,$=ls(e);let J,H;try{if(s.shapeFlag&4){const C=n||r,ee=C;J=Le(d.call(ee,C,c,p,T,x,j)),H=l}else{const C=t;J=Le(C.length>1?C(p,{attrs:l,slots:o,emit:u}):C(p,null)),H=t.props?l:To(l)}}catch(C){ht.length=0,Ss(C,e,1),J=Ge(Ye)}let U=J;if(H&&O!==!1){const C=Object.keys(H),{shapeFlag:ee}=U;C.length&&ee&7&&(i&&C.some(gs)&&(H=Co(H,i)),U=Ct(U,H,!1,!0))}if(s.dirs&&(U=Ct(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(s.dirs):s.dirs),s.transition){const C=Es(U.type)&&Vn(U)||U;ar(C,s.transition)}return J=U,ls($),J}const To=e=>{let t;for(const s in e)(s==="class"||s==="style"||ps(s))&&((t||(t={}))[s]=e[s]);return t},Co=(e,t)=>{const s={};for(const r in e)(!gs(r)||!(r.slice(9)in t))&&(s[r]=e[r]);return s};function Ao(e,t,s){const{props:r,children:n,component:i}=e,{props:o,children:l,patchFlag:u}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return r?Ir(r,o,d):!!o;if(u&8){const c=t.dynamicProps;for(let p=0;p<c.length;p++){const x=c[p];if(Un(o,r,x)&&!Cs(d,x))return!0}}}else return(n||l)&&(!l||!l.$stable)?!0:r===o?!1:r?o?Ir(r,o,d):!0:!!o;return!1}function Ir(e,t,s){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let n=0;n<r.length;n++){const i=r[n];if(Un(t,e,i)&&!Cs(s,i))return!0}return!1}function Un(e,t,s){const r=e[s],n=t[s];return s==="style"&&G(r)&&G(n)?!Gt(r,n):r!==n}function Po({vnode:e,parent:t,suspense:s},r){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=r)}const qn={},Bn=()=>Object.create(qn),Wn=e=>Object.getPrototypeOf(e)===qn;function No(e,t,s,r=!1){const n={},i=Bn();e.propsDefaults=Object.create(null),kn(e,t,n,i);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);s?e.props=r?n:ji(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function Io(e,t,s,r){const{props:n,attrs:i,vnode:{patchFlag:o}}=e,l=k(n),[u]=e.propsOptions;let d=!1;if((r||o>0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let p=0;p<c.length;p++){let x=c[p];if(Cs(e.emitsOptions,x))continue;const T=t[x];if(u)if(q(i,x))T!==i[x]&&(i[x]=T,d=!0);else{const j=Ee(x);n[j]=Js(u,l,j,T,e,!1)}else T!==i[x]&&(i[x]=T,d=!0)}}}else{kn(e,t,n,i)&&(d=!0);let c;for(const p in l)(!t||!q(t,p)&&((c=pt(p))===p||!q(t,c)))&&(u?s&&(s[p]!==void 0||s[c]!==void 0)&&(n[p]=Js(u,l,p,void 0,e,!0)):delete n[p]);if(i!==l)for(const p in i)(!t||!q(t,p))&&(delete i[p],d=!0)}d&&We(e.attrs,"set","")}function kn(e,t,s,r){const[n,i]=e.propsOptions;let o=!1,l;if(t)for(let u in t){if(Rt(u))continue;const d=t[u];let c;n&&q(n,c=Ee(u))?!i||!i.includes(c)?s[c]=d:(l||(l={}))[c]=d:Cs(e.emitsOptions,u)||(!(u in r)||d!==r[u])&&(r[u]=d,o=!0)}if(i){const u=k(s),d=l||X;for(let c=0;c<i.length;c++){const p=i[c];s[p]=Js(n,u,p,d[p],e,!q(d,p))}}return o}function Js(e,t,s,r,n,i){const o=e[s];if(o!=null){const l=q(o,"default");if(l&&r===void 0){const u=o.default;if(o.type!==Function&&!o.skipFactory&&F(u)){const{propsDefaults:d}=n;if(s in d)r=d[s];else{const c=Xt(n);r=d[s]=u.call(null,t),c()}}else r=u;n.ce&&n.ce._setProp(s,r)}o[0]&&(i&&!l?r=!1:o[1]&&(r===""||r===pt(s))&&(r=!0))}return r}const Oo=new WeakMap;function Gn(e,t,s=!1){const r=s?Oo:t.propsCache,n=r.get(e);if(n)return n;const i=e.props,o={},l=[];let u=!1;if(!F(e)){const c=p=>{u=!0;const[x,T]=Gn(p,t,!0);fe(o,x),T&&l.push(...T)};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!u)return G(e)&&r.set(e,wt),wt;if(D(i))for(let c=0;c<i.length;c++){const p=Ee(i[c]);Or(p)&&(o[p]=X)}else if(i)for(const c in i){const p=Ee(c);if(Or(p)){const x=i[c],T=o[p]=D(x)||F(x)?{type:x}:fe({},x),j=T.type;let O=!1,$=!0;if(D(j))for(let J=0;J<j.length;++J){const H=j[J],U=F(H)&&H.name;if(U==="Boolean"){O=!0;break}else U==="String"&&($=!1)}else O=F(j)&&j.name==="Boolean";T[0]=O,T[1]=$,(O||q(T,"default"))&&l.push(p)}}const d=[o,l];return G(e)&&r.set(e,d),d}function Or(e){return e[0]!=="$"&&!Rt(e)}const fr=e=>e==="_"||e==="_ctx"||e==="$stable",dr=e=>D(e)?e.map(Le):[Le(e)],Vo=(e,t,s)=>{if(t._n)return t;const r=Xi((...n)=>dr(t(...n)),s);return r._c=!1,r},zn=(e,t,s)=>{const r=e._ctx;for(const n in e){if(fr(n))continue;const i=e[n];if(F(i))t[n]=Vo(n,i,r);else if(i!=null){const o=dr(i);t[n]=()=>o}}},Xn=(e,t)=>{const s=dr(t);e.slots.default=()=>s},Jn=(e,t,s)=>{for(const r in t)(s||!fr(r))&&(e[r]=t[r])},Ro=(e,t,s)=>{const r=e.slots=Bn();if(e.vnode.shapeFlag&32){const n=t._;n?(Jn(r,t,s),s&&rn(r,"_",n,!0)):zn(t,r)}else t&&Xn(e,t)},Mo=(e,t,s)=>{const{vnode:r,slots:n}=e;let i=!0,o=X;if(r.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Jn(n,t,s):(i=!t.$stable,zn(t,n)),o=t}else t&&(Xn(e,t),o={default:1});if(i)for(const l in n)!fr(l)&&o[l]==null&&delete n[l]},_e=jo;function Do(e){return Fo(e)}function Fo(e,t){const s=ys();s.__VUE__=!0;const{insert:r,remove:n,patchProp:i,createElement:o,createText:l,createComment:u,setText:d,setElementText:c,parentNode:p,nextSibling:x,setScopeId:T=He,insertStaticContent:j}=e,O=(a,f,h,b=null,_=null,g=null,w=void 0,v=null,y=!!f.dynamicChildren)=>{if(a===f)return;a&&!Nt(a,f)&&(b=oe(a),de(a,_,g,!0),a=null),f.patchFlag===-2&&(y=!1,f.dynamicChildren=null);const{type:m,ref:V,shapeFlag:S}=f;switch(m){case As:$(a,f,h,b);break;case Ye:J(a,f,h,b);break;case Ls:a==null&&H(f,h,b,w);break;case we:mt(a,f,h,b,_,g,w,v,y);break;default:S&1?ee(a,f,h,b,_,g,w,v,y):S&6?Qe(a,f,h,b,_,g,w,v,y):(S&64||S&128)&&m.process(a,f,h,b,_,g,w,v,y,bt)}V!=null&&_?Lt(V,a&&a.ref,g,f||a,!f):V==null&&a&&a.ref!=null&&Lt(a.ref,null,g,a,!0)},$=(a,f,h,b)=>{if(a==null)r(f.el=l(f.children),h,b);else{const _=f.el=a.el;f.children!==a.children&&d(_,f.children)}},J=(a,f,h,b)=>{a==null?r(f.el=u(f.children||""),h,b):f.el=a.el},H=(a,f,h,b)=>{[a.el,a.anchor]=j(a.children,f,h,b,a.el,a.anchor)},U=({el:a,anchor:f},h,b)=>{let _;for(;a&&a!==f;)_=x(a),r(a,h,b),a=_;r(f,h,b)},C=({el:a,anchor:f})=>{let h;for(;a&&a!==f;)h=x(a),n(a),a=h;n(f)},ee=(a,f,h,b,_,g,w,v,y)=>{if(f.type==="svg"?w="svg":f.type==="math"&&(w="mathml"),a==null)ne(f,h,b,_,g,w,v,y);else{const m=a.el&&a.el._isVueCE?a.el:null;try{m&&m._beginPatch(),gt(a,f,_,g,w,v,y)}finally{m&&m._endPatch()}}},ne=(a,f,h,b,_,g,w,v)=>{let y,m;const{props:V,shapeFlag:S,transition:N,dirs:R}=a;if(y=a.el=o(a.type,g,V&&V.is,V),S&8?c(y,a.children):S&16&&Se(a.children,y,null,b,_,Fs(a,g),w,v),R&&ot(a,null,b,"created"),be(y,a,a.scopeId,w,b),V){for(const z in V)z!=="value"&&!Rt(z)&&i(y,z,null,V[z],g,b);"value"in V&&i(y,"value",null,V.value,g),(m=V.onVnodeBeforeMount)&&Me(m,b,a)}R&&ot(a,null,b,"beforeMount");const K=Lo(_,N);K&&N.beforeEnter(y),r(y,f,h),((m=V&&V.onVnodeMounted)||K||R)&&_e(()=>{m&&Me(m,b,a),K&&N.enter(y),R&&ot(a,null,b,"mounted")},_)},be=(a,f,h,b,_)=>{if(h&&T(a,h),b)for(let g=0;g<b.length;g++)T(a,b[g]);if(_){let g=_.subTree;if(f===g||ei(g.type)&&(g.ssContent===f||g.ssFallback===f)){const w=_.vnode;be(a,w,w.scopeId,w.slotScopeIds,_.parent)}}},Se=(a,f,h,b,_,g,w,v,y=0)=>{for(let m=y;m<a.length;m++){const V=a[m]=v?qe(a[m]):Le(a[m]);O(null,V,f,h,b,_,g,w,v)}},gt=(a,f,h,b,_,g,w)=>{const v=f.el=a.el;let{patchFlag:y,dynamicChildren:m,dirs:V}=f;y|=a.patchFlag&16;const S=a.props||X,N=f.props||X;let R;if(h&<(h,!1),(R=N.onVnodeBeforeUpdate)&&Me(R,h,f,a),V&&ot(f,a,h,"beforeUpdate"),h&<(h,!0),m&&(!a.dynamicChildren||a.dynamicChildren.length!==m.length)&&(y=0,w=!1,m=null),(S.innerHTML&&N.innerHTML==null||S.textContent&&N.textContent==null)&&c(v,""),m?Ke(a.dynamicChildren,m,v,h,b,Fs(f,_),g):w||B(a,f,v,null,h,b,Fs(f,_),g,!1),y>0){if(y&16)rt(v,S,N,h,_);else if(y&2&&S.class!==N.class&&i(v,"class",null,N.class,_),y&4&&i(v,"style",S.style,N.style,_),y&8){const K=f.dynamicProps;for(let z=0;z<K.length;z++){const W=K[z],se=S[W],ce=N[W];(ce!==se||W==="value")&&i(v,W,se,ce,_,h)}}y&1&&a.children!==f.children&&c(v,f.children)}else!w&&m==null&&rt(v,S,N,h,_);((R=N.onVnodeUpdated)||V)&&_e(()=>{R&&Me(R,h,f,a),V&&ot(f,a,h,"updated")},b)},Ke=(a,f,h,b,_,g,w)=>{for(let v=0;v<f.length;v++){const y=a[v],m=f[v],V=y.el&&(y.type===we||!Nt(y,m)||y.shapeFlag&198)?p(y.el):h;O(y,m,V,null,b,_,g,w,!0)}},rt=(a,f,h,b,_)=>{if(f!==h){if(f!==X)for(const g in f)!Rt(g)&&!(g in h)&&i(a,g,f[g],null,_,b);for(const g in h){if(Rt(g))continue;const w=h[g],v=f[g];w!==v&&g!=="value"&&i(a,g,v,w,_,b)}"value"in h&&i(a,"value",f.value,h.value,_)}},mt=(a,f,h,b,_,g,w,v,y)=>{const m=f.el=a?a.el:l(""),V=f.anchor=a?a.anchor:l("");let{patchFlag:S,dynamicChildren:N,slotScopeIds:R}=f;R&&(v=v?v.concat(R):R),a==null?(r(m,h,b),r(V,h,b),Se(f.children||[],h,V,_,g,w,v,y)):S>0&&S&64&&N&&a.dynamicChildren&&a.dynamicChildren.length===N.length?(Ke(a.dynamicChildren,N,h,_,g,w,v),(f.key!=null||_&&f===_.subTree)&&Yn(a,f,!0)):B(a,f,h,V,_,g,w,v,y)},Qe=(a,f,h,b,_,g,w,v,y)=>{f.slotScopeIds=v,a==null?f.shapeFlag&512?_.ctx.activate(f,h,b,w,y):nt(f,h,b,_,g,w,y):Jt(a,f,y)},nt=(a,f,h,b,_,g,w)=>{const v=a.component=ko(a,b,_);if(ur(a)&&(v.ctx.renderer=bt),zo(v,!1,w),v.asyncDep){if(_&&_.registerDep(v,ie,w),!a.el){const y=v.subTree=Ge(Ye);J(null,y,f,h),a.placeholder=y.el}}else ie(v,a,f,h,_,g,w)},Jt=(a,f,h)=>{const b=f.component=a.component;if(Ao(a,f,h))if(b.asyncDep&&!b.asyncResolved){Z(b,f,h);return}else b.next=f,b.update();else f.el=a.el,b.vnode=f},ie=(a,f,h,b,_,g,w)=>{const v=()=>{if(a.isMounted){let{next:S,bu:N,u:R,parent:K,vnode:z}=a;{const Oe=Zn(a);if(Oe){S&&(S.el=z.el,Z(a,S,w)),Oe.asyncDep.then(()=>{_e(()=>{a.isUnmounted||m()},_)});return}}let W=S,se;lt(a,!1),S?(S.el=z.el,Z(a,S,w)):S=z,N&&ss(N),(se=S.props&&S.props.onVnodeBeforeUpdate)&&Me(se,K,S,z),lt(a,!0);const ce=Nr(a),Ie=a.subTree;a.subTree=ce,O(Ie,ce,p(Ie.el),oe(Ie),a,_,g),S.el=ce.el,W===null&&Po(a,ce.el),R&&_e(R,_),(se=S.props&&S.props.onVnodeUpdated)&&_e(()=>Me(se,K,S,z),_)}else{let S;const{el:N,props:R}=f,{bm:K,m:z,parent:W,root:se,type:ce}=a,Ie=Ht(f);lt(a,!1),K&&ss(K),!Ie&&(S=R&&R.onVnodeBeforeMount)&&Me(S,W,f),lt(a,!0);{se.ce&&se.ce._hasShadowRoot()&&se.ce._injectChildStyle(ce,a.parent?a.parent.type:void 0);const Oe=a.subTree=Nr(a);O(null,Oe,h,b,a,_,g),f.el=Oe.el}if(z&&_e(z,_),!Ie&&(S=R&&R.onVnodeMounted)){const Oe=f;_e(()=>Me(S,W,Oe),_)}(f.shapeFlag&256||W&&Ht(W.vnode)&&W.vnode.shapeFlag&256)&&a.a&&_e(a.a,_),a.isMounted=!0,f=h=b=null}};a.scope.on();const y=a.effect=new cn(v);a.scope.off();const m=a.update=y.run.bind(y),V=a.job=y.runIfDirty.bind(y);V.i=a,V.id=a.uid,y.scheduler=()=>cr(V),lt(a,!0),m()},Z=(a,f,h)=>{f.component=a;const b=a.vnode.props;a.vnode=f,a.next=null,Io(a,f.props,b,h),Mo(a,f.children,h),ze(),vr(a),Xe()},B=(a,f,h,b,_,g,w,v,y=!1)=>{const m=a&&a.children,V=a?a.shapeFlag:0,S=f.children,{patchFlag:N,shapeFlag:R}=f;if(N>0){if(N&128){_t(m,S,h,b,_,g,w,v,y);return}else if(N&256){Pe(m,S,h,b,_,g,w,v,y);return}}R&8?(V&16&&E(m,_,g),S!==m&&c(h,S)):V&16?R&16?_t(m,S,h,b,_,g,w,v,y):E(m,_,g,!0):(V&8&&c(h,""),R&16&&Se(S,h,b,_,g,w,v,y))},Pe=(a,f,h,b,_,g,w,v,y)=>{a=a||wt,f=f||wt;const m=a.length,V=f.length,S=Math.min(m,V);let N;for(N=0;N<S;N++){const R=f[N]=y?qe(f[N]):Le(f[N]);O(a[N],R,h,null,_,g,w,v,y)}m>V?E(a,_,g,!0,!1,S):Se(f,h,b,_,g,w,v,y,S)},_t=(a,f,h,b,_,g,w,v,y)=>{let m=0;const V=f.length;let S=a.length-1,N=V-1;for(;m<=S&&m<=N;){const R=a[m],K=f[m]=y?qe(f[m]):Le(f[m]);if(Nt(R,K))O(R,K,h,null,_,g,w,v,y);else break;m++}for(;m<=S&&m<=N;){const R=a[S],K=f[N]=y?qe(f[N]):Le(f[N]);if(Nt(R,K))O(R,K,h,null,_,g,w,v,y);else break;S--,N--}if(m>S){if(m<=N){const R=N+1,K=R<V?f[R].el:b;for(;m<=N;)O(null,f[m]=y?qe(f[m]):Le(f[m]),h,K,_,g,w,v,y),m++}}else if(m>N)for(;m<=S;)de(a[m],_,g,!0),m++;else{const R=m,K=m,z=new Map;for(m=K;m<=N;m++){const ye=f[m]=y?qe(f[m]):Le(f[m]);ye.key!=null&&z.set(ye.key,m)}let W,se=0;const ce=N-K+1;let Ie=!1,Oe=0;const At=new Array(ce);for(m=0;m<ce;m++)At[m]=0;for(m=R;m<=S;m++){const ye=a[m];if(se>=ce){de(ye,_,g,!0);continue}let Ve;if(ye.key!=null)Ve=z.get(ye.key);else for(W=K;W<=N;W++)if(At[W-K]===0&&Nt(ye,f[W])){Ve=W;break}Ve===void 0?de(ye,_,g,!0):(At[Ve-K]=m+1,Ve>=Oe?Oe=Ve:Ie=!0,O(ye,f[Ve],h,null,_,g,w,v,y),se++)}const hr=Ie?Ho(At):wt;for(W=hr.length-1,m=ce-1;m>=0;m--){const ye=K+m,Ve=f[ye],pr=f[ye+1],gr=ye+1<V?pr.el||Qn(pr):b;At[m]===0?O(null,Ve,h,gr,_,g,w,v,y):Ie&&(W<0||m!==hr[W]?Ne(Ve,h,gr,2):W--)}}},Ne=(a,f,h,b,_=null)=>{const{el:g,type:w,transition:v,children:y,shapeFlag:m}=a;if(m&6){Ne(a.component.subTree,f,h,b);return}if(m&128){a.suspense.move(f,h,b);return}if(m&64){w.move(a,f,h,bt);return}if(w===we){r(g,f,h);for(let S=0;S<y.length;S++)Ne(y[S],f,h,b);r(a.anchor,f,h);return}if(w===Ls){U(a,f,h);return}if(b!==2&&m&1&&v)if(b===0)v.persisted&&!g[Ms]?r(g,f,h):(v.beforeEnter(g),r(g,f,h),_e(()=>v.enter(g),_));else{const{leave:S,delayLeave:N,afterLeave:R}=v,K=()=>{a.ctx.isUnmounted?n(g):r(g,f,h)},z=()=>{const W=g._isLeaving||!!g[Ms];g._isLeaving&&g[Ms](!0),v.persisted&&!W?K():S(g,()=>{K(),R&&R()})};N?N(g,K,z):z()}else r(g,f,h)},de=(a,f,h,b=!1,_=!1)=>{const{type:g,props:w,ref:v,children:y,dynamicChildren:m,shapeFlag:V,patchFlag:S,dirs:N,cacheIndex:R,memo:K}=a;if(S===-2&&(_=!1),v!=null&&(ze(),Lt(v,null,h,a,!0),Xe()),R!=null&&(f.renderCache[R]=void 0),V&256){f.ctx.deactivate(a);return}const z=V&1&&N,W=!Ht(a);let se;if(W&&(se=w&&w.onVnodeBeforeUnmount)&&Me(se,f,a),V&6)P(a.component,h,b);else{if(V&128){a.suspense.unmount(h,b);return}z&&ot(a,null,f,"beforeUnmount"),V&64?a.type.remove(a,f,h,bt,b):m&&!m.hasOnce&&(g!==we||S>0&&S&64)?E(m,f,h,!1,!0):(g===we&&S&384||!_&&V&16)&&E(y,f,h),b&&Yt(a)}const ce=K!=null&&R==null;(W&&(se=w&&w.onVnodeUnmounted)||z||ce)&&_e(()=>{se&&Me(se,f,a),z&&ot(a,null,f,"unmounted"),ce&&(a.el=null)},h)},Yt=a=>{const{type:f,el:h,anchor:b,transition:_}=a;if(f===we){I(h,b);return}if(f===Ls){C(a);return}const g=()=>{n(h),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(a.shapeFlag&1&&_&&!_.persisted){const{leave:w,delayLeave:v}=_,y=()=>w(h,g);v?v(a.el,g,y):y()}else g()},I=(a,f)=>{let h;for(;a!==f;)h=x(a),n(a),a=h;n(f)},P=(a,f,h)=>{const{bum:b,scope:_,job:g,subTree:w,um:v,m:y,a:m}=a;Vr(y),Vr(m),b&&ss(b),_.stop(),g&&(g.flags|=8,de(w,a,f,h)),v&&_e(v,f),_e(()=>{a.isUnmounted=!0},f)},E=(a,f,h,b=!1,_=!1,g=0)=>{for(let w=g;w<a.length;w++)de(a[w],f,h,b,_)},oe=a=>{if(a.shapeFlag&6)return oe(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=x(a.anchor||a.el),h=f&&f[eo];return h?x(h):f};let le=!1;const it=(a,f,h)=>{let b;a==null?f._vnode&&(de(f._vnode,null,null,!0),b=f._vnode.component):O(f._vnode||null,a,f,null,null,null,h),f._vnode=a,le||(le=!0,vr(b),An(),le=!1)},bt={p:O,um:de,m:Ne,r:Yt,mt:nt,mc:Se,pc:B,pbc:Ke,n:oe,o:e};return{render:it,hydrate:void 0,createApp:wo(it)}}function Fs({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function lt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Lo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yn(e,t,s=!1){const r=e.children,n=t.children;if(D(r)&&D(n))for(let i=0;i<r.length;i++){const o=r[i];let l=n[i];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=n[i]=qe(n[i]),l.el=o.el),!s&&l.patchFlag!==-2&&Yn(o,l)),l.type===As&&(l.patchFlag===-1&&(l=n[i]=qe(l)),l.el=o.el),l.type===Ye&&!l.el&&(l.el=o.el)}}function Ho(e){const t=e.slice(),s=[0];let r,n,i,o,l;const u=e.length;for(r=0;r<u;r++){const d=e[r];if(d!==0){if(n=s[s.length-1],e[n]<d){t[r]=n,s.push(r);continue}for(i=0,o=s.length-1;i<o;)l=i+o>>1,e[s[l]]<d?i=l+1:o=l;d<e[s[i]]&&(i>0&&(t[r]=s[i-1]),s[i]=r)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=t[o];return s}function Zn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Zn(t)}function Vr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Qn(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Qn(t.subTree):null}const ei=e=>e.__isSuspense;function jo(e,t){t&&t.pendingBranch?D(e)?t.effects.push(...e):t.effects.push(e):zi(e)}const we=Symbol.for("v-fgt"),As=Symbol.for("v-txt"),Ye=Symbol.for("v-cmt"),Ls=Symbol.for("v-stc"),ht=[];let ve=null;function te(e=!1){ht.push(ve=e?null:[])}function ti(){ht.pop(),ve=ht[ht.length-1]||null}let qt=1;function Rr(e,t=!1){qt+=e,e<0&&ve&&t&&(ve.hasOnce=!0)}function si(e){return e.dynamicChildren=qt>0?ve||wt:null,ti(),qt>0&&ve&&ve.push(e),e}function re(e,t,s,r,n,i){return si(A(e,t,s,r,n,i,!0))}function Ko(e,t,s,r,n){return si(Ge(e,t,s,r,n,!0))}function ri(e){return e?e.__v_isVNode===!0:!1}function Nt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,ns=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||me(e)||F(e)?{i:xe,r:e,k:t,f:!!s}:e:null);function A(e,t=null,s=null,r=0,n=null,i=e===we?0:1,o=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&ns(t),scopeId:Nn,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:xe};return l?(us(u,s),i&128&&e.normalize(u)):s&&(u.shapeFlag|=Q(s)?8:16),qt>0&&!o&&ve&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&ve.push(u),u}const Ge=$o;function $o(e,t=null,s=null,r=0,n=null,i=!1){if((!e||e===ho)&&(e=Ye),ri(e)){const l=Ct(e,t,!0);return s&&us(l,s),qt>0&&!i&&ve&&(l.shapeFlag&6?ve[ve.indexOf(e)]=l:ve.push(l)),l.patchFlag=-2,l}if(Zo(e)&&(e=e.__vccOpts),t){t=Uo(t);let{class:l,style:u}=t;l&&!Q(l)&&(t.class=vs(l)),G(u)&&(lr(u)&&!D(u)&&(u=fe({},u)),t.style=tr(u))}const o=Q(e)?1:ei(e)?128:Es(e)?64:G(e)?4:F(e)?2:0;return A(e,t,s,r,n,o,i,!0)}function Uo(e){return e?lr(e)||Wn(e)?fe({},e):e:null}function Ct(e,t,s=!1,r=!1){const{props:n,ref:i,patchFlag:o,children:l,transition:u}=e,d=t?qo(n||{},t):n,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&ni(d),ref:t&&t.ref?s&&i?D(i)?i.concat(ns(t)):[i,ns(t)]:ns(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==we?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ct(e.ssContent),ssFallback:e.ssFallback&&Ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&r&&ar(c,u.clone(c)),c}function et(e=" ",t=0){return Ge(As,null,e,t)}function Re(e="",t=!1){return t?(te(),Ko(Ye,null,e)):Ge(Ye,null,e)}function Le(e){return e==null||typeof e=="boolean"?Ge(Ye):D(e)?Ge(we,null,e.slice()):ri(e)?qe(e):Ge(As,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ct(e)}function us(e,t){let s=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(D(t))s=16;else if(typeof t=="object")if(r&65){const n=t.default;n&&(n._c&&(n._d=!1),us(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!Wn(t)?t._ctx=xe:n===3&&xe&&(xe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(F(t)){if(r&65){us(e,{default:t});return}t={default:t,_ctx:xe},s=32}else t=String(t),r&64?(s=16,t=[et(t)]):s=8;e.children=t,e.shapeFlag|=s}function qo(...e){const t={};for(let s=0;s<e.length;s++){const r=e[s];for(const n in r)if(n==="class")t.class!==r.class&&(t.class=vs([t.class,r.class]));else if(n==="style")t.style=tr([t.style,r.style]);else if(ps(n)){const i=t[n],o=r[n];o&&i!==o&&!(D(i)&&i.includes(o))?t[n]=i?[].concat(i,o):o:o==null&&i==null&&!gs(n)&&(t[n]=o)}else n!==""&&(t[n]=r[n])}return t}function Me(e,t,s,r=null){Ae(e,t,7,[s,r])}const Bo=Kn();let Wo=0;function ko(e,t,s){const r=e.type,n=(t?t.appContext:e.appContext)||Bo,i={uid:Wo++,vnode:e,type:r,parent:t,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new vi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(n.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Gn(r,n),emitsOptions:$n(r,n),emit:null,emitted:null,propsDefaults:X,inheritAttrs:r.inheritAttrs,ctx:X,data:X,props:X,attrs:X,slots:X,refs:X,setupState:X,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=So.bind(null,i),e.ce&&e.ce(i),i}let ge=null;const Go=()=>ge||xe;let fs,Bt;{const e=ys(),t=(s,r)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(r),i=>{n.length>1?n.forEach(o=>o(i)):n[0](i)}};fs=t("__VUE_INSTANCE_SETTERS__",s=>ge=s),Bt=t("__VUE_SSR_SETTERS__",s=>Wt=s)}const Xt=e=>{const t=ge;return fs(e),e.scope.on(),()=>{e.scope.off(),fs(t)}},Mr=()=>{ge&&ge.scope.off(),fs(null)};function ii(e){return e.vnode.shapeFlag&4}let Wt=!1;function zo(e,t=!1,s=!1){t&&Bt(t);const{props:r,children:n}=e.vnode,i=ii(e);No(e,r,i,t),Ro(e,n,s||t);const o=i?Xo(e,t):void 0;return t&&Bt(!1),o}function Xo(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,po);const{setup:r}=s;if(r){ze();const n=e.setupContext=r.length>1?Yo(e):null,i=Xt(e),o=zt(r,e,0,[e.props,n]),l=Qr(o);if(Xe(),i(),(l||e.sp)&&!Ht(e)&&Rn(e),l){if(o.then(Mr,Mr),t)return o.then(u=>{Bt(!0);try{Dr(e,u,t)}finally{Bt(!1)}}).catch(u=>{Ss(u,e,0)});e.asyncDep=o}else Dr(e,o)}else oi(e)}function Dr(e,t,s){F(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:G(t)&&(e.setupState=Sn(t)),oi(e)}function oi(e,t,s){const r=e.type;e.render||(e.render=r.render||He);{const n=Xt(e);ze();try{go(e)}finally{Xe(),n()}}}const Jo={get(e,t){return ue(e,"get",""),e[t]}};function Yo(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Jo),slots:e.slots,emit:e.emit,expose:t}}function Ps(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Sn(Ki(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in jt)return jt[s](e)},has(t,s){return s in t||s in jt}})):e.proxy}function Zo(e){return F(e)&&"__vccOpts"in e}const Ot=(e,t)=>qi(e,t,Wt),Qo="3.5.41";let Ys;const Fr=typeof window<"u"&&window.trustedTypes;if(Fr)try{Ys=Fr.createPolicy("vue",{createHTML:e=>e})}catch{}const li=Ys?e=>Ys.createHTML(e):e=>e,el="http://www.w3.org/2000/svg",tl="http://www.w3.org/1998/Math/MathML",Ue=typeof document<"u"?document:null,Lr=Ue&&Ue.createElement("template"),sl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,r)=>{const n=t==="svg"?Ue.createElementNS(el,e):t==="mathml"?Ue.createElementNS(tl,e):s?Ue.createElement(e,{is:s}):Ue.createElement(e);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>Ue.createTextNode(e),createComment:e=>Ue.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ue.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,r,n,i){const o=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{Lr.innerHTML=li(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const l=Lr.content;if(r==="svg"||r==="mathml"){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},rl=Symbol("_vtc");function nl(e,t,s){const r=e[rl];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Hr=Symbol("_vod"),il=Symbol("_vsh"),ol=Symbol(""),ll=/(?:^|;)\s*display\s*:/;function cl(e,t,s){const r=e.style,n=Q(s);let i=!1;if(s&&!n){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Vt(r,l,"")}else for(const o in t)s[o]==null&&Vt(r,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?ul(e,o,!Q(t)&&t?t[o]:void 0,l)||Vt(r,o,l):Vt(r,o,"")}}else if(n){if(t!==s){const o=r[ol];o&&(s+=";"+o),r.cssText=s,i=ll.test(s)}}else t&&e.removeAttribute("style");Hr in e&&(e[Hr]=i?r.display:"",e[il]&&(r.display="none"))}const jr=/\s*!important$/;function Vt(e,t,s){if(D(s))s.forEach(r=>Vt(e,t,r));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const r=al(e,t);jr.test(s)?e.setProperty(pt(r),s.replace(jr,""),"important"):e[r]=s}}const Kr=["Webkit","Moz","ms"],Hs={};function al(e,t){const s=Hs[t];if(s)return s;let r=Ee(t);if(r!=="filter"&&r in e)return Hs[t]=r;r=sn(r);for(let n=0;n<Kr.length;n++){const i=Kr[n]+r;if(i in e)return Hs[t]=i}return t}function ul(e,t,s,r){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Q(r)&&s===r}const $r="http://www.w3.org/1999/xlink";function Ur(e,t,s,r,n,i=_i(t)){r&&t.startsWith("xlink:")?s==null?e.removeAttributeNS($r,t.slice(6,t.length)):e.setAttributeNS($r,t,s):s==null||i&&!nn(s)?e.removeAttribute(t):e.setAttribute(t,i?"":je(s)?String(s):s)}function qr(e,t,s,r,n){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?li(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,u=s==null?e.type==="checkbox"?"on":"":String(s);(l!==u||!("_value"in e))&&(e.value=u),s==null&&e.removeAttribute(t),e._value=s;return}let o=!1;if(s===""||s==null){const l=typeof e[t];l==="boolean"?s=nn(s):s==null&&l==="string"?(s="",o=!0):l==="number"&&(s=0,o=!0)}try{e[t]=s}catch{}o&&e.removeAttribute(n||t)}function at(e,t,s,r){e.addEventListener(t,s,r)}function fl(e,t,s,r){e.removeEventListener(t,s,r)}const Br=Symbol("_vei");function dl(e,t,s,r,n=null){const i=e[Br]||(e[Br]={}),o=i[t];if(r&&o)o.value=r;else{const[l,u]=gl(t);if(r){const d=i[t]=bl(r,n);at(e,l,d,u)}else o&&(fl(e,l,o,u),i[t]=void 0)}}const hl=/(Once|Passive|Capture)$/,pl=/^on:?(?:Once|Passive|Capture)$/;function gl(e){let t,s;for(;(s=e.match(hl))&&!pl.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):pt(e.slice(2)),t]}let js=0;const ml=Promise.resolve(),_l=()=>js||(ml.then(()=>js=0),js=Date.now());function bl(e,t){const s=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=s.attached)return;const n=s.value;if(D(n)){const i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};const o=n.slice(),l=[r];for(let u=0;u<o.length&&!r._stopped;u++){const d=o[u];d&&Ae(d,t,5,l)}}else Ae(n,t,5,[r])};return s.value=e,s.attached=_l(),s}const Wr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,yl=(e,t,s,r,n,i)=>{const o=n==="svg";t==="class"?nl(e,r,o):t==="style"?cl(e,s,r):ps(t)?gs(t)||dl(e,t,s,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vl(e,t,r,o))?(qr(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ur(e,t,r,o,i,t!=="value")):e._isVueCE&&(wl(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(r)))?qr(e,Ee(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ur(e,t,r,o))};function vl(e,t,s,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Wr(t)&&F(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return Wr(t)&&Q(s)?!1:t in e}function wl(e,t){const s=e._def.props;if(!s)return!1;const r=Ee(t);return Array.isArray(s)?s.some(n=>Ee(n)===r):Object.keys(s).some(n=>Ee(n)===r)}const ds=e=>{const t=e.props["onUpdate:modelValue"]||!1;return D(t)?s=>ss(t,s):t};function xl(e){e.target.composing=!0}function kr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ut=Symbol("_assign"),ts=Symbol("_initialValue");function Ks(e,t,s){return t&&(e=e.trim()),s&&(e=bs(e)),e}const Sl={created(e,{modifiers:{lazy:t,trim:s,number:r}},n){e.parentNode&&(e.type==="text"?e[ts]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[ts]=e.defaultValue.replace(/\r\n?/g,`
|
|
2
|
-
`))),e[ut]=ds(n);const i=r||n.props&&n.props.type==="number";at(e,t?"change":"input",o=>{o.target.composing||e[ut](Ks(e.value,s,i))}),(s||i)&&at(e,"change",()=>{e.value=Ks(e.value,s,i)}),t||(at(e,"compositionstart",xl),at(e,"compositionend",kr),at(e,"change",kr))},mounted(e,{value:t,modifiers:{trim:s,number:r}}){const n=t??"",i=e[ts];delete e[ts],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[ut](Ks(e.value,s,r)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:r,trim:n,number:i}},o){if(e[ut]=ds(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?bs(e.value):e.value,u=t??"";if(l===u)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(r&&t===s||n&&e.value.trim()===u)||(e.value=u)}},El={deep:!0,created(e,{value:t,modifiers:{number:s}},r){e._modelValue=t,at(e,"change",()=>{const n=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>s?bs(hs(i)):hs(i));e[ut](e.multiple?ms(e._modelValue)?new Set(n):n:n[0]),e._assigning=!0,Tn(()=>{e._assigning=!1})}),e[ut]=ds(r)},mounted(e,{value:t}){Gr(e,t)},beforeUpdate(e,{value:t},s){e._modelValue=t,e[ut]=ds(s)},updated(e,{value:t}){e._assigning||Gr(e,t)}};function Gr(e,t){const s=e.multiple,r=D(t);if(!(s&&!r&&!ms(t))){for(let n=0,i=e.options.length;n<i;n++){const o=e.options[n],l=hs(o);if(s)if(r){const u=typeof l;u==="string"||u==="number"?o.selected=t.some(d=>String(d)===String(l)):o.selected=yi(t,l)>-1}else o.selected=t.has(l);else if(Gt(hs(o),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function hs(e){return"_value"in e?e._value:e.value}const Tl=fe({patchProp:yl},sl);let zr;function Cl(){return zr||(zr=Do(Tl))}const Al=((...e)=>{const t=Cl().createApp(...e),{mount:s}=t;return t.mount=r=>{const n=Nl(r);if(!n)return;const i=t._component;!F(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const o=s(n,!1,Pl(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),o},t});function Pl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Nl(e){return Q(e)?document.querySelector(e):e}const $s={en:{title:"KNX Viewer",subtitle:"Group address state changes and read requests",history:"24-hour history on file",viewer:"Viewer",search:"Search GA, name, DPT, type or value",clearSearch:"Clear search",pause:"Pause",resume:"Resume live",live:"Live",paused:"Paused",loading:"Loading…",offline:"Connection unavailable",retry:"Retry",noViewers:"No KNX Viewer is available.",unknownViewer:"The requested KNX Viewer is not available. Check that the node is deployed.",empty:"No entries in the last 24 hours.",emptySearch:"No entries match this search in the last 24 hours.",emptyHint:"New entries will appear here as telegrams arrive.",time:"Time",telegramType:"Telegram type",source:"Source",address:"GA",name:"Name",dpt:"DPT",previous:"Previous",value:"Value",newest:"Most recent",older:"Older",rows:"entries on this page",updated:"Updated",storageError:"History could not be saved to file.",retained:"The list shows the last 24 hours. Pausing only stops updates on this page.",authError:"Authentication required or insufficient permissions. Reopen the page from Node-RED.",requestError:"Unable to load the history.",responseError:"The server returned an invalid response.",table:"Group address state changes and read requests, most recent first",firstValue:"First value",historical:"History",loadingHistory:"Loading history…"},it:{title:"KNX Viewer",subtitle:"Cambiamenti di stato e richieste di lettura degli indirizzi di gruppo",history:"Storico su file di 24 ore",viewer:"Viewer",search:"Cerca GA, nome, DPT, tipo o valore",clearSearch:"Cancella ricerca",pause:"Pausa",resume:"Riprendi live",live:"Live",paused:"In pausa",loading:"Caricamento…",offline:"Connessione non disponibile",retry:"Riprova",noViewers:"Nessun KNX Viewer disponibile.",unknownViewer:"Il KNX Viewer richiesto non è disponibile. Verifica che il nodo sia stato distribuito con Deploy.",empty:"Nessuna voce nelle ultime 24 ore.",emptySearch:"Nessuna voce corrisponde alla ricerca nelle ultime 24 ore.",emptyHint:"Le nuove voci appariranno qui alla ricezione dei telegrammi.",time:"Ora",telegramType:"Tipo telegramma",source:"Sorgente",address:"GA",name:"Nome",dpt:"DPT",previous:"Precedente",value:"Valore",newest:"Più recenti",older:"Più vecchi",rows:"voci in questa pagina",updated:"Aggiornato",storageError:"Impossibile salvare lo storico su file.",retained:"L’elenco mostra le ultime 24 ore. La pausa sospende solo gli aggiornamenti di questa pagina.",authError:"Autenticazione richiesta o permessi insufficienti. Riapri la pagina da Node-RED.",requestError:"Impossibile caricare lo storico.",responseError:"Il server ha restituito una risposta non valida.",table:"Cambiamenti e letture degli indirizzi di gruppo, dal più recente",firstValue:"Primo valore",historical:"Storico",loadingHistory:"Caricamento dello storico…"},de:{title:"KNX Viewer",subtitle:"Zustandsänderungen und Leseanfragen der Gruppenadressen",history:"24-Stunden-Verlauf in Datei",viewer:"Viewer",search:"GA, Name, DPT, Typ oder Wert suchen",clearSearch:"Suche löschen",pause:"Pause",resume:"Live fortsetzen",live:"Live",paused:"Pausiert",loading:"Wird geladen…",offline:"Verbindung nicht verfügbar",retry:"Erneut versuchen",noViewers:"Kein KNX Viewer verfügbar.",unknownViewer:"Der angeforderte KNX Viewer ist nicht verfügbar. Prüfen Sie, ob der Knoten bereitgestellt wurde.",empty:"Keine Einträge in den letzten 24 Stunden.",emptySearch:"Keine passenden Einträge in den letzten 24 Stunden.",emptyHint:"Neue Einträge erscheinen hier, sobald Telegramme eintreffen.",time:"Zeit",telegramType:"Telegrammtyp",source:"Quelle",address:"GA",name:"Name",dpt:"DPT",previous:"Vorher",value:"Wert",newest:"Neueste",older:"Ältere",rows:"Einträge auf dieser Seite",updated:"Aktualisiert",storageError:"Der Verlauf konnte nicht in der Datei gespeichert werden.",retained:"Die Liste zeigt die letzten 24 Stunden. Die Pause stoppt nur die Aktualisierung dieser Seite.",authError:"Anmeldung erforderlich oder unzureichende Berechtigungen. Öffnen Sie die Seite erneut über Node-RED.",requestError:"Der Verlauf konnte nicht geladen werden.",responseError:"Der Server hat eine ungültige Antwort zurückgegeben.",table:"Zustandsänderungen und Leseanfragen der Gruppenadressen, neueste zuerst",firstValue:"Erster Wert",historical:"Verlauf",loadingHistory:"Verlauf wird geladen…"},fr:{title:"KNX Viewer",subtitle:"Changements d’état et demandes de lecture des adresses de groupe",history:"Historique sur fichier de 24 heures",viewer:"Viewer",search:"Rechercher GA, nom, DPT, type ou valeur",clearSearch:"Effacer la recherche",pause:"Pause",resume:"Reprendre le direct",live:"Direct",paused:"En pause",loading:"Chargement…",offline:"Connexion indisponible",retry:"Réessayer",noViewers:"Aucun KNX Viewer disponible.",unknownViewer:"Le KNX Viewer demandé est indisponible. Vérifiez que le nœud est déployé.",empty:"Aucune entrée au cours des dernières 24 heures.",emptySearch:"Aucune entrée ne correspond à cette recherche dans les dernières 24 heures.",emptyHint:"Les nouvelles entrées apparaîtront ici à la réception des télégrammes.",time:"Heure",telegramType:"Type de télégramme",source:"Source",address:"GA",name:"Nom",dpt:"DPT",previous:"Précédent",value:"Valeur",newest:"Plus récents",older:"Plus anciens",rows:"entrées sur cette page",updated:"Mis à jour",storageError:"Impossible d’enregistrer l’historique dans le fichier.",retained:"La liste affiche les dernières 24 heures. La pause suspend uniquement la mise à jour de cette page.",authError:"Authentification requise ou autorisations insuffisantes. Rouvrez la page depuis Node-RED.",requestError:"Impossible de charger l’historique.",responseError:"Le serveur a renvoyé une réponse non valide.",table:"Changements et lectures des adresses de groupe, du plus récent au plus ancien",firstValue:"Première valeur",historical:"Historique",loadingHistory:"Chargement de l’historique…"},es:{title:"KNX Viewer",subtitle:"Cambios de estado y solicitudes de lectura de las direcciones de grupo",history:"Historial en archivo de 24 horas",viewer:"Viewer",search:"Buscar GA, nombre, DPT, tipo o valor",clearSearch:"Borrar búsqueda",pause:"Pausa",resume:"Reanudar en directo",live:"En directo",paused:"En pausa",loading:"Cargando…",offline:"Conexión no disponible",retry:"Reintentar",noViewers:"No hay ningún KNX Viewer disponible.",unknownViewer:"El KNX Viewer solicitado no está disponible. Comprueba que el nodo esté desplegado.",empty:"No hay entradas en las últimas 24 horas.",emptySearch:"Ninguna entrada coincide con la búsqueda en las últimas 24 horas.",emptyHint:"Las nuevas entradas aparecerán aquí al recibir los telegramas.",time:"Hora",telegramType:"Tipo de telegrama",source:"Origen",address:"GA",name:"Nombre",dpt:"DPT",previous:"Anterior",value:"Valor",newest:"Más recientes",older:"Más antiguos",rows:"entradas en esta página",updated:"Actualizado",storageError:"No se pudo guardar el historial en el archivo.",retained:"La lista muestra las últimas 24 horas. La pausa solo detiene las actualizaciones de esta página.",authError:"Se requiere autenticación o los permisos son insuficientes. Vuelve a abrir la página desde Node-RED.",requestError:"No se pudo cargar el historial.",responseError:"El servidor devolvió una respuesta no válida.",table:"Cambios y lecturas de las direcciones de grupo, del más reciente al más antiguo",firstValue:"Primer valor",historical:"Historial",loadingHistory:"Cargando historial…"},zh:{title:"KNX Viewer",subtitle:"组地址状态变化和读取请求",history:"文件保存最近 24 小时的历史",viewer:"Viewer",search:"搜索 GA、名称、DPT、类型或值",clearSearch:"清除搜索",pause:"暂停",resume:"恢复实时",live:"实时",paused:"已暂停",loading:"正在加载…",offline:"连接不可用",retry:"重试",noViewers:"没有可用的 KNX Viewer。",unknownViewer:"请求的 KNX Viewer 不可用。请确认节点已部署。",empty:"最近 24 小时没有记录。",emptySearch:"最近 24 小时没有符合搜索条件的记录。",emptyHint:"收到报文后,新记录将在此显示。",time:"时间",telegramType:"报文类型",source:"来源",address:"GA",name:"名称",dpt:"DPT",previous:"先前值",value:"值",newest:"最新",older:"更早",rows:"条记录显示在本页",updated:"更新于",storageError:"无法将历史记录保存到文件。",retained:"列表显示最近 24 小时的记录。暂停仅停止本页更新。",authError:"需要身份验证或权限不足。请从 Node-RED 重新打开此页面。",requestError:"无法加载历史记录。",responseError:"服务器返回了无效响应。",table:"组地址状态变化和读取请求,最新在前",firstValue:"首个值",historical:"历史",loadingHistory:"正在加载历史记录…"}};function Il(e){const t=String(e||"en").toLowerCase().split(/[-_]/)[0];return{language:$s[t]?t:"en",text:$s[t]||$s.en}}const Ol={class:"viewer"},Vl={class:"heading"},Rl={class:"heading-title"},Ml={class:"viewer-name"},Dl={key:0,class:"gateway-name"},Fl={class:"toolbar"},Ll={key:0,class:"viewer-picker"},Hl={class:"visually-hidden"},jl=["aria-label"],Kl=["value"],$l=["value"],Ul={class:"search-field"},ql=["aria-label","placeholder"],Bl=["aria-pressed","disabled"],Wl={key:0,"aria-hidden":"true",viewBox:"0 0 16 16"},kl={key:1,"aria-hidden":"true",viewBox:"0 0 16 16"},Gl={key:0,class:"notice error-notice",role:"alert"},zl=["disabled"],Xl={key:1,class:"notice storage-notice",role:"alert"},Jl=["aria-label","aria-busy"],Yl=["aria-label"],Zl={class:"visually-hidden"},Ql={scope:"col",class:"time-column"},ec={scope:"col",class:"type-column"},tc={scope:"col",class:"source-column"},sc={scope:"col",class:"address-column"},rc={scope:"col",class:"name-column"},nc={scope:"col",class:"dpt-column"},ic={scope:"col",class:"value-column"},oc={scope:"col",class:"value-column"},lc={class:"time-cell"},cc=["datetime"],ac=["title"],uc={class:"mono"},fc={class:"mono address-cell"},dc={class:"name-cell"},hc={class:"mono"},pc=["title"],gc={class:"payload-cell current-cell"},mc={key:0,class:"unit"},_c={key:0,class:"empty-state",role:"status"},bc={key:0},yc={key:0},vc={key:2},wc={class:"table-footer"},xc={class:"row-count"},Sc={key:0,class:"history-tag"},Ec=["aria-label"],Tc=["disabled"],Cc=["disabled"],Ac={class:"page-footer"},Pc={key:0,class:"updated-at"},Xr="knxUltimateViewer:selectedNodeId",Jr="knxUltimateViewer:search",Yr=200,Nc={__name:"App",setup(e){const t=new URLSearchParams(window.location.search),s=t.get("nodeId")||"",r=t.get("access_token")||"",{language:n,text:i}=Il(t.get("lang")||navigator.language);function o(I,P=""){try{return window.localStorage.getItem(I)||P}catch{return P}}function l(I,P){try{window.localStorage.setItem(I,String(P||""))}catch{}}function u(){if(r.trim())return r.trim();try{const I=[];for(let P=0;P<window.localStorage.length;P+=1){const E=String(window.localStorage.key(P)||"");if(E.startsWith("auth-tokens"))try{const oe=JSON.parse(window.localStorage.getItem(E));if(typeof oe?.access_token!="string"||!oe.access_token.trim())continue;const le=Number(oe.expires_at||oe.expiry||oe.expires||0);I.push({token:oe.access_token.trim(),expiry:Number.isFinite(le)?le:0})}catch{}}return I.sort((P,E)=>E.expiry-P.expiry),I[0]?.token||""}catch{return""}}const d=u(),c=xs({nodes:[],selectedNodeId:s||o(Xr),search:o(Jr),live:!0,loading:!0,nodesLoaded:!1,data:null,lastError:"",before:"",updatedAt:0});let p=0,x=null,T=null,j=null,O=!1,$=!1;function J(I,P={}){const E=new URL(I,window.location.href);return Object.entries(P).forEach(([oe,le])=>{le!=null&&le!==""&&E.searchParams.set(oe,String(le))}),r&&E.searchParams.set("access_token",r),E.toString()}async function H(I,P,E){const oe=d?{Authorization:`Bearer ${d}`}:{},le=await fetch(J(I,P),{credentials:"same-origin",headers:oe,signal:E,cache:"no-store"});if(le.status===401||le.status===403||le.ok&&String(le.headers.get("content-type")).includes("text/html"))throw new Error(i.authError);let it;try{it=await le.json()}catch{throw new Error(i.responseError)}if(!le.ok)throw new Error(typeof it?.error=="string"?it.error:i.requestError);return it}function U(){clearTimeout(T),T=null}function C(){p+=1,x?.abort(),x=null,c.loading=!1,U()}function ee(){U(),!$&&c.live&&c.nodesLoaded&&c.selectedNodeId&&(T=setTimeout(()=>{ne()},2e3))}async function ne(){if($||!c.selectedNodeId)return;C();const I=p,P=new AbortController;x=P,c.loading=!0;try{const E=await H("history",{nodeId:c.selectedNodeId,limit:Yr,before:c.before,search:c.search.trim()},P.signal);if($||I!==p)return;if(!Array.isArray(E?.entries))throw new Error(i.responseError);c.data={...E,entries:E.entries.slice(0,Yr)},c.lastError="",c.updatedAt=Date.now()}catch(E){if($||I!==p||E.name==="AbortError")return;c.lastError=E.message||i.requestError}finally{!$&&I===p&&(c.loading=!1,x=null,ee())}}async function be(){C();const I=p,P=new AbortController;x=P,c.loading=!0;try{const E=await H("nodes",{},P.signal);if($||I!==p)return!1;if(!Array.isArray(E?.nodes))throw new Error(i.responseError);if(c.nodes=E.nodes,c.nodesLoaded=!0,c.selectedNodeId&&!c.nodes.some(oe=>oe.id===c.selectedNodeId)){if(s)return c.lastError=i.unknownViewer,!1;c.selectedNodeId=""}return c.selectedNodeId||(c.selectedNodeId=c.nodes[0]?.id||""),c.lastError=c.selectedNodeId?"":i.noViewers,!!c.selectedNodeId}catch(E){return!$&&I===p&&E.name!=="AbortError"&&(c.lastError=E.message||i.requestError),!1}finally{!$&&I===p&&(c.loading=!1,x=null)}}function Se(){c.before="",c.data=null,c.updatedAt=0,c.lastError=""}async function gt(){if(!c.nodesLoaded||!c.nodes.some(I=>I.id===c.selectedNodeId)){O=!1;const I=await be();if(O=!0,!I)return}await ne()}function Ke(){clearTimeout(j),C(),c.live=!c.live,c.live&&(c.before="",ne())}function rt(){C(),c.before="",ne()}function mt(){const I=c.data?.nextCursor;!I||!c.data?.hasMore||(C(),c.live=!1,c.before=I,ne())}const Qe=Ot(()=>c.data?.node||c.nodes.find(I=>I.id===c.selectedNodeId)||{}),nt=Ot(()=>c.data?.entries||[]),Jt=Ot(()=>c.lastError?i.offline:c.live?i.live:i.paused),ie=Ot(()=>c.data?.storageError||""),Z=new Intl.DateTimeFormat(n,{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3,hour12:!1});function B(I){const P=new Date(I);return Number.isFinite(P.getTime())?Z.format(P):"—"}function Pe(I){return I.timestampMs??I.timestamp}function _t(I){const P=new Date(Pe(I));return Number.isFinite(P.getTime())?P.toISOString():void 0}function Ne(I){const P=String(I.event||"").trim();return{groupvalue_read:"Read",groupvalue_write:"Write",groupvalue_response:"Response",update_nowrite:"Update"}[P.toLowerCase()]||P.replace(/_/g," ")||"—"}function de(I){return Ne(I).toLowerCase()==="read"}function Yt(I){if(de(I))return"—";const P=I.payloadText??(typeof I.payload=="object"?JSON.stringify(I.payload):I.payload);return P==null||P===""?"—":String(P)}return Ft(()=>c.selectedNodeId,()=>{l(Xr,c.selectedNodeId),O&&(clearTimeout(j),C(),Se(),c.selectedNodeId&&ne())}),Ft(()=>c.search,()=>{l(Jr,c.search),O&&(clearTimeout(j),C(),Se(),j=setTimeout(()=>{ne()},300))}),Dn(async()=>{document.documentElement.lang=n,document.title=i.title;const I=await be();await Promise.resolve(),O=!0,I&&!$&&await ne()}),Fn(()=>{$=!0,O=!1,clearTimeout(j),C()}),(I,P)=>(te(),re("main",Ol,[A("header",Vl,[A("div",Rl,[A("h1",null,M(L(i).title),1),A("span",Ml,M(Qe.value.name||""),1),Qe.value.gatewayName?(te(),re("span",Dl,M(Qe.value.gatewayName),1)):Re("",!0)]),A("p",null,[et(M(L(i).subtitle)+" ",1),P[2]||(P[2]=A("span",{class:"separator","aria-hidden":"true"},"·",-1)),P[3]||(P[3]=et()),A("span",null,M(L(i).history),1)])]),A("div",Fl,[c.nodes.length>1?(te(),re("label",Ll,[A("span",Hl,M(L(i).viewer),1),wr(A("select",{"onUpdate:modelValue":P[0]||(P[0]=E=>c.selectedNodeId=E),"aria-label":L(i).viewer},[c.nodes.some(E=>E.id===c.selectedNodeId)?Re("",!0):(te(),re("option",{key:0,value:c.selectedNodeId,disabled:""},M(c.selectedNodeId),9,Kl)),(te(!0),re(we,null,Er(c.nodes,E=>(te(),re("option",{key:E.id,value:E.id},M(E.name||E.id)+M(E.gatewayName?` · ${E.gatewayName}`:""),9,$l))),128))],8,jl),[[El,c.selectedNodeId]])])):Re("",!0),A("div",Ul,[P[4]||(P[4]=A("svg",{"aria-hidden":"true",viewBox:"0 0 20 20"},[A("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),A("path",{d:"m12.5 12.5 4 4"})],-1)),wr(A("input",{"onUpdate:modelValue":P[1]||(P[1]=E=>c.search=E),type:"search","aria-label":L(i).search,placeholder:L(i).search,autocomplete:"off",spellcheck:"false"},null,8,ql),[[Sl,c.search]])]),A("span",{class:vs(["live-status",{paused:!c.live,offline:c.lastError}]),role:"status"},[P[5]||(P[5]=A("span",{"aria-hidden":"true"},null,-1)),et(M(Jt.value),1)],2),A("button",{class:"live-button",type:"button","aria-pressed":!c.live,disabled:!c.nodes.some(E=>E.id===c.selectedNodeId),onClick:Ke},[c.live?(te(),re("svg",Wl,[...P[6]||(P[6]=[A("path",{d:"M5 3v10M11 3v10"},null,-1)])])):(te(),re("svg",kl,[...P[7]||(P[7]=[A("path",{d:"m5 3 7 5-7 5Z"},null,-1)])])),et(" "+M(c.live?L(i).pause:L(i).resume),1)],8,Bl)]),c.lastError?(te(),re("div",Gl,[A("span",null,M(c.lastError),1),A("button",{type:"button",disabled:c.loading,onClick:gt},M(L(i).retry),9,zl)])):Re("",!0),ie.value?(te(),re("div",Xl,[et(M(L(i).storageError)+" ",1),A("span",null,M(ie.value),1)])):Re("",!0),A("section",{class:"monitor","aria-label":L(i).table,"aria-busy":c.loading},[A("div",{class:"table-scroll",tabindex:"0","aria-label":L(i).table},[A("table",null,[A("caption",Zl,M(L(i).table),1),A("thead",null,[A("tr",null,[A("th",Ql,M(L(i).time),1),A("th",ec,M(L(i).telegramType),1),A("th",tc,M(L(i).source),1),A("th",sc,M(L(i).address),1),A("th",rc,M(L(i).name),1),A("th",nc,M(L(i).dpt),1),A("th",ic,M(L(i).previous),1),A("th",oc,M(L(i).value),1)])]),A("tbody",null,[(te(!0),re(we,null,Er(nt.value,E=>(te(),re("tr",{key:E.id},[A("td",lc,[A("time",{datetime:_t(E)},M(B(Pe(E))),9,cc)]),A("td",{class:"type-cell",title:E.event||void 0},M(Ne(E)),9,ac),A("td",uc,M(E.source||"—"),1),A("td",fc,M(E.address||"—"),1),A("td",dc,M(E.devicename||"—"),1),A("td",hc,M(E.dpt||"—"),1),A("td",{class:"payload-cell previous-cell",title:!de(E)&&E.previousPayloadText==null?L(i).firstValue:void 0},M(de(E)?"—":E.previousPayloadText??"—"),9,pc),A("td",gc,[et(M(Yt(E)),1),!de(E)&&E.payloadmeasureunit?(te(),re("span",mc,M(E.payloadmeasureunit),1)):Re("",!0)])]))),128))])]),nt.value.length?Re("",!0):(te(),re("div",_c,[c.loading?(te(),re("p",bc,M(L(i).loadingHistory),1)):c.lastError?(te(),re("p",vc,M(L(i).requestError),1)):(te(),re(we,{key:1},[A("p",null,M(c.search.trim()?L(i).emptySearch:L(i).empty),1),c.search.trim()?Re("",!0):(te(),re("span",yc,M(L(i).emptyHint),1))],64))]))],8,Yl),A("footer",wc,[A("span",xc,[et(M(nt.value.length)+" "+M(L(i).rows),1),c.before?(te(),re("span",Sc," · "+M(L(i).historical),1)):Re("",!0)]),A("nav",{class:"pagination","aria-label":L(i).history},[A("button",{type:"button",disabled:!c.before||c.loading,onClick:rt},M(L(i).newest),9,Tc),A("button",{type:"button",disabled:!c.data?.hasMore||!c.data?.nextCursor||c.loading,onClick:mt},M(L(i).older),9,Cc)],8,Ec)])],8,Jl),A("footer",Ac,[A("span",null,M(L(i).retained),1),c.updatedAt?(te(),re("span",Pc,M(L(i).updated)+" "+M(B(c.updatedAt)),1)):Re("",!0)])]))}};Al(Nc).mount("#app");
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function s(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=s(n);fetch(n.href,i)}})();function Qs(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const X={},pt=[],He=()=>{},en=()=>!1,ms=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_s=e=>e.startsWith("onUpdate:"),de=Object.assign,er=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ui=Object.prototype.hasOwnProperty,q=(e,t)=>ui.call(e,t),R=Array.isArray,rt=e=>Gt(e)==="[object Map]",yt=e=>Gt(e)==="[object Set]",_r=e=>Gt(e)==="[object Date]",L=e=>typeof e=="function",Q=e=>typeof e=="string",je=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",tn=e=>(z(e)||L(e))&&L(e.then)&&L(e.catch),sn=Object.prototype.toString,Gt=e=>sn.call(e),fi=e=>Gt(e).slice(8,-1),rn=e=>Gt(e)==="[object Object]",tr=e=>Q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Dt=Qs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ys=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},di=/-\w/g,Ee=ys(e=>e.replace(di,t=>t.slice(1).toUpperCase())),hi=/\B([A-Z])/g,bt=ys(e=>e.replace(hi,"-$1").toLowerCase()),nn=ys(e=>e.charAt(0).toUpperCase()+e.slice(1)),Os=ys(e=>e?`on${nn(e)}`:""),We=(e,t)=>!Object.is(e,t),ns=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},on=(e,t,s,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:s})},bs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let yr;const vs=()=>yr||(yr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function sr(e){if(R(e)){const t={};for(let s=0;s<e.length;s++){const r=e[s],n=Q(r)?_i(r):sr(r);if(n)for(const i in n)t[i]=n[i]}return t}else if(Q(e)||z(e))return e}const pi=/;(?![^(]*\))/g,gi=/:([^]+)/,mi=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function _i(e){const t={};return e.replace(mi,s=>s.startsWith("/*")?"":s).split(pi).forEach(s=>{if(s){const r=s.split(gi);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ws(e){let t="";if(Q(e))t=e;else if(R(e))for(let s=0;s<e.length;s++){const r=ws(e[s]);r&&(t+=r+" ")}else if(z(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const yi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",bi=Qs(yi);function ln(e){return!!e||e===""}function vi(e,t,s){if(e.length!==t.length)return!1;let r=!0;for(let n=0;r&&n<e.length;n++)r=it(e[n],t[n],s);return r}function br(e,t,s){if(e.size!==t.size)return!1;const r=Array.from(t),n=new Uint8Array(r.length);for(const i of e){let o=-1;for(let l=0;l<r.length;l++)if(!n[l]&&it(i,r[l],s)){o=l;break}if(o<0)return!1;n[o]=1}return!0}function wi(e,t,s){let r=rt(e),n=rt(t);if(r||n||(r=yt(e),n=yt(t),r||n))return r&&n?br(e,t,s):!1;const i=Object.keys(e).length,o=Object.keys(t).length;if(i!==o)return!1;for(const l in e){const u=e.hasOwnProperty(l),d=t.hasOwnProperty(l);if(u&&!d||!u&&d||!it(e[l],t[l],s))return!1}return String(e)===String(t)}function vr(e,t,s,r){s||(s=[new Map,new Map]);const[n,i]=s;if(n.has(e)||i.has(t))return n.get(e)===t&&i.get(t)===e;n.set(e,t),i.set(t,e);const o=r(e,t,s);return n.delete(e),i.delete(t),o}function it(e,t,s){if(e===t)return!0;let r=_r(e),n=_r(t);return r||n?r&&n?e.getTime()===t.getTime():!1:(r=je(e),n=je(t),r||n?e===t:(r=R(e),n=R(t),r||n?r&&n?vr(e,t,s,vi):!1:(r=z(e),n=z(t),r||n?!r||!n?!1:vr(e,t,s,wi):String(e)===String(t))))}function xi(e,t){return e.findIndex(s=>it(s,t))}const cn=e=>!!(e&&e.__v_isRef===!0),D=e=>Q(e)?e:e==null?"":R(e)||z(e)&&(e.toString===sn||!L(e.toString))?cn(e)?D(e.value):JSON.stringify(e,an,2):String(e),an=(e,t)=>cn(t)?an(e,t.value):rt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[r,n],i)=>(s[Is(r,i)+" =>"]=n,s),{})}:yt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Is(s))}:je(t)?Is(t):z(t)&&!R(t)&&!rn(t)?String(t):t,Is=(e,t="")=>{var s;return je(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let ae;class Si{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ae&&(ae.active?(this.parent=ae,this.index=(ae.scopes||(ae.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const r=this.scopes.slice();for(t=0,s=r.length;t<s;t++)r[t].pause()}for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t<s;t++)n[t].resume()}const r=this.effects.slice();for(t=0,s=r.length;t<s;t++)r[t].resume()}}run(t){if(this._active){const s=ae;try{return ae=this,t()}finally{ae=s}}}on(){++this._on===1&&(this.prevScope=ae,ae=this)}off(){if(this._on>0&&--this._on===0){if(ae===this)ae=this.prevScope;else{let t=ae;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,r;for(s=0,r=this.effects.length;s<r;s++)this.effects[s].stop();for(this.effects.length=0,s=0,r=this.cleanups.length;s<r;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const n=this.scopes.slice();for(s=0,r=n.length;s<r;s++)n[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function Ei(){return ae}let Y;const Vs=new WeakSet;class un{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ae&&(ae.active?ae.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Vs.has(this)&&(Vs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||dn(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,wr(this),hn(this);const t=Y,s=Te;Y=this,Te=!0;try{return this.fn()}finally{pn(this),Y=t,Te=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)ir(t);this.deps=this.depsTail=void 0,wr(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Vs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){qs(this)&&this.run()}get dirty(){return qs(this)}}let fn=0,Lt,Ft;function dn(e,t=!1){if(e.flags|=8,t){e.next=Ft,Ft=e;return}e.next=Lt,Lt=e}function rr(){fn++}function nr(){if(--fn>0)return;if(Ft){let t=Ft;for(Ft=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Lt;){let t=Lt;for(Lt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=s}}if(e)throw e}function hn(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function pn(e){let t,s=e.depsTail,r=s;for(;r;){const n=r.prevDep;r.version===-1?(r===s&&(s=n),ir(r),Ti(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=n}e.deps=t,e.depsTail=s}function qs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(gn(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function gn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ut)||(e.globalVersion=Ut,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qs(e))))return;e.flags|=2;const t=e.dep,s=Y,r=Te;Y=e,Te=!0;try{hn(e);const n=e.fn(e._value);(t.version===0||We(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{Y=s,Te=r,pn(e),e.flags&=-3}}function ir(e,t=!1){const{dep:s,prevSub:r,nextSub:n}=e;if(r&&(r.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=r,e.nextSub=void 0),s.subs===e&&(s.subs=r,!r&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)ir(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Ti(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Te=!0;const mn=[];function Xe(){mn.push(Te),Te=!1}function Je(){const e=mn.pop();Te=e===void 0?!0:e}function wr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=Y;Y=void 0;try{t()}finally{Y=s}}}let Ut=0;class Ci{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class _n{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Y||!Te||Y===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Y)s=this.activeLink=new Ci(Y,this),Y.deps?(s.prevDep=Y.depsTail,Y.depsTail.nextDep=s,Y.depsTail=s):Y.deps=Y.depsTail=s,yn(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const r=s.nextDep;r.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=r),s.prevDep=Y.depsTail,s.nextDep=void 0,Y.depsTail.nextDep=s,Y.depsTail=s,Y.deps===s&&(Y.deps=r)}return s}trigger(t){this.version++,Ut++,this.notify(t)}notify(t){rr();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{nr()}}}function yn(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)yn(r)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Bs=new WeakMap,mt=Symbol(""),Ws=Symbol(""),qt=Symbol("");function fe(e,t,s){if(Te&&Y){let r=Bs.get(e);r||Bs.set(e,r=new Map);let n=r.get(s);n||(r.set(s,n=new _n),n.map=r,n.key=s),n.track()}}function ke(e,t,s,r,n,i){const o=Bs.get(e);if(!o){Ut++;return}const l=u=>{u&&u.trigger()};if(rr(),t==="clear")o.forEach(l);else{const u=R(e),d=u&&tr(s);if(u&&s==="length"){const c=Number(r);o.forEach((p,x)=>{(x==="length"||x===qt||!je(x)&&x>=c)&&l(p)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),d&&l(o.get(qt)),t){case"add":u?d&&l(o.get("length")):(l(o.get(mt)),rt(e)&&l(o.get(Ws)));break;case"delete":u||(l(o.get(mt)),rt(e)&&l(o.get(Ws)));break;case"set":rt(e)&&l(o.get(mt));break}}nr()}function Et(e){const t=k(e);return t===e||(fe(t,"iterate",qt),Ce(e))?t:Ye(e)?nt(e)?t.map(s=>ot(Ke(s))):t.map(ot):t.map(Ke)}function xs(e){return fe(e=k(e),"iterate",qt),e}function Le(e,t){return Ye(e)?ot(nt(e)?Ke(t):t):Ke(t)}const Ai={__proto__:null,[Symbol.iterator](){return Rs(this,Symbol.iterator,e=>Le(this,e))},concat(...e){return Et(this).concat(...e.map(t=>R(t)?Et(t):t))},entries(){return Rs(this,"entries",e=>(e[1]=Le(this,e[1]),e))},every(e,t){return Ue(this,"every",e,t,void 0,arguments)},filter(e,t){return Ue(this,"filter",e,t,s=>s.map(r=>Le(this,r)),arguments)},find(e,t){return Ue(this,"find",e,t,s=>Le(this,s),arguments)},findIndex(e,t){return Ue(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ue(this,"findLast",e,t,s=>Le(this,s),arguments)},findLastIndex(e,t){return Ue(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ue(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ms(this,"includes",e)},indexOf(...e){return Ms(this,"indexOf",e)},join(e){return Et(this).join(e)},lastIndexOf(...e){return Ms(this,"lastIndexOf",e)},map(e,t){return Ue(this,"map",e,t,void 0,arguments)},pop(){return Ot(this,"pop")},push(...e){return Ot(this,"push",e)},reduce(e,...t){return xr(this,"reduce",e,t)},reduceRight(e,...t){return xr(this,"reduceRight",e,t)},shift(){return Ot(this,"shift")},some(e,t){return Ue(this,"some",e,t,void 0,arguments)},splice(...e){return Ot(this,"splice",e)},toReversed(){return Et(this).toReversed()},toSorted(e){return Et(this).toSorted(e)},toSpliced(...e){return Et(this).toSpliced(...e)},unshift(...e){return Ot(this,"unshift",e)},values(){return Rs(this,"values",e=>Le(this,e))}};function Rs(e,t,s){const r=xs(e),n=r[t]();return r!==e&&!Ce(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const Pi=Array.prototype;function Ue(e,t,s,r,n,i){const o=xs(e),l=o!==e&&!Ce(e),u=o[t];if(u!==Pi[t]){const p=u.apply(e,i);return l?Ke(p):p}let d=s;o!==e&&(l?d=function(p,x){return s.call(this,Le(e,p),x,e)}:s.length>2&&(d=function(p,x){return s.call(this,p,x,e)}));const c=u.call(o,d,r);return l&&n?n(c):c}function xr(e,t,s,r){const n=xs(e),i=n!==e&&!Ce(e);let o=s,l=!1;n!==e&&(i?(l=r.length===0,o=function(d,c,p){return l&&(l=!1,d=Le(e,d)),s.call(this,d,Le(e,c),p,e)}):s.length>3&&(o=function(d,c,p){return s.call(this,d,c,p,e)}));const u=n[t](o,...r);return l?Le(e,u):u}function Ms(e,t,s){const r=k(e);fe(r,"iterate",qt);const n=r[t](...s);return(n===-1||n===!1)&&cr(s[0])?(s[0]=k(s[0]),r[t](...s)):n}function Ot(e,t,s=[]){Xe(),rr();const r=k(e)[t].apply(e,s);return nr(),Je(),r}const Ni=Qs("__proto__,__v_isRef,__isVue"),bn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(je));function Oi(e){je(e)||(e=String(e));const t=k(this);return fe(t,"has",e),t.hasOwnProperty(e)}class vn{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,r){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return r===(n?i?Ki:En:i?Sn:xn).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=R(t);if(!n){let u;if(o&&(u=Ai[s]))return u;if(s==="hasOwnProperty")return Oi}const l=Reflect.get(t,s,me(t)?t:r);if((je(s)?bn.has(s):Ni(s))||(n||fe(t,"get",s),i))return l;if(me(l)){const u=o&&tr(s)?l:l.value;return n&&z(u)?zs(u):u}return z(l)?n?zs(l):Ss(l):l}}class wn extends vn{constructor(t=!1){super(!1,t)}set(t,s,r,n){let i=t[s];const o=R(t)&&tr(s);if(!this._isShallow){const d=Ye(i);if(!Ce(r)&&!Ye(r)&&(i=k(i),r=k(r)),!o&&me(i)&&!me(r))return d||(i.value=r),!0}const l=o?Number(s)<t.length:q(t,s),u=Reflect.set(t,s,r,me(t)?t:n);return t===k(n)&&u&&(l?We(r,i)&&ke(t,"set",s,r):ke(t,"add",s,r)),u}deleteProperty(t,s){const r=q(t,s);t[s];const n=Reflect.deleteProperty(t,s);return n&&r&&ke(t,"delete",s,void 0),n}has(t,s){const r=Reflect.has(t,s);return(!je(s)||!bn.has(s))&&fe(t,"has",s),r}ownKeys(t){return fe(t,"iterate",R(t)?"length":mt),Reflect.ownKeys(t)}}class Ii extends vn{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Vi=new wn,Ri=new Ii,Mi=new wn(!0);const ks=e=>e,Qt=e=>Reflect.getPrototypeOf(e);function Di(e,t,s){return function(...r){const n=this.__v_raw,i=k(n),o=rt(i),l=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,d=n[e](...r),c=s?ks:t?ot:Ke;return!t&&fe(i,"iterate",u?Ws:mt),de(Object.create(d),{next(){const{value:p,done:x}=d.next();return x?{value:p,done:x}:{value:l?[c(p[0]),c(p[1])]:c(p),done:x}}})}}function es(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Li(e,t){const s={get(n){const i=this.__v_raw,o=k(i),l=k(n);e||(We(n,l)&&fe(o,"get",n),fe(o,"get",l));const{has:u}=Qt(o),d=t?ks:e?ot:Ke;if(u.call(o,n))return d(i.get(n));if(u.call(o,l))return d(i.get(l));i!==o&&i.get(n)},get size(){const n=this.__v_raw;return!e&&fe(k(n),"iterate",mt),n.size},has(n){const i=this.__v_raw,o=k(i),l=k(n);return e||(We(n,l)&&fe(o,"has",n),fe(o,"has",l)),n===l?i.has(n):i.has(n)||i.has(l)},forEach(n,i){const o=this,l=o.__v_raw,u=k(l),d=t?ks:e?ot:Ke;return!e&&fe(u,"iterate",mt),l.forEach((c,p)=>n.call(i,d(c),d(p),o))}};return de(s,e?{add:es("add"),set:es("set"),delete:es("delete"),clear:es("clear")}:{add(n){const i=k(this),o=Qt(i),l=k(n),u=!t&&!Ce(n)&&!Ye(n)?l:n;return o.has.call(i,u)||We(n,u)&&o.has.call(i,n)||We(l,u)&&o.has.call(i,l)||(i.add(u),ke(i,"add",u,u)),this},set(n,i){!t&&!Ce(i)&&!Ye(i)&&(i=k(i));const o=k(this),{has:l,get:u}=Qt(o);let d=l.call(o,n);d||(n=k(n),d=l.call(o,n));const c=u.call(o,n);return o.set(n,i),d?We(i,c)&&ke(o,"set",n,i):ke(o,"add",n,i),this},delete(n){const i=k(this),{has:o,get:l}=Qt(i);let u=o.call(i,n);u||(n=k(n),u=o.call(i,n)),l&&l.call(i,n);const d=i.delete(n);return u&&ke(i,"delete",n,void 0),d},clear(){const n=k(this),i=n.size!==0,o=n.clear();return i&&ke(n,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=Di(n,e,t)}),s}function or(e,t){const s=Li(e,t);return(r,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?r:Reflect.get(q(s,n)&&n in r?s:r,n,i)}const Fi={get:or(!1,!1)},Hi={get:or(!1,!0)},ji={get:or(!0,!1)};const xn=new WeakMap,Sn=new WeakMap,En=new WeakMap,Ki=new WeakMap;function $i(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ss(e){return Ye(e)?e:lr(e,!1,Vi,Fi,xn)}function Ui(e){return lr(e,!1,Mi,Hi,Sn)}function zs(e){return lr(e,!0,Ri,ji,En)}function lr(e,t,s,r,n){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const o=$i(fi(e));if(o===0)return e;const l=new Proxy(e,o===2?r:s);return n.set(e,l),l}function nt(e){return Ye(e)?nt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ye(e){return!!(e&&e.__v_isReadonly)}function Ce(e){return!!(e&&e.__v_isShallow)}function cr(e){return e?!!e.__v_raw:!1}function k(e){const t=e&&e.__v_raw;return t?k(t):e}function qi(e){return!q(e,"__v_skip")&&Object.isExtensible(e)&&on(e,"__v_skip",!0),e}const Ke=e=>z(e)?Ss(e):e,ot=e=>z(e)?zs(e):e;function me(e){return e?e.__v_isRef===!0:!1}function F(e){return me(e)?e.value:e}const Bi={get:(e,t,s)=>t==="__v_raw"?e:F(Reflect.get(e,t,s)),set:(e,t,s,r)=>{const n=e[t];return me(n)&&!me(s)?(n.value=s,!0):Reflect.set(e,t,s,r)}};function Tn(e){return nt(e)?e:new Proxy(e,Bi)}class Wi{constructor(t,s,r){this.fn=t,this.setter=s,this._value=void 0,this.dep=new _n(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ut-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Y!==this)return dn(this,!0),!0}get value(){const t=this.dep.track();return gn(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function ki(e,t,s=!1){let r,n;return L(e)?r=e:(r=e.get,n=e.set),new Wi(r,n,s)}const ts={},ls=new WeakMap;let dt;function zi(e,t=!1,s=dt){if(s){let r=ls.get(s);r||ls.set(s,r=[]),r.push(e)}}function Gi(e,t,s=X){const{immediate:r,deep:n,once:i,scheduler:o,augmentJob:l,call:u}=s,d=C=>n?C:Ce(C)||n===!1||n===0?ze(C,1):ze(C);let c,p,x,T,j=!1,I=!1;if(me(e)?(p=()=>e.value,j=Ce(e)):nt(e)?(p=()=>d(e),j=!0):R(e)?(I=!0,j=e.some(C=>nt(C)||Ce(C)),p=()=>e.map(C=>{if(me(C))return C.value;if(nt(C))return d(C);if(L(C))return u?u(C,2):C()})):L(e)?t?p=u?()=>u(e,2):e:p=()=>{if(x){Xe();try{x()}finally{Je()}}const C=dt;dt=c;try{return u?u(e,3,[T]):e(T)}finally{dt=C}}:p=He,t&&n){const C=p,ee=n===!0?1/0:n;p=()=>ze(C(),ee)}const $=Ei(),J=()=>{c.stop(),$&&$.active&&er($.effects,c)};if(i&&t){const C=t;t=(...ee)=>{const ne=C(...ee);return J(),ne}}let H=I?new Array(e.length).fill(ts):ts;const U=C=>{if(!(!(c.flags&1)||!c.dirty&&!C))if(t){const ee=c.run();if(C||n||j||(I?ee.some((ne,ye)=>We(ne,H[ye])):We(ee,H))){x&&x();const ne=dt;dt=c;try{const ye=[ee,H===ts?void 0:I&&H[0]===ts?[]:H,T];H=ee,u?u(t,3,ye):t(...ye)}finally{dt=ne}}}else c.run()};return l&&l(U),c=new un(p),c.scheduler=o?()=>o(U,!1):U,T=C=>zi(C,!1,c),x=c.onStop=()=>{const C=ls.get(c);if(C){if(u)u(C,4);else for(const ee of C)ee();ls.delete(c)}},t?r?U(!0):H=c.run():o?o(U.bind(null,!0),!0):c.run(),J.pause=c.pause.bind(c),J.resume=c.resume.bind(c),J.stop=J,J}function ze(e,t=1/0,s){if(t<=0||!z(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,me(e))ze(e.value,t,s);else if(R(e))for(let r=0;r<e.length;r++)ze(e[r],t,s);else if(yt(e)||rt(e))e.forEach(r=>{ze(r,t,s)});else if(rn(e)){for(const r in e)ze(e[r],t,s);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ze(e[r],t,s)}return e}function Xt(e,t,s,r){try{return r?e(...r):e()}catch(n){Es(n,t,s)}}function Ae(e,t,s,r){if(L(e)){const n=Xt(e,t,s,r);return n&&tn(n)&&n.catch(i=>{Es(i,t,s)}),n}if(R(e)){const n=[];for(let i=0;i<e.length;i++)n.push(Ae(e[i],t,s,r));return n}}function Es(e,t,s,r=!0){const n=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||X;if(t){let l=t.parent;const u=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;l;){const c=l.ec;if(c){for(let p=0;p<c.length;p++)if(c[p](e,u,d)===!1)return}l=l.parent}if(i){Xe(),Xt(i,null,10,[e,u,d]),Je();return}}Xi(e,s,n,r,o)}function Xi(e,t,s,r=!0,n=!1){if(n)throw e;console.error(e)}const pe=[];let De=-1;const Ct=[];let st=null,Tt=0;const Cn=Promise.resolve();let cs=null;function An(e){const t=cs||Cn;return e?t.then(this?e.bind(this):e):t}function Ji(e){let t=De+1,s=pe.length;for(;t<s;){const r=t+s>>>1,n=pe[r],i=Bt(n);i<e||i===e&&n.flags&2?t=r+1:s=r}return t}function ar(e){if(!(e.flags&1)){const t=Bt(e),s=pe[pe.length-1];!s||!(e.flags&2)&&t>=Bt(s)?pe.push(e):pe.splice(Ji(t),0,e),e.flags|=1,Pn()}}function Pn(){cs||(cs=Cn.then(On))}function Yi(e){if(!R(e))st&&e.id===-1?st.splice(Tt+1,0,e):e.flags&1||(Ct.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Ct.push(e[t]);Pn()}function Sr(e,t,s=De+1){for(;s<pe.length;s++){const r=pe[s];if(r&&r.flags&2){if(e&&r.id!==e.uid)continue;pe.splice(s,1),s--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Nn(e){if(Ct.length){const t=[...new Set(Ct)].sort((s,r)=>Bt(s)-Bt(r));if(Ct.length=0,st){for(let s=0;s<t.length;s++)st.push(t[s]);return}for(st=t,Tt=0;Tt<st.length;Tt++){const s=st[Tt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}st=null,Tt=0}}const Bt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function On(e){try{for(De=0;De<pe.length;De++){const t=pe[De];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Xt(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;De<pe.length;De++){const t=pe[De];t&&(t.flags&=-2)}De=-1,pe.length=0,Nn(),cs=null,(pe.length||Ct.length)&&On()}}let xe=null,In=null;function as(e){const t=xe;return xe=e,In=e&&e.type.__scopeId||null,t}function Zi(e,t=xe,s){if(!t||e._n)return e;const r=(...n)=>{r._d&&Lr(-1);const i=as(t),o=_t.length;let l;try{l=e(...n)}finally{for(let u=_t.length;u>o;u--)ri();as(i),r._d&&Lr(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function Er(e,t){if(xe===null)return e;const s=Ns(xe),r=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[i,o,l,u=X]=t[n];i&&(L(i)&&(i={mounted:i,updated:i}),i.deep&&ze(o),r.push({dir:i,instance:s,value:o,oldValue:void 0,arg:l,modifiers:u}))}return e}function ut(e,t,s,r){const n=e.dirs,i=t&&t.dirs;for(let o=0;o<n.length;o++){const l=n[o];i&&(l.oldValue=i[o].value);let u=l.dir[r];u&&(Xe(),Ae(u,s,8,[e.el,l,e,t]),Je())}}function Qi(e,t){if(ge){let s=ge.provides;const r=ge.parent&&ge.parent.provides;r===s&&(s=ge.provides=Object.create(r)),s[e]=t}}function is(e,t,s=!1){const r=Jo();if(r||At){let n=At?At._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(n&&e in n)return n[e];if(arguments.length>1)return s&&L(t)?t.call(r&&r.proxy):t}}const eo=Symbol.for("v-scx"),to=()=>is(eo);function Ht(e,t,s){return Vn(e,t,s)}function Vn(e,t,s=X){const{immediate:r,deep:n,flush:i,once:o}=s,l=de({},s),u=t&&r||!t&&i!=="post";let d;if(zt){if(i==="sync"){const T=to();d=T.__watcherHandles||(T.__watcherHandles=[])}else if(!u){const T=()=>{};return T.stop=He,T.resume=He,T.pause=He,T}}const c=ge;l.call=(T,j,I)=>Ae(T,c,j,I);let p=!1;i==="post"?l.scheduler=T=>{_e(T,c&&c.suspense)}:i!=="sync"&&(p=!0,l.scheduler=(T,j)=>{j?T():ar(T)}),l.augmentJob=T=>{t&&(T.flags|=4),p&&(T.flags|=2,c&&(T.id=c.uid,T.i=c))};const x=Gi(e,t,l);return zt&&(d?d.push(x):u&&x()),x}function so(e,t,s){const r=this.proxy,n=Q(e)?e.includes(".")?Rn(r,e):()=>r[e]:e.bind(r,r);let i;L(t)?i=t:(i=t.handler,s=t);const o=Jt(this),l=Vn(n,i.bind(r),s);return o(),l}function Rn(e,t){const s=t.split(".");return()=>{let r=e;for(let n=0;n<s.length&&r;n++)r=r[s[n]];return r}}const ro=Symbol("_vte"),Ts=e=>e.__isTeleport,Ds=Symbol("_leaveCb");function no(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ze){t=s;break}}return t}function Mn(e){if(!fr(e))return Ts(e.type)&&e.children?no(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&L(s.default))return s.default()}}function ur(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;ur(Ts(s.type)&&Mn(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Dn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Tr(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const us=new WeakMap;function jt(e,t,s,r,n=!1){if(R(e)){e.forEach((I,$)=>jt(I,t&&(R(t)?t[$]:t),s,r,n));return}if(Kt(r)&&!n){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&jt(e,t,s,r.component.subTree);return}const i=r.shapeFlag&4?Ns(r.component):r.el,o=n?null:i,{i:l,r:u}=e,d=t&&t.r,c=l.refs===X?l.refs={}:l.refs,p=l.setupState,x=k(p),T=p===X?en:I=>Tr(c,I)?!1:q(x,I),j=(I,$)=>!($&&Tr(c,$));if(d!=null&&d!==u){if(Cr(t),Q(d))c[d]=null,T(d)&&(p[d]=null);else if(me(d)){const I=t;j(d,I.k)&&(d.value=null),I.k&&(c[I.k]=null)}}if(L(u))Xt(u,l,12,[o,c]);else{const I=Q(u),$=me(u);if(I||$){const J=()=>{if(e.f){const H=I?T(u)?p[u]:c[u]:j()||!e.k?u.value:c[e.k];if(n)R(H)&&er(H,i);else if(R(H))H.includes(i)||H.push(i);else if(I)c[u]=[i],T(u)&&(p[u]=c[u]);else{const U=[i];j(u,e.k)&&(u.value=U),e.k&&(c[e.k]=U)}}else I?(c[u]=o,T(u)&&(p[u]=o)):$&&(j(u,e.k)&&(u.value=o),e.k&&(c[e.k]=o))};if(o){const H=()=>{J(),us.delete(e)};H.id=-1,us.set(e,H),_e(H,s)}else Cr(e),J()}}}function Cr(e){const t=us.get(e);t&&(t.flags|=8,us.delete(e))}vs().requestIdleCallback;vs().cancelIdleCallback;const Kt=e=>!!e.type.__asyncLoader,fr=e=>e.type.__isKeepAlive;function io(e,t){Ln(e,"a",t)}function oo(e,t){Ln(e,"da",t)}function Ln(e,t,s=ge){const r=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(Cs(t,r,s),s){let n=s.parent;for(;n&&n.parent;)fr(n.parent.vnode)&&lo(r,t,s,n),n=n.parent}}function lo(e,t,s,r){const n=Cs(t,e,r,!0);jn(()=>{er(r[t],n)},s)}function Cs(e,t,s=ge,r=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Xe();const l=Jt(s),u=Ae(t,s,e,o);return l(),Je(),u});return r?n.unshift(i):n.push(i),i}}const Qe=e=>(t,s=ge)=>{(!zt||e==="sp")&&Cs(e,(...r)=>t(...r),s)},co=Qe("bm"),Fn=Qe("m"),ao=Qe("bu"),uo=Qe("u"),Hn=Qe("bum"),jn=Qe("um"),fo=Qe("sp"),ho=Qe("rtg"),po=Qe("rtc");function go(e,t=ge){Cs("ec",e,t)}const mo=Symbol.for("v-ndc");function Ar(e,t,s,r){let n;const i=s,o=R(e);if(o||Q(e)){const l=o&&nt(e);let u=!1,d=!1;l&&(u=!Ce(e),d=Ye(e),e=xs(e)),n=new Array(e.length);for(let c=0,p=e.length;c<p;c++)n[c]=t(u?d?ot(Ke(e[c])):Ke(e[c]):e[c],c,void 0,i)}else if(typeof e=="number"){n=new Array(e);for(let l=0;l<e;l++)n[l]=t(l+1,l,void 0,i)}else if(z(e))if(e[Symbol.iterator])n=Array.from(e,(l,u)=>t(l,u,void 0,i));else{const l=Object.keys(e);n=new Array(l.length);for(let u=0,d=l.length;u<d;u++){const c=l[u];n[u]=t(e[c],c,u,i)}}else n=[];return n}const Gs=e=>e?li(e)?Ns(e):Gs(e.parent):null,$t=de(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gs(e.parent),$root:e=>Gs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>$n(e),$forceUpdate:e=>e.f||(e.f=()=>{ar(e.update)}),$nextTick:e=>e.n||(e.n=An.bind(e.proxy)),$watch:e=>so.bind(e)}),Ls=(e,t)=>e!==X&&!e.__isScriptSetup&&q(e,t),_o={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:r,data:n,props:i,accessCache:o,type:l,appContext:u}=e;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return r[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(Ls(r,t))return o[t]=1,r[t];if(n!==X&&q(n,t))return o[t]=2,n[t];if(q(i,t))return o[t]=3,i[t];if(s!==X&&q(s,t))return o[t]=4,s[t];Xs&&(o[t]=0)}}const d=$t[t];let c,p;if(d)return t==="$attrs"&&fe(e.attrs,"get",""),d(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(s!==X&&q(s,t))return o[t]=4,s[t];if(p=u.config.globalProperties,q(p,t))return p[t]},set({_:e},t,s){const{data:r,setupState:n,ctx:i}=e;return Ls(n,t)?(n[t]=s,!0):r!==X&&q(r,t)?(r[t]=s,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:r,appContext:n,props:i,type:o}},l){let u;return!!(s[l]||e!==X&&l[0]!=="$"&&q(e,l)||Ls(t,l)||q(i,l)||q(r,l)||q($t,l)||q(n.config.globalProperties,l)||(u=o.__cssModules)&&u[l])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:q(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function Pr(e){return R(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Xs=!0;function yo(e){const t=$n(e),s=e.proxy,r=e.ctx;Xs=!1,t.beforeCreate&&Nr(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:o,watch:l,provide:u,inject:d,created:c,beforeMount:p,mounted:x,beforeUpdate:T,updated:j,activated:I,deactivated:$,beforeDestroy:J,beforeUnmount:H,destroyed:U,unmounted:C,render:ee,renderTracked:ne,renderTriggered:ye,errorCaptured:Se,serverPrefetch:vt,expose:$e,inheritAttrs:lt,components:wt,directives:et,filters:ct}=t;if(d&&bo(d,r,null),o)for(const Z in o){const B=o[Z];L(B)&&(r[Z]=B.bind(s))}if(n){const Z=n.call(s,s);z(Z)&&(e.data=Ss(Z))}if(Xs=!0,i)for(const Z in i){const B=i[Z],Pe=L(B)?B.bind(s,s):L(B.get)?B.get.bind(s,s):He,xt=!L(B)&&L(B.set)?B.set.bind(s):He,Ne=Rt({get:Pe,set:xt});Object.defineProperty(r,Z,{enumerable:!0,configurable:!0,get:()=>Ne.value,set:ue=>Ne.value=ue})}if(l)for(const Z in l)Kn(l[Z],r,s,Z);if(u){const Z=L(u)?u.call(s):u;Reflect.ownKeys(Z).forEach(B=>{Qi(B,Z[B])})}c&&Nr(c,e,"c");function ie(Z,B){R(B)?B.forEach(Pe=>Z(Pe.bind(s))):B&&Z(B.bind(s))}if(ie(co,p),ie(Fn,x),ie(ao,T),ie(uo,j),ie(io,I),ie(oo,$),ie(go,Se),ie(po,ne),ie(ho,ye),ie(Hn,H),ie(jn,C),ie(fo,vt),R($e))if($e.length){const Z=e.exposed||(e.exposed={});$e.forEach(B=>{Object.defineProperty(Z,B,{get:()=>s[B],set:Pe=>s[B]=Pe,enumerable:!0})})}else e.exposed||(e.exposed={});ee&&e.render===He&&(e.render=ee),lt!=null&&(e.inheritAttrs=lt),wt&&(e.components=wt),et&&(e.directives=et),vt&&Dn(e)}function bo(e,t,s=He){R(e)&&(e=Js(e));for(const r in e){const n=e[r];let i;z(n)?"default"in n?i=is(n.from||r,n.default,!0):i=is(n.from||r):i=is(n),me(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Nr(e,t,s){Ae(R(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,s)}function Kn(e,t,s,r){let n=r.includes(".")?Rn(s,r):()=>s[r];if(Q(e)){const i=t[e];L(i)&&Ht(n,i)}else if(L(e))Ht(n,e.bind(s));else if(z(e))if(R(e))e.forEach(i=>Kn(i,t,s,r));else{const i=L(e.handler)?e.handler.bind(s):t[e.handler];L(i)&&Ht(n,i,e)}}function $n(e){const t=e.type,{mixins:s,extends:r}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let u;return l?u=l:!n.length&&!s&&!r?u=t:(u={},n.length&&n.forEach(d=>fs(u,d,o,!0)),fs(u,t,o)),z(t)&&i.set(t,u),u}function fs(e,t,s,r=!1){const{mixins:n,extends:i}=t;i&&fs(e,i,s,!0),n&&n.forEach(o=>fs(e,o,s,!0));for(const o in t)if(!(r&&o==="expose")){const l=vo[o]||s&&s[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const vo={data:Or,props:Ir,emits:Ir,methods:Vt,computed:Vt,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Vt,directives:Vt,watch:xo,provide:Or,inject:wo};function Or(e,t){return t?e?function(){return de(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function wo(e,t){return Vt(Js(e),Js(t))}function Js(e){if(R(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function he(e,t){return e?[...new Set([].concat(e,t))]:t}function Vt(e,t){return e?de(Object.create(null),e,t):t}function Ir(e,t){return e?R(e)&&R(t)?[...new Set([...e,...t])]:de(Object.create(null),Pr(e),Pr(t??{})):t}function xo(e,t){if(!e)return t;if(!t)return e;const s=de(Object.create(null),e);for(const r in t)s[r]=he(e[r],t[r]);return s}function Un(){return{app:null,config:{isNativeTag:en,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let So=0;function Eo(e,t){return function(r,n=null){L(r)||(r=de({},r)),n!=null&&!z(n)&&(n=null);const i=Un(),o=new WeakSet,l=[];let u=!1;const d=i.app={_uid:So++,_component:r,_props:n,_container:null,_context:i,_instance:null,version:sl,get config(){return i.config},set config(c){},use(c,...p){return o.has(c)||(c&&L(c.install)?(o.add(c),c.install(d,...p)):L(c)&&(o.add(c),c(d,...p))),d},mixin(c){return i.mixins.includes(c)||i.mixins.push(c),d},component(c,p){return p?(i.components[c]=p,d):i.components[c]},directive(c,p){return p?(i.directives[c]=p,d):i.directives[c]},mount(c,p,x){if(!u){const T=d._ceVNode||Ge(r,n);return T.appContext=i,x===!0?x="svg":x===!1&&(x=void 0),e(T,c,x),u=!0,d._container=c,c.__vue_app__=d,Ns(T.component)}},onUnmount(c){l.push(c)},unmount(){u&&(Ae(l,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(c,p){return i.provides[c]=p,d},runWithContext(c){const p=At;At=d;try{return c()}finally{At=p}}};return d}}let At=null;const To=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ee(t)}Modifiers`]||e[`${bt(t)}Modifiers`];function Co(e,t,...s){if(e.isUnmounted)return;const r=e.vnode.props||X;let n=s;const i=t.startsWith("update:"),o=i&&To(r,t.slice(7));o&&(o.trim&&(n=s.map(c=>Q(c)?c.trim():c)),o.number&&(n=n.map(bs)));let l,u=r[l=Os(t)]||r[l=Os(Ee(t))];!u&&i&&(u=r[l=Os(bt(t))]),u&&Ae(u,e,6,n);const d=r[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(d,e,6,n)}}const Ao=new WeakMap;function qn(e,t,s=!1){const r=s?Ao:t.emitsCache,n=r.get(e);if(n!==void 0)return n;const i=e.emits;let o={},l=!1;if(!L(e)){const u=d=>{const c=qn(d,t,!0);c&&(l=!0,de(o,c))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!l?(z(e)&&r.set(e,null),null):(R(i)?i.forEach(u=>o[u]=null):de(o,i),z(e)&&r.set(e,o),o)}function As(e,t){return!e||!ms(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,bt(t))||q(e,t))}function Vr(e){const{type:t,vnode:s,proxy:r,withProxy:n,propsOptions:[i],slots:o,attrs:l,emit:u,render:d,renderCache:c,props:p,data:x,setupState:T,ctx:j,inheritAttrs:I}=e,$=as(e);let J,H;try{if(s.shapeFlag&4){const C=n||r,ee=C;J=Fe(d.call(ee,C,c,p,T,x,j)),H=l}else{const C=t;J=Fe(C.length>1?C(p,{attrs:l,slots:o,emit:u}):C(p,null)),H=t.props?l:Po(l)}}catch(C){_t.length=0,Es(C,e,1),J=Ge(Ze)}let U=J;if(H&&I!==!1){const C=Object.keys(H),{shapeFlag:ee}=U;C.length&&ee&7&&(i&&C.some(_s)&&(H=No(H,i)),U=Pt(U,H,!1,!0))}if(s.dirs&&(U=Pt(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(s.dirs):s.dirs),s.transition){const C=Ts(U.type)&&Mn(U)||U;ur(C,s.transition)}return J=U,as($),J}const Po=e=>{let t;for(const s in e)(s==="class"||s==="style"||ms(s))&&((t||(t={}))[s]=e[s]);return t},No=(e,t)=>{const s={};for(const r in e)(!_s(r)||!(r.slice(9)in t))&&(s[r]=e[r]);return s};function Oo(e,t,s){const{props:r,children:n,component:i}=e,{props:o,children:l,patchFlag:u}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return r?Rr(r,o,d):!!o;if(u&8){const c=t.dynamicProps;for(let p=0;p<c.length;p++){const x=c[p];if(Bn(o,r,x)&&!As(d,x))return!0}}}else return(n||l)&&(!l||!l.$stable)?!0:r===o?!1:r?o?Rr(r,o,d):!0:!!o;return!1}function Rr(e,t,s){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let n=0;n<r.length;n++){const i=r[n];if(Bn(t,e,i)&&!As(s,i))return!0}return!1}function Bn(e,t,s){const r=e[s],n=t[s];return s==="style"&&z(r)&&z(n)?!it(r,n):r!==n}function Io({vnode:e,parent:t,suspense:s},r){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=r)}const Wn={},kn=()=>Object.create(Wn),zn=e=>Object.getPrototypeOf(e)===Wn;function Vo(e,t,s,r=!1){const n={},i=kn();e.propsDefaults=Object.create(null),Gn(e,t,n,i);for(const o in e.propsOptions[0])o in n||(n[o]=void 0);s?e.props=r?n:Ui(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function Ro(e,t,s,r){const{props:n,attrs:i,vnode:{patchFlag:o}}=e,l=k(n),[u]=e.propsOptions;let d=!1;if((r||o>0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let p=0;p<c.length;p++){let x=c[p];if(As(e.emitsOptions,x))continue;const T=t[x];if(u)if(q(i,x))T!==i[x]&&(i[x]=T,d=!0);else{const j=Ee(x);n[j]=Ys(u,l,j,T,e,!1)}else T!==i[x]&&(i[x]=T,d=!0)}}}else{Gn(e,t,n,i)&&(d=!0);let c;for(const p in l)(!t||!q(t,p)&&((c=bt(p))===p||!q(t,c)))&&(u?s&&(s[p]!==void 0||s[c]!==void 0)&&(n[p]=Ys(u,l,p,void 0,e,!0)):delete n[p]);if(i!==l)for(const p in i)(!t||!q(t,p))&&(delete i[p],d=!0)}d&&ke(e.attrs,"set","")}function Gn(e,t,s,r){const[n,i]=e.propsOptions;let o=!1,l;if(t)for(let u in t){if(Dt(u))continue;const d=t[u];let c;n&&q(n,c=Ee(u))?!i||!i.includes(c)?s[c]=d:(l||(l={}))[c]=d:As(e.emitsOptions,u)||(!(u in r)||d!==r[u])&&(r[u]=d,o=!0)}if(i){const u=k(s),d=l||X;for(let c=0;c<i.length;c++){const p=i[c];s[p]=Ys(n,u,p,d[p],e,!q(d,p))}}return o}function Ys(e,t,s,r,n,i){const o=e[s];if(o!=null){const l=q(o,"default");if(l&&r===void 0){const u=o.default;if(o.type!==Function&&!o.skipFactory&&L(u)){const{propsDefaults:d}=n;if(s in d)r=d[s];else{const c=Jt(n);r=d[s]=u.call(null,t),c()}}else r=u;n.ce&&n.ce._setProp(s,r)}o[0]&&(i&&!l?r=!1:o[1]&&(r===""||r===bt(s))&&(r=!0))}return r}const Mo=new WeakMap;function Xn(e,t,s=!1){const r=s?Mo:t.propsCache,n=r.get(e);if(n)return n;const i=e.props,o={},l=[];let u=!1;if(!L(e)){const c=p=>{u=!0;const[x,T]=Xn(p,t,!0);de(o,x),T&&l.push(...T)};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!u)return z(e)&&r.set(e,pt),pt;if(R(i))for(let c=0;c<i.length;c++){const p=Ee(i[c]);Mr(p)&&(o[p]=X)}else if(i)for(const c in i){const p=Ee(c);if(Mr(p)){const x=i[c],T=o[p]=R(x)||L(x)?{type:x}:de({},x),j=T.type;let I=!1,$=!0;if(R(j))for(let J=0;J<j.length;++J){const H=j[J],U=L(H)&&H.name;if(U==="Boolean"){I=!0;break}else U==="String"&&($=!1)}else I=L(j)&&j.name==="Boolean";T[0]=I,T[1]=$,(I||q(T,"default"))&&l.push(p)}}const d=[o,l];return z(e)&&r.set(e,d),d}function Mr(e){return e[0]!=="$"&&!Dt(e)}const dr=e=>e==="_"||e==="_ctx"||e==="$stable",hr=e=>R(e)?e.map(Fe):[Fe(e)],Do=(e,t,s)=>{if(t._n)return t;const r=Zi((...n)=>hr(t(...n)),s);return r._c=!1,r},Jn=(e,t,s)=>{const r=e._ctx;for(const n in e){if(dr(n))continue;const i=e[n];if(L(i))t[n]=Do(n,i,r);else if(i!=null){const o=hr(i);t[n]=()=>o}}},Yn=(e,t)=>{const s=hr(t);e.slots.default=()=>s},Zn=(e,t,s)=>{for(const r in t)(s||!dr(r))&&(e[r]=t[r])},Lo=(e,t,s)=>{const r=e.slots=kn();if(e.vnode.shapeFlag&32){const n=t._;n?(Zn(r,t,s),s&&on(r,"_",n,!0)):Jn(t,r)}else t&&Yn(e,t)},Fo=(e,t,s)=>{const{vnode:r,slots:n}=e;let i=!0,o=X;if(r.shapeFlag&32){const l=t._;l?s&&l===1?i=!1:Zn(n,t,s):(i=!t.$stable,Jn(t,n)),o=t}else t&&(Yn(e,t),o={default:1});if(i)for(const l in n)!dr(l)&&o[l]==null&&delete n[l]},_e=Uo;function Ho(e){return jo(e)}function jo(e,t){const s=vs();s.__VUE__=!0;const{insert:r,remove:n,patchProp:i,createElement:o,createText:l,createComment:u,setText:d,setElementText:c,parentNode:p,nextSibling:x,setScopeId:T=He,insertStaticContent:j}=e,I=(a,f,h,y=null,g=null,_=null,w=void 0,v=null,b=!!f.dynamicChildren)=>{if(a===f)return;a&&!It(a,f)&&(y=oe(a),ue(a,g,_,!0),a=null),f.patchFlag===-2&&(b=!1,f.dynamicChildren=null),f.dynamicChildren&&a&&a.dynamicChildren&&a.dynamicChildren.hasOnce&&(f.dynamicChildren===pt&&(f.dynamicChildren=[]),f.dynamicChildren.hasOnce=!0);const{type:m,ref:V,shapeFlag:S}=f;switch(m){case Ps:$(a,f,h,y);break;case Ze:J(a,f,h,y);break;case Hs:a==null&&H(f,h,y,w);break;case we:wt(a,f,h,y,g,_,w,v,b);break;default:S&1?ee(a,f,h,y,g,_,w,v,b):S&6?et(a,f,h,y,g,_,w,v,b):(S&64||S&128)&&m.process(a,f,h,y,g,_,w,v,b,St)}V!=null&&g?jt(V,a&&a.ref,_,f||a,!f):V==null&&a&&a.ref!=null&&jt(a.ref,null,_,a,!0)},$=(a,f,h,y)=>{if(a==null)r(f.el=l(f.children),h,y);else{const g=f.el=a.el;f.children!==a.children&&d(g,f.children)}},J=(a,f,h,y)=>{a==null?r(f.el=u(f.children||""),h,y):f.el=a.el},H=(a,f,h,y)=>{[a.el,a.anchor]=j(a.children,f,h,y,a.el,a.anchor)},U=({el:a,anchor:f},h,y)=>{let g;for(;a&&a!==f;)g=x(a),r(a,h,y),a=g;r(f,h,y)},C=({el:a,anchor:f})=>{let h;for(;a&&a!==f;)h=x(a),n(a),a=h;n(f)},ee=(a,f,h,y,g,_,w,v,b)=>{if(f.type==="svg"?w="svg":f.type==="math"&&(w="mathml"),a==null)ne(f,h,y,g,_,w,v,b);else{const m=a.el&&a.el._isVueCE?a.el:null;try{m&&m._beginPatch(),vt(a,f,g,_,w,v,b)}finally{m&&m._endPatch()}}},ne=(a,f,h,y,g,_,w,v)=>{let b,m;const{props:V,shapeFlag:S,transition:N,dirs:M}=a;if(b=a.el=o(a.type,_,V&&V.is,V),S&8?c(b,a.children):S&16&&Se(a.children,b,null,y,g,Fs(a,_),w,v),M&&ut(a,null,y,"created"),ye(b,a,a.scopeId,w,y),V){for(const G in V)G!=="value"&&!Dt(G)&&i(b,G,null,V[G],_,y);"value"in V&&i(b,"value",null,V.value,_),(m=V.onVnodeBeforeMount)&&Me(m,y,a)}M&&ut(a,null,y,"beforeMount");const K=Ko(g,N);K&&N.beforeEnter(b),r(b,f,h),((m=V&&V.onVnodeMounted)||K||M)&&_e(()=>{m&&Me(m,y,a),K&&N.enter(b),M&&ut(a,null,y,"mounted")},g)},ye=(a,f,h,y,g)=>{if(h&&T(a,h),y)for(let _=0;_<y.length;_++)T(a,y[_]);if(g){let _=g.subTree;if(f===_||si(_.type)&&(_.ssContent===f||_.ssFallback===f)){const w=g.vnode;ye(a,w,w.scopeId,w.slotScopeIds,g.parent)}}},Se=(a,f,h,y,g,_,w,v,b=0)=>{for(let m=b;m<a.length;m++){const V=a[m]=v?Be(a[m]):Fe(a[m]);I(null,V,f,h,y,g,_,w,v)}},vt=(a,f,h,y,g,_,w)=>{const v=f.el=a.el;let{patchFlag:b,dynamicChildren:m,dirs:V}=f;b|=a.patchFlag&16;const S=a.props||X,N=f.props||X;let M;if(h&&ft(h,!1),(M=N.onVnodeBeforeUpdate)&&Me(M,h,f,a),V&&ut(f,a,h,"beforeUpdate"),h&&ft(h,!0),m&&(!a.dynamicChildren||a.dynamicChildren.length!==m.length)&&(b=0,w=!1,m=null),(S.innerHTML&&N.innerHTML==null||S.textContent&&N.textContent==null)&&c(v,""),m?$e(a.dynamicChildren,m,v,h,y,Fs(f,g),_):w||B(a,f,v,null,h,y,Fs(f,g),_,!1),b>0){if(b&16)lt(v,S,N,h,g);else if(b&2&&S.class!==N.class&&i(v,"class",null,N.class,g),b&4&&i(v,"style",S.style,N.style,g),b&8){const K=f.dynamicProps;for(let G=0;G<K.length;G++){const W=K[G],se=S[W],ce=N[W];(ce!==se||W==="value")&&i(v,W,se,ce,g,h)}}b&1&&a.children!==f.children&&c(v,f.children)}else!w&&m==null&<(v,S,N,h,g);((M=N.onVnodeUpdated)||V)&&_e(()=>{M&&Me(M,h,f,a),V&&ut(f,a,h,"updated")},y)},$e=(a,f,h,y,g,_,w)=>{for(let v=0;v<f.length;v++){const b=a[v],m=f[v],V=b.el&&(b.type===we||!It(b,m)||b.shapeFlag&198)?p(b.el):h;I(b,m,V,null,y,g,_,w,!0)}},lt=(a,f,h,y,g)=>{if(f!==h){if(f!==X)for(const _ in f)!Dt(_)&&!(_ in h)&&i(a,_,f[_],null,g,y);for(const _ in h){if(Dt(_))continue;const w=h[_],v=f[_];w!==v&&_!=="value"&&i(a,_,v,w,g,y)}"value"in h&&i(a,"value",f.value,h.value,g)}},wt=(a,f,h,y,g,_,w,v,b)=>{const m=f.el=a?a.el:l(""),V=f.anchor=a?a.anchor:l("");let{patchFlag:S,dynamicChildren:N,slotScopeIds:M}=f;M&&(v=v?v.concat(M):M),a==null?(r(m,h,y),r(V,h,y),Se(f.children||[],h,V,g,_,w,v,b)):S>0&&S&64&&N&&a.dynamicChildren&&a.dynamicChildren.length===N.length?($e(a.dynamicChildren,N,h,g,_,w,v),(f.key!=null||g&&f===g.subTree)&&Qn(a,f,!0)):B(a,f,h,V,g,_,w,v,b)},et=(a,f,h,y,g,_,w,v,b)=>{f.slotScopeIds=v,a==null?f.shapeFlag&512?g.ctx.activate(f,h,y,w,b):ct(f,h,y,g,_,w,b):Yt(a,f,b)},ct=(a,f,h,y,g,_,w)=>{const v=a.component=Xo(a,y,g);if(fr(a)&&(v.ctx.renderer=St),Yo(v,!1,w),v.asyncDep){if(g&&g.registerDep(v,ie,w),!a.el){const b=v.subTree=Ge(Ze);J(null,b,f,h),a.placeholder=b.el}}else ie(v,a,f,h,g,_,w)},Yt=(a,f,h)=>{const y=f.component=a.component;if(Oo(a,f,h))if(y.asyncDep&&!y.asyncResolved){f.el=a.el,Z(y,f,h);return}else y.next=f,y.update();else f.el=a.el,y.vnode=f},ie=(a,f,h,y,g,_,w)=>{const v=()=>{if(a.isMounted){let{next:S,bu:N,u:M,parent:K,vnode:G}=a;{const Ie=ei(a);if(Ie){S&&(S.el=G.el,Z(a,S,w)),Ie.asyncDep.then(()=>{_e(()=>{a.isUnmounted||m()},g)});return}}let W=S,se;ft(a,!1),S?(S.el=G.el,Z(a,S,w)):S=G,N&&ns(N),(se=S.props&&S.props.onVnodeBeforeUpdate)&&Me(se,K,S,G),ft(a,!0);const ce=Vr(a),Oe=a.subTree;a.subTree=ce,I(Oe,ce,p(Oe.el),oe(Oe),a,g,_),S.el=ce.el,W===null&&Io(a,ce.el),M&&_e(M,g),(se=S.props&&S.props.onVnodeUpdated)&&_e(()=>Me(se,K,S,G),g)}else{let S;const{el:N,props:M}=f,{bm:K,m:G,parent:W,root:se,type:ce}=a,Oe=Kt(f);ft(a,!1),K&&ns(K),!Oe&&(S=M&&M.onVnodeBeforeMount)&&Me(S,W,f),ft(a,!0);{se.ce&&se.ce._hasShadowRoot()&&se.ce._injectChildStyle(ce,a.parent?a.parent.type:void 0);const Ie=a.subTree=Vr(a);I(null,Ie,h,y,a,g,_),f.el=Ie.el}if(G&&_e(G,g),!Oe&&(S=M&&M.onVnodeMounted)){const Ie=f;_e(()=>Me(S,W,Ie),g)}(f.shapeFlag&256||W&&Kt(W.vnode)&&W.vnode.shapeFlag&256)&&a.a&&_e(a.a,g),a.isMounted=!0,f=h=y=null}};a.scope.on();const b=a.effect=new un(v);a.scope.off();const m=a.update=b.run.bind(b),V=a.job=b.runIfDirty.bind(b);V.i=a,V.id=a.uid,b.scheduler=()=>ar(V),ft(a,!0),m()},Z=(a,f,h)=>{f.component=a;const y=a.vnode.props;a.vnode=f,a.next=null,Ro(a,f.props,y,h),Fo(a,f.children,h),Xe(),Sr(a),Je()},B=(a,f,h,y,g,_,w,v,b=!1)=>{const m=a&&a.children,V=a?a.shapeFlag:0,S=f.children,{patchFlag:N,shapeFlag:M}=f;if(N>0){if(N&128){xt(m,S,h,y,g,_,w,v,b);return}else if(N&256){Pe(m,S,h,y,g,_,w,v,b);return}}M&8?(V&16&&E(m,g,_),S!==m&&c(h,S)):V&16?M&16?xt(m,S,h,y,g,_,w,v,b):E(m,g,_,!0):(V&8&&c(h,""),M&16&&Se(S,h,y,g,_,w,v,b))},Pe=(a,f,h,y,g,_,w,v,b)=>{a=a||pt,f=f||pt;const m=a.length,V=f.length,S=Math.min(m,V);let N;for(N=0;N<S;N++){const M=f[N]=b?Be(f[N]):Fe(f[N]);I(a[N],M,h,null,g,_,w,v,b)}m>V?E(a,g,_,!0,!1,S):Se(f,h,y,g,_,w,v,b,S)},xt=(a,f,h,y,g,_,w,v,b)=>{let m=0;const V=f.length;let S=a.length-1,N=V-1;for(;m<=S&&m<=N;){const M=a[m],K=f[m]=b?Be(f[m]):Fe(f[m]);if(It(M,K))I(M,K,h,null,g,_,w,v,b);else break;m++}for(;m<=S&&m<=N;){const M=a[S],K=f[N]=b?Be(f[N]):Fe(f[N]);if(It(M,K))I(M,K,h,null,g,_,w,v,b);else break;S--,N--}if(m>S){if(m<=N){const M=N+1,K=M<V?f[M].el:y;for(;m<=N;)I(null,f[m]=b?Be(f[m]):Fe(f[m]),h,K,g,_,w,v,b),m++}}else if(m>N)for(;m<=S;)ue(a[m],g,_,!0),m++;else{const M=m,K=m,G=new Map;for(m=K;m<=N;m++){const be=f[m]=b?Be(f[m]):Fe(f[m]);be.key!=null&&G.set(be.key,m)}let W,se=0;const ce=N-K+1;let Oe=!1,Ie=0;const Nt=new Array(ce);for(m=0;m<ce;m++)Nt[m]=0;for(m=M;m<=S;m++){const be=a[m];if(se>=ce){ue(be,g,_,!0);continue}let Ve;if(be.key!=null)Ve=G.get(be.key);else for(W=K;W<=N;W++)if(Nt[W-K]===0&&It(be,f[W])){Ve=W;break}Ve===void 0?ue(be,g,_,!0):(Nt[Ve-K]=m+1,Ve>=Ie?Ie=Ve:Oe=!0,I(be,f[Ve],h,null,g,_,w,v,b),se++)}const pr=Oe?$o(Nt):pt;for(W=pr.length-1,m=ce-1;m>=0;m--){const be=K+m,Ve=f[be],gr=f[be+1],mr=be+1<V?gr.el||ti(gr):y;Nt[m]===0?I(null,Ve,h,mr,g,_,w,v,b):Oe&&(W<0||m!==pr[W]?Ne(Ve,h,mr,2):W--)}}},Ne=(a,f,h,y,g=null)=>{const{el:_,type:w,transition:v,children:b,shapeFlag:m}=a;if(m&6){Ne(a.component.subTree,f,h,y);return}if(m&128){a.suspense.move(f,h,y);return}if(m&64){w.move(a,f,h,St);return}if(w===we){r(_,f,h);for(let S=0;S<b.length;S++)Ne(b[S],f,h,y);r(a.anchor,f,h);return}if(w===Hs){U(a,f,h);return}if(y!==2&&m&1&&v)if(y===0)v.persisted&&!_[Ds]?r(_,f,h):(v.beforeEnter(_),r(_,f,h),_e(()=>v.enter(_),g));else{const{leave:S,delayLeave:N,afterLeave:M}=v,K=()=>{a.ctx.isUnmounted?n(_):r(_,f,h)},G=()=>{const W=_._isLeaving||!!_[Ds];_._isLeaving&&_[Ds](!0),v.persisted&&!W?K():S(_,()=>{K(),M&&M()})};N?N(_,K,G):G()}else r(_,f,h)},ue=(a,f,h,y=!1,g=!1)=>{const{type:_,props:w,ref:v,children:b,dynamicChildren:m,shapeFlag:V,patchFlag:S,dirs:N,cacheIndex:M,memo:K}=a;if((S===-2||m&&m.hasOnce)&&(g=!1),v!=null&&(Xe(),jt(v,null,h,a,!0),Je()),M!=null&&(!a.ctx||a.ctx===f)&&(f.renderCache[M]=void 0),V&256){f.ctx.deactivate(a);return}const G=V&1&&N,W=!Kt(a);let se;if(W&&(se=w&&w.onVnodeBeforeUnmount)&&Me(se,f,a),V&6)P(a.component,h,y);else{if(V&128){a.suspense.unmount(h,y);return}G&&ut(a,null,f,"beforeUnmount"),V&64?a.type.remove(a,f,h,St,y):m&&!m.hasOnce&&(_!==we||S>0&&S&64)?E(m,f,h,!1,!0):(_===we&&S&384||!g&&V&16)&&E(b,f,h),y&&Zt(a)}const ce=K!=null&&M==null;(W&&(se=w&&w.onVnodeUnmounted)||G||ce)&&_e(()=>{se&&Me(se,f,a),G&&ut(a,null,f,"unmounted"),ce&&(a.el=null)},h)},Zt=a=>{const{type:f,el:h,anchor:y,transition:g}=a;if(f===we){O(h,y);return}if(f===Hs){C(a),g&&!g.persisted&&g.afterLeave&&g.afterLeave();return}const _=()=>{n(h),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(a.shapeFlag&1&&g&&!g.persisted){const{leave:w,delayLeave:v}=g,b=()=>w(h,_);v?v(a.el,_,b):b()}else _()},O=(a,f)=>{let h;for(;a!==f;)h=x(a),n(a),a=h;n(f)},P=(a,f,h)=>{const{bum:y,scope:g,job:_,subTree:w,um:v,m:b,a:m}=a;Dr(b),Dr(m),y&&ns(y),g.stop(),_?(_.flags|=8,ue(w,a,f,h)):a.vnode.el&&w&&(w.transition=a.vnode.transition,ue(w,a,f,h)),v&&_e(v,f),_e(()=>{a.isUnmounted=!0},f)},E=(a,f,h,y=!1,g=!1,_=0)=>{for(let w=_;w<a.length;w++)ue(a[w],f,h,y,g)},oe=a=>{if(a.shapeFlag&6)return oe(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=x(a.anchor||a.el),h=f&&f[ro];return h?x(h):f};let le=!1;const at=(a,f,h)=>{let y;a==null?f._vnode&&(ue(f._vnode,null,null,!0),y=f._vnode.component):I(f._vnode||null,a,f,null,null,null,h),f._vnode=a,le||(le=!0,Sr(y),Nn(),le=!1)},St={p:I,um:ue,m:Ne,r:Zt,mt:ct,mc:Se,pc:B,pbc:$e,n:oe,o:e};return{render:at,hydrate:void 0,createApp:Eo(at)}}function Fs({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function ft({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Qn(e,t,s=!1){const r=e.children,n=t.children;if(R(r)&&R(n))for(let i=0;i<r.length;i++){const o=r[i];let l=n[i];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=n[i]=Be(n[i]),l.el=o.el),!s&&l.patchFlag!==-2&&Qn(o,l)),l.type===Ps&&(l.patchFlag===-1&&(l=n[i]=Be(l)),l.el=o.el),l.type===Ze&&!l.el&&(l.el=o.el)}}function $o(e){const t=e.slice(),s=[0];let r,n,i,o,l;const u=e.length;for(r=0;r<u;r++){const d=e[r];if(d!==0){if(n=s[s.length-1],e[n]<d){t[r]=n,s.push(r);continue}for(i=0,o=s.length-1;i<o;)l=i+o>>1,e[s[l]]<d?i=l+1:o=l;d<e[s[i]]&&(i>0&&(t[r]=s[i-1]),s[i]=r)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=t[o];return s}function ei(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ei(t)}function Dr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ti(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?ti(t.subTree):null}const si=e=>e.__isSuspense;function Uo(e,t){t&&t.pendingBranch?R(e)?t.effects.push(...e):t.effects.push(e):Yi(e)}const we=Symbol.for("v-fgt"),Ps=Symbol.for("v-txt"),Ze=Symbol.for("v-cmt"),Hs=Symbol.for("v-stc"),_t=[];let ve=null;function te(e=!1){_t.push(ve=e?null:[])}function ri(){_t.pop(),ve=_t[_t.length-1]||null}let Wt=1;function Lr(e,t=!1){Wt+=e,e<0&&ve&&t&&(ve.hasOnce=!0)}function ni(e){return e.dynamicChildren=Wt>0?ve||pt:null,ri(),Wt>0&&ve&&ve.push(e),e}function re(e,t,s,r,n,i){return ni(A(e,t,s,r,n,i,!0))}function qo(e,t,s,r,n){return ni(Ge(e,t,s,r,n,!0))}function ii(e){return e?e.__v_isVNode===!0:!1}function It(e,t){return e.type===t.type&&e.key===t.key}const oi=({key:e})=>e??null,os=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||me(e)||L(e)?{i:xe,r:e,k:t,f:!!s}:e:null);function A(e,t=null,s=null,r=0,n=null,i=e===we?0:1,o=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&oi(t),ref:t&&os(t),scopeId:In,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:xe};return l?(ds(u,s),i&128&&e.normalize(u)):s&&(u.shapeFlag|=Q(s)?8:16),Wt>0&&!o&&ve&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&ve.push(u),u}const Ge=Bo;function Bo(e,t=null,s=null,r=0,n=null,i=!1){if((!e||e===mo)&&(e=Ze),ii(e)){const l=Pt(e,t,!0);return s&&ds(l,s),Wt>0&&!i&&ve&&(l.shapeFlag&6?ve[ve.indexOf(e)]=l:ve.push(l)),l.patchFlag=-2,l}if(tl(e)&&(e=e.__vccOpts),t){t=Wo(t);let{class:l,style:u}=t;l&&!Q(l)&&(t.class=ws(l)),z(u)&&(cr(u)&&!R(u)&&(u=de({},u)),t.style=sr(u))}const o=Q(e)?1:si(e)?128:Ts(e)?64:z(e)?4:L(e)?2:0;return A(e,t,s,r,n,o,i,!0)}function Wo(e){return e?cr(e)||zn(e)?de({},e):e:null}function Pt(e,t,s=!1,r=!1){const{props:n,ref:i,patchFlag:o,children:l,transition:u}=e,d=t?ko(n||{},t):n,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&oi(d),ref:t&&t.ref?s&&i?R(i)?i.concat(os(t)):[i,os(t)]:os(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==we?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pt(e.ssContent),ssFallback:e.ssFallback&&Pt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return u&&r&&ur(c,u.clone(c)),c}function tt(e=" ",t=0){return Ge(Ps,null,e,t)}function Re(e="",t=!1){return t?(te(),qo(Ze,null,e)):Ge(Ze,null,e)}function Fe(e){return e==null||typeof e=="boolean"?Ge(Ze):R(e)?Ge(we,null,e.slice()):ii(e)?Be(e):Ge(Ps,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pt(e)}function ds(e,t){let s=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(R(t))s=16;else if(typeof t=="object")if(r&65){const n=t.default;n&&(n._c&&(n._d=!1),ds(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!zn(t)?t._ctx=xe:n===3&&xe&&(xe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(L(t)){if(r&65){ds(e,{default:t});return}t={default:t,_ctx:xe},s=32}else t=String(t),r&64?(s=16,t=[tt(t)]):s=8;e.children=t,e.shapeFlag|=s}function ko(...e){const t={};for(let s=0;s<e.length;s++){const r=e[s];for(const n in r)if(n==="class")t.class!==r.class&&(t.class=ws([t.class,r.class]));else if(n==="style")t.style=sr([t.style,r.style]);else if(ms(n)){const i=t[n],o=r[n];o&&i!==o&&!(R(i)&&i.includes(o))?t[n]=i?[].concat(i,o):o:o==null&&i==null&&!_s(n)&&(t[n]=o)}else n!==""&&(t[n]=r[n])}return t}function Me(e,t,s,r=null){Ae(e,t,7,[s,r])}const zo=Un();let Go=0;function Xo(e,t,s){const r=e.type,n=(t?t.appContext:e.appContext)||zo,i={uid:Go++,vnode:e,type:r,parent:t,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Si(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(n.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Xn(r,n),emitsOptions:qn(r,n),emit:null,emitted:null,propsDefaults:X,inheritAttrs:r.inheritAttrs,ctx:X,data:X,props:X,attrs:X,slots:X,refs:X,setupState:X,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Co.bind(null,i),e.ce&&e.ce(i),i}let ge=null;const Jo=()=>ge||xe;let hs,kt;{const e=vs(),t=(s,r)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(r),i=>{n.length>1?n.forEach(o=>o(i)):n[0](i)}};hs=t("__VUE_INSTANCE_SETTERS__",s=>ge=s),kt=t("__VUE_SSR_SETTERS__",s=>zt=s)}const Jt=e=>{const t=ge;return hs(e),e.scope.on(),()=>{e.scope.off(),hs(t)}},Fr=()=>{ge&&ge.scope.off(),hs(null)};function li(e){return e.vnode.shapeFlag&4}let zt=!1;function Yo(e,t=!1,s=!1){t&&kt(t);const{props:r,children:n}=e.vnode,i=li(e);Vo(e,r,i,t),Lo(e,n,s||t);const o=i?Zo(e,t):void 0;return t&&kt(!1),o}function Zo(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_o);const{setup:r}=s;if(r){Xe();const n=e.setupContext=r.length>1?el(e):null,i=Jt(e),o=Xt(r,e,0,[e.props,n]),l=tn(o);if(Je(),i(),(l||e.sp)&&!Kt(e)&&Dn(e),l){if(o.then(Fr,Fr),t)return o.then(u=>{kt(!0);try{Hr(e,u,t)}finally{kt(!1)}}).catch(u=>{Es(u,e,0)});e.asyncDep=o}else Hr(e,o)}else ci(e)}function Hr(e,t,s){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=Tn(t)),ci(e)}function ci(e,t,s){const r=e.type;e.render||(e.render=r.render||He);{const n=Jt(e);Xe();try{yo(e)}finally{Je(),n()}}}const Qo={get(e,t){return fe(e,"get",""),e[t]}};function el(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Qo),slots:e.slots,emit:e.emit,expose:t}}function Ns(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Tn(qi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in $t)return $t[s](e)},has(t,s){return s in t||s in $t}})):e.proxy}function tl(e){return L(e)&&"__vccOpts"in e}const Rt=(e,t)=>ki(e,t,zt),sl="3.5.43";let Zs;const jr=typeof window<"u"&&window.trustedTypes;if(jr)try{Zs=jr.createPolicy("vue",{createHTML:e=>e})}catch{}const ai=Zs?e=>Zs.createHTML(e):e=>e,rl="http://www.w3.org/2000/svg",nl="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,Kr=qe&&qe.createElement("template"),il={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,r)=>{const n=t==="svg"?qe.createElementNS(rl,e):t==="mathml"?qe.createElementNS(nl,e):s?qe.createElement(e,{is:s}):qe.createElement(e);return e==="select"&&r&&r.multiple!=null&&n.setAttribute("multiple",r.multiple),n},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,r,n,i){const o=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{Kr.innerHTML=ai(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const l=Kr.content;if(r==="svg"||r==="mathml"){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}t.insertBefore(l,s)}return[o?o.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},ol=Symbol("_vtc");function ll(e,t,s){const r=e[ol];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const $r=Symbol("_vod"),cl=Symbol("_vsh"),al=Symbol(""),ul=/(?:^|;)\s*display\s*:/;function fl(e,t,s){const r=e.style,n=Q(s);let i=!1;if(s&&!n){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&Mt(r,l,"")}else for(const o in t)s[o]==null&&Mt(r,o,"");for(const o in s){o==="display"&&(i=!0);const l=s[o];l!=null?hl(e,o,!Q(t)&&t?t[o]:void 0,l)||Mt(r,o,l):Mt(r,o,"")}}else if(n){if(t!==s){const o=r[al];o&&(s+=";"+o),r.cssText=s,i=ul.test(s)}}else t&&e.removeAttribute("style");$r in e&&(e[$r]=i?r.display:"",e[cl]&&(r.display="none"))}const ss=/\s*!important$/;function Mt(e,t,s){if(R(s))s.forEach(r=>Mt(e,t,r));else if(s==null&&(s=""),t.startsWith("--"))ss.test(s)?e.setProperty(t,s.replace(ss,""),"important"):e.setProperty(t,s);else{const r=dl(e,t);ss.test(s)?e.setProperty(bt(r),s.replace(ss,""),"important"):e[r]=s}}const Ur=["Webkit","Moz","ms"],js={};function dl(e,t){const s=js[t];if(s)return s;let r=Ee(t);if(r!=="filter"&&r in e)return js[t]=r;r=nn(r);for(let n=0;n<Ur.length;n++){const i=Ur[n]+r;if(i in e)return js[t]=i}return t}function hl(e,t,s,r){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Q(r)&&s===r}const qr="http://www.w3.org/1999/xlink";function Br(e,t,s,r,n,i=bi(t)){r&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(qr,t.slice(6,t.length)):e.setAttributeNS(qr,t,s):s==null||i&&!ln(s)?e.removeAttribute(t):e.setAttribute(t,i?"":je(s)?String(s):s)}function Wr(e,t,s,r,n){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ai(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,u=s==null?e.type==="checkbox"?"on":"":String(s);(l!==u||!("_value"in e))&&(e.value=u),s==null&&e.removeAttribute(t),e._value=s;return}let o=!1;if(s===""||s==null){const l=typeof e[t];l==="boolean"?s=ln(s):s==null&&l==="string"?(s="",o=!0):l==="number"&&(s=0,o=!0)}try{e[t]=s}catch{}o&&e.removeAttribute(n||t)}function ht(e,t,s,r){e.addEventListener(t,s,r)}function pl(e,t,s,r){e.removeEventListener(t,s,r)}const kr=Symbol("_vei");function gl(e,t,s,r,n=null){const i=e[kr]||(e[kr]={}),o=i[t];if(r&&o)o.value=r;else{const[l,u]=yl(t);if(r){const d=i[t]=wl(r,n);ht(e,l,d,u)}else o&&(pl(e,l,o,u),i[t]=void 0)}}const ml=/(Once|Passive|Capture)$/,_l=/^on:?(?:Once|Passive|Capture)$/;function yl(e){let t,s;for(;(s=e.match(ml))&&!_l.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):bt(e.slice(2)),t]}let Ks=0;const bl=Promise.resolve(),vl=()=>Ks||(bl.then(()=>Ks=0),Ks=Date.now());function wl(e,t){const s=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=s.attached)return;const n=s.value;if(R(n)){const i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};const o=n.slice(),l=[r];for(let u=0;u<o.length&&!r._stopped;u++){const d=o[u];d&&Ae(d,t,5,l)}}else Ae(n,t,5,[r])};return s.value=e,s.attached=vl(),s}const zr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xl=(e,t,s,r,n,i)=>{const o=n==="svg";t==="class"?ll(e,r,o):t==="style"?fl(e,s,r):ms(t)?_s(t)||gl(e,t,s,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sl(e,t,r,o))?(Wr(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Br(e,t,r,o,i,t!=="value")):e._isVueCE&&(El(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(r)))?Wr(e,Ee(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Br(e,t,r,o))};function Sl(e,t,s,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&zr(t)&&L(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return zr(t)&&Q(s)?!1:t in e}function El(e,t){const s=e._def.props;if(!s)return!1;const r=Ee(t);return Array.isArray(s)?s.some(n=>Ee(n)===r):Object.keys(s).some(n=>Ee(n)===r)}const ps=e=>{const t=e.props["onUpdate:modelValue"]||!1;return R(t)?s=>ns(t,s):t};function Tl(e){e.target.composing=!0}function Gr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const gt=Symbol("_assign"),rs=Symbol("_initialValue");function $s(e,t,s){return t&&(e=e.trim()),s&&(e=bs(e)),e}const Cl={created(e,{modifiers:{lazy:t,trim:s,number:r}},n){e.parentNode&&(e.type==="text"?e[rs]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[rs]=e.defaultValue.replace(/\r\n?/g,`
|
|
2
|
+
`))),e[gt]=ps(n);const i=r||n.props&&n.props.type==="number";ht(e,t?"change":"input",o=>{o.target.composing||e[gt]($s(e.value,s,i))}),(s||i)&&ht(e,"change",()=>{e.value=$s(e.value,s,i)}),t||(ht(e,"compositionstart",Tl),ht(e,"compositionend",Gr),ht(e,"change",Gr))},mounted(e,{value:t,modifiers:{trim:s,number:r}}){const n=t??"",i=e[rs];delete e[rs],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[gt]($s(e.value,s,r)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:r,trim:n,number:i}},o){if(e[gt]=ps(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?bs(e.value):e.value,u=t??"";if(l===u)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(r&&t===s||n&&e.value.trim()===u)||(e.value=u)}},Al={deep:!0,created(e,{value:t,modifiers:{number:s}},r){e._modelValue=t,ht(e,"change",()=>{const n=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>s?bs(gs(u)):gs(u)),i=e.multiple,o=i?yt(e._modelValue)?new Set(n):n:n[0],l=e._pendingValue=[i,i?R(o)?n.slice():n:o];try{e[gt](o)}finally{An(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[gt]=ps(r)},mounted(e,{value:t}){Xr(e,t)},beforeUpdate(e,{value:t},s){e._modelValue=t,e[gt]=ps(s)},updated(e,{value:t}){const s=e._pendingValue;e._pendingValue=void 0,(!s||s[0]!==e.multiple||!Pl(t,s[1],s[0]))&&Xr(e,t)}};function Pl(e,t,s){if(!s||R(e))return it(e,t);if(yt(e)){if(e.size!==t.length)return!1;for(const r of t)if(!e.has(r))return!1;return!0}return!1}function Xr(e,t){const s=e.multiple,r=R(t);if(!(s&&!r&&!yt(t))){for(let n=0,i=e.options.length;n<i;n++){const o=e.options[n],l=gs(o);if(s)if(r){const u=typeof l;u==="string"||u==="number"?o.selected=t.some(d=>String(d)===String(l)):o.selected=xi(t,l)>-1}else o.selected=t.has(l);else if(it(gs(o),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function gs(e){return"_value"in e?e._value:e.value}const Nl=de({patchProp:xl},il);let Jr;function Ol(){return Jr||(Jr=Ho(Nl))}const Il=((...e)=>{const t=Ol().createApp(...e),{mount:s}=t;return t.mount=r=>{const n=Rl(r);if(!n)return;const i=t._component;!L(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const o=s(n,!1,Vl(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),o},t});function Vl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Rl(e){return Q(e)?document.querySelector(e):e}const Us={en:{title:"KNX Viewer",subtitle:"Group address state changes and read requests",history:"24-hour history on file",viewer:"Viewer",search:"Search GA, name, DPT, type or value",clearSearch:"Clear search",pause:"Pause",resume:"Resume live",live:"Live",paused:"Paused",loading:"Loading…",offline:"Connection unavailable",retry:"Retry",noViewers:"No KNX Viewer is available.",unknownViewer:"The requested KNX Viewer is not available. Check that the node is deployed.",empty:"No entries in the last 24 hours.",emptySearch:"No entries match this search in the last 24 hours.",emptyHint:"New entries will appear here as telegrams arrive.",time:"Time",telegramType:"Telegram type",source:"Source",address:"GA",name:"Name",dpt:"DPT",previous:"Previous",value:"Value",newest:"Most recent",older:"Older",rows:"entries on this page",updated:"Updated",storageError:"History could not be saved to file.",retained:"The list shows the last 24 hours. Pausing only stops updates on this page.",authError:"Authentication required or insufficient permissions. Reopen the page from Node-RED.",requestError:"Unable to load the history.",responseError:"The server returned an invalid response.",table:"Group address state changes and read requests, most recent first",firstValue:"First value",historical:"History",loadingHistory:"Loading history…"},it:{title:"KNX Viewer",subtitle:"Cambiamenti di stato e richieste di lettura degli indirizzi di gruppo",history:"Storico su file di 24 ore",viewer:"Viewer",search:"Cerca GA, nome, DPT, tipo o valore",clearSearch:"Cancella ricerca",pause:"Pausa",resume:"Riprendi live",live:"Live",paused:"In pausa",loading:"Caricamento…",offline:"Connessione non disponibile",retry:"Riprova",noViewers:"Nessun KNX Viewer disponibile.",unknownViewer:"Il KNX Viewer richiesto non è disponibile. Verifica che il nodo sia stato distribuito con Deploy.",empty:"Nessuna voce nelle ultime 24 ore.",emptySearch:"Nessuna voce corrisponde alla ricerca nelle ultime 24 ore.",emptyHint:"Le nuove voci appariranno qui alla ricezione dei telegrammi.",time:"Ora",telegramType:"Tipo telegramma",source:"Sorgente",address:"GA",name:"Nome",dpt:"DPT",previous:"Precedente",value:"Valore",newest:"Più recenti",older:"Più vecchi",rows:"voci in questa pagina",updated:"Aggiornato",storageError:"Impossibile salvare lo storico su file.",retained:"L’elenco mostra le ultime 24 ore. La pausa sospende solo gli aggiornamenti di questa pagina.",authError:"Autenticazione richiesta o permessi insufficienti. Riapri la pagina da Node-RED.",requestError:"Impossibile caricare lo storico.",responseError:"Il server ha restituito una risposta non valida.",table:"Cambiamenti e letture degli indirizzi di gruppo, dal più recente",firstValue:"Primo valore",historical:"Storico",loadingHistory:"Caricamento dello storico…"},de:{title:"KNX Viewer",subtitle:"Zustandsänderungen und Leseanfragen der Gruppenadressen",history:"24-Stunden-Verlauf in Datei",viewer:"Viewer",search:"GA, Name, DPT, Typ oder Wert suchen",clearSearch:"Suche löschen",pause:"Pause",resume:"Live fortsetzen",live:"Live",paused:"Pausiert",loading:"Wird geladen…",offline:"Verbindung nicht verfügbar",retry:"Erneut versuchen",noViewers:"Kein KNX Viewer verfügbar.",unknownViewer:"Der angeforderte KNX Viewer ist nicht verfügbar. Prüfen Sie, ob der Knoten bereitgestellt wurde.",empty:"Keine Einträge in den letzten 24 Stunden.",emptySearch:"Keine passenden Einträge in den letzten 24 Stunden.",emptyHint:"Neue Einträge erscheinen hier, sobald Telegramme eintreffen.",time:"Zeit",telegramType:"Telegrammtyp",source:"Quelle",address:"GA",name:"Name",dpt:"DPT",previous:"Vorher",value:"Wert",newest:"Neueste",older:"Ältere",rows:"Einträge auf dieser Seite",updated:"Aktualisiert",storageError:"Der Verlauf konnte nicht in der Datei gespeichert werden.",retained:"Die Liste zeigt die letzten 24 Stunden. Die Pause stoppt nur die Aktualisierung dieser Seite.",authError:"Anmeldung erforderlich oder unzureichende Berechtigungen. Öffnen Sie die Seite erneut über Node-RED.",requestError:"Der Verlauf konnte nicht geladen werden.",responseError:"Der Server hat eine ungültige Antwort zurückgegeben.",table:"Zustandsänderungen und Leseanfragen der Gruppenadressen, neueste zuerst",firstValue:"Erster Wert",historical:"Verlauf",loadingHistory:"Verlauf wird geladen…"},fr:{title:"KNX Viewer",subtitle:"Changements d’état et demandes de lecture des adresses de groupe",history:"Historique sur fichier de 24 heures",viewer:"Viewer",search:"Rechercher GA, nom, DPT, type ou valeur",clearSearch:"Effacer la recherche",pause:"Pause",resume:"Reprendre le direct",live:"Direct",paused:"En pause",loading:"Chargement…",offline:"Connexion indisponible",retry:"Réessayer",noViewers:"Aucun KNX Viewer disponible.",unknownViewer:"Le KNX Viewer demandé est indisponible. Vérifiez que le nœud est déployé.",empty:"Aucune entrée au cours des dernières 24 heures.",emptySearch:"Aucune entrée ne correspond à cette recherche dans les dernières 24 heures.",emptyHint:"Les nouvelles entrées apparaîtront ici à la réception des télégrammes.",time:"Heure",telegramType:"Type de télégramme",source:"Source",address:"GA",name:"Nom",dpt:"DPT",previous:"Précédent",value:"Valeur",newest:"Plus récents",older:"Plus anciens",rows:"entrées sur cette page",updated:"Mis à jour",storageError:"Impossible d’enregistrer l’historique dans le fichier.",retained:"La liste affiche les dernières 24 heures. La pause suspend uniquement la mise à jour de cette page.",authError:"Authentification requise ou autorisations insuffisantes. Rouvrez la page depuis Node-RED.",requestError:"Impossible de charger l’historique.",responseError:"Le serveur a renvoyé une réponse non valide.",table:"Changements et lectures des adresses de groupe, du plus récent au plus ancien",firstValue:"Première valeur",historical:"Historique",loadingHistory:"Chargement de l’historique…"},es:{title:"KNX Viewer",subtitle:"Cambios de estado y solicitudes de lectura de las direcciones de grupo",history:"Historial en archivo de 24 horas",viewer:"Viewer",search:"Buscar GA, nombre, DPT, tipo o valor",clearSearch:"Borrar búsqueda",pause:"Pausa",resume:"Reanudar en directo",live:"En directo",paused:"En pausa",loading:"Cargando…",offline:"Conexión no disponible",retry:"Reintentar",noViewers:"No hay ningún KNX Viewer disponible.",unknownViewer:"El KNX Viewer solicitado no está disponible. Comprueba que el nodo esté desplegado.",empty:"No hay entradas en las últimas 24 horas.",emptySearch:"Ninguna entrada coincide con la búsqueda en las últimas 24 horas.",emptyHint:"Las nuevas entradas aparecerán aquí al recibir los telegramas.",time:"Hora",telegramType:"Tipo de telegrama",source:"Origen",address:"GA",name:"Nombre",dpt:"DPT",previous:"Anterior",value:"Valor",newest:"Más recientes",older:"Más antiguos",rows:"entradas en esta página",updated:"Actualizado",storageError:"No se pudo guardar el historial en el archivo.",retained:"La lista muestra las últimas 24 horas. La pausa solo detiene las actualizaciones de esta página.",authError:"Se requiere autenticación o los permisos son insuficientes. Vuelve a abrir la página desde Node-RED.",requestError:"No se pudo cargar el historial.",responseError:"El servidor devolvió una respuesta no válida.",table:"Cambios y lecturas de las direcciones de grupo, del más reciente al más antiguo",firstValue:"Primer valor",historical:"Historial",loadingHistory:"Cargando historial…"},zh:{title:"KNX Viewer",subtitle:"组地址状态变化和读取请求",history:"文件保存最近 24 小时的历史",viewer:"Viewer",search:"搜索 GA、名称、DPT、类型或值",clearSearch:"清除搜索",pause:"暂停",resume:"恢复实时",live:"实时",paused:"已暂停",loading:"正在加载…",offline:"连接不可用",retry:"重试",noViewers:"没有可用的 KNX Viewer。",unknownViewer:"请求的 KNX Viewer 不可用。请确认节点已部署。",empty:"最近 24 小时没有记录。",emptySearch:"最近 24 小时没有符合搜索条件的记录。",emptyHint:"收到报文后,新记录将在此显示。",time:"时间",telegramType:"报文类型",source:"来源",address:"GA",name:"名称",dpt:"DPT",previous:"先前值",value:"值",newest:"最新",older:"更早",rows:"条记录显示在本页",updated:"更新于",storageError:"无法将历史记录保存到文件。",retained:"列表显示最近 24 小时的记录。暂停仅停止本页更新。",authError:"需要身份验证或权限不足。请从 Node-RED 重新打开此页面。",requestError:"无法加载历史记录。",responseError:"服务器返回了无效响应。",table:"组地址状态变化和读取请求,最新在前",firstValue:"首个值",historical:"历史",loadingHistory:"正在加载历史记录…"}};function Ml(e){const t=String(e||"en").toLowerCase().split(/[-_]/)[0];return{language:Us[t]?t:"en",text:Us[t]||Us.en}}const Dl={class:"viewer"},Ll={class:"heading"},Fl={class:"heading-title"},Hl={class:"viewer-name"},jl={key:0,class:"gateway-name"},Kl={class:"toolbar"},$l={key:0,class:"viewer-picker"},Ul={class:"visually-hidden"},ql=["aria-label"],Bl=["value"],Wl=["value"],kl={class:"search-field"},zl=["aria-label","placeholder"],Gl=["aria-pressed","disabled"],Xl={key:0,"aria-hidden":"true",viewBox:"0 0 16 16"},Jl={key:1,"aria-hidden":"true",viewBox:"0 0 16 16"},Yl={key:0,class:"notice error-notice",role:"alert"},Zl=["disabled"],Ql={key:1,class:"notice storage-notice",role:"alert"},ec=["aria-label","aria-busy"],tc=["aria-label"],sc={class:"visually-hidden"},rc={scope:"col",class:"time-column"},nc={scope:"col",class:"type-column"},ic={scope:"col",class:"source-column"},oc={scope:"col",class:"address-column"},lc={scope:"col",class:"name-column"},cc={scope:"col",class:"dpt-column"},ac={scope:"col",class:"value-column"},uc={scope:"col",class:"value-column"},fc={class:"time-cell"},dc=["datetime"],hc=["title"],pc={class:"mono"},gc={class:"mono address-cell"},mc={class:"name-cell"},_c={class:"mono"},yc=["title"],bc={class:"payload-cell current-cell"},vc={key:0,class:"unit"},wc={key:0,class:"empty-state",role:"status"},xc={key:0},Sc={key:0},Ec={key:2},Tc={class:"table-footer"},Cc={class:"row-count"},Ac={key:0,class:"history-tag"},Pc=["aria-label"],Nc=["disabled"],Oc=["disabled"],Ic={class:"page-footer"},Vc={key:0,class:"updated-at"},Yr="knxUltimateViewer:selectedNodeId",Zr="knxUltimateViewer:search",Qr=200,Rc={__name:"App",setup(e){const t=new URLSearchParams(window.location.search),s=t.get("nodeId")||"",r=t.get("access_token")||"",{language:n,text:i}=Ml(t.get("lang")||navigator.language);function o(O,P=""){try{return window.localStorage.getItem(O)||P}catch{return P}}function l(O,P){try{window.localStorage.setItem(O,String(P||""))}catch{}}function u(){if(r.trim())return r.trim();try{const O=[];for(let P=0;P<window.localStorage.length;P+=1){const E=String(window.localStorage.key(P)||"");if(E.startsWith("auth-tokens"))try{const oe=JSON.parse(window.localStorage.getItem(E));if(typeof oe?.access_token!="string"||!oe.access_token.trim())continue;const le=Number(oe.expires_at||oe.expiry||oe.expires||0);O.push({token:oe.access_token.trim(),expiry:Number.isFinite(le)?le:0})}catch{}}return O.sort((P,E)=>E.expiry-P.expiry),O[0]?.token||""}catch{return""}}const d=u(),c=Ss({nodes:[],selectedNodeId:s||o(Yr),search:o(Zr),live:!0,loading:!0,nodesLoaded:!1,data:null,lastError:"",before:"",updatedAt:0});let p=0,x=null,T=null,j=null,I=!1,$=!1;function J(O,P={}){const E=new URL(O,window.location.href);return Object.entries(P).forEach(([oe,le])=>{le!=null&&le!==""&&E.searchParams.set(oe,String(le))}),r&&E.searchParams.set("access_token",r),E.toString()}async function H(O,P,E){const oe=d?{Authorization:`Bearer ${d}`}:{},le=await fetch(J(O,P),{credentials:"same-origin",headers:oe,signal:E,cache:"no-store"});if(le.status===401||le.status===403||le.ok&&String(le.headers.get("content-type")).includes("text/html"))throw new Error(i.authError);let at;try{at=await le.json()}catch{throw new Error(i.responseError)}if(!le.ok)throw new Error(typeof at?.error=="string"?at.error:i.requestError);return at}function U(){clearTimeout(T),T=null}function C(){p+=1,x?.abort(),x=null,c.loading=!1,U()}function ee(){U(),!$&&c.live&&c.nodesLoaded&&c.selectedNodeId&&(T=setTimeout(()=>{ne()},2e3))}async function ne(){if($||!c.selectedNodeId)return;C();const O=p,P=new AbortController;x=P,c.loading=!0;try{const E=await H("history",{nodeId:c.selectedNodeId,limit:Qr,before:c.before,search:c.search.trim()},P.signal);if($||O!==p)return;if(!Array.isArray(E?.entries))throw new Error(i.responseError);c.data={...E,entries:E.entries.slice(0,Qr)},c.lastError="",c.updatedAt=Date.now()}catch(E){if($||O!==p||E.name==="AbortError")return;c.lastError=E.message||i.requestError}finally{!$&&O===p&&(c.loading=!1,x=null,ee())}}async function ye(){C();const O=p,P=new AbortController;x=P,c.loading=!0;try{const E=await H("nodes",{},P.signal);if($||O!==p)return!1;if(!Array.isArray(E?.nodes))throw new Error(i.responseError);if(c.nodes=E.nodes,c.nodesLoaded=!0,c.selectedNodeId&&!c.nodes.some(oe=>oe.id===c.selectedNodeId)){if(s)return c.lastError=i.unknownViewer,!1;c.selectedNodeId=""}return c.selectedNodeId||(c.selectedNodeId=c.nodes[0]?.id||""),c.lastError=c.selectedNodeId?"":i.noViewers,!!c.selectedNodeId}catch(E){return!$&&O===p&&E.name!=="AbortError"&&(c.lastError=E.message||i.requestError),!1}finally{!$&&O===p&&(c.loading=!1,x=null)}}function Se(){c.before="",c.data=null,c.updatedAt=0,c.lastError=""}async function vt(){if(!c.nodesLoaded||!c.nodes.some(O=>O.id===c.selectedNodeId)){I=!1;const O=await ye();if(I=!0,!O)return}await ne()}function $e(){clearTimeout(j),C(),c.live=!c.live,c.live&&(c.before="",ne())}function lt(){C(),c.before="",ne()}function wt(){const O=c.data?.nextCursor;!O||!c.data?.hasMore||(C(),c.live=!1,c.before=O,ne())}const et=Rt(()=>c.data?.node||c.nodes.find(O=>O.id===c.selectedNodeId)||{}),ct=Rt(()=>c.data?.entries||[]),Yt=Rt(()=>c.lastError?i.offline:c.live?i.live:i.paused),ie=Rt(()=>c.data?.storageError||""),Z=new Intl.DateTimeFormat(n,{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3,hour12:!1});function B(O){const P=new Date(O);return Number.isFinite(P.getTime())?Z.format(P):"—"}function Pe(O){return O.timestampMs??O.timestamp}function xt(O){const P=new Date(Pe(O));return Number.isFinite(P.getTime())?P.toISOString():void 0}function Ne(O){const P=String(O.event||"").trim();return{groupvalue_read:"Read",groupvalue_write:"Write",groupvalue_response:"Response",update_nowrite:"Update"}[P.toLowerCase()]||P.replace(/_/g," ")||"—"}function ue(O){return Ne(O).toLowerCase()==="read"}function Zt(O){if(ue(O))return"—";const P=O.payloadText??(typeof O.payload=="object"?JSON.stringify(O.payload):O.payload);return P==null||P===""?"—":String(P)}return Ht(()=>c.selectedNodeId,()=>{l(Yr,c.selectedNodeId),I&&(clearTimeout(j),C(),Se(),c.selectedNodeId&&ne())}),Ht(()=>c.search,()=>{l(Zr,c.search),I&&(clearTimeout(j),C(),Se(),j=setTimeout(()=>{ne()},300))}),Fn(async()=>{document.documentElement.lang=n,document.title=i.title;const O=await ye();await Promise.resolve(),I=!0,O&&!$&&await ne()}),Hn(()=>{$=!0,I=!1,clearTimeout(j),C()}),(O,P)=>(te(),re("main",Dl,[A("header",Ll,[A("div",Fl,[A("h1",null,D(F(i).title),1),A("span",Hl,D(et.value.name||""),1),et.value.gatewayName?(te(),re("span",jl,D(et.value.gatewayName),1)):Re("",!0)]),A("p",null,[tt(D(F(i).subtitle)+" ",1),P[2]||(P[2]=A("span",{class:"separator","aria-hidden":"true"},"·",-1)),P[3]||(P[3]=tt()),A("span",null,D(F(i).history),1)])]),A("div",Kl,[c.nodes.length>1?(te(),re("label",$l,[A("span",Ul,D(F(i).viewer),1),Er(A("select",{"onUpdate:modelValue":P[0]||(P[0]=E=>c.selectedNodeId=E),"aria-label":F(i).viewer},[c.nodes.some(E=>E.id===c.selectedNodeId)?Re("",!0):(te(),re("option",{key:0,value:c.selectedNodeId,disabled:""},D(c.selectedNodeId),9,Bl)),(te(!0),re(we,null,Ar(c.nodes,E=>(te(),re("option",{key:E.id,value:E.id},D(E.name||E.id)+D(E.gatewayName?` · ${E.gatewayName}`:""),9,Wl))),128))],8,ql),[[Al,c.selectedNodeId]])])):Re("",!0),A("div",kl,[P[4]||(P[4]=A("svg",{"aria-hidden":"true",viewBox:"0 0 20 20"},[A("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),A("path",{d:"m12.5 12.5 4 4"})],-1)),Er(A("input",{"onUpdate:modelValue":P[1]||(P[1]=E=>c.search=E),type:"search","aria-label":F(i).search,placeholder:F(i).search,autocomplete:"off",spellcheck:"false"},null,8,zl),[[Cl,c.search]])]),A("span",{class:ws(["live-status",{paused:!c.live,offline:c.lastError}]),role:"status"},[P[5]||(P[5]=A("span",{"aria-hidden":"true"},null,-1)),tt(D(Yt.value),1)],2),A("button",{class:"live-button",type:"button","aria-pressed":!c.live,disabled:!c.nodes.some(E=>E.id===c.selectedNodeId),onClick:$e},[c.live?(te(),re("svg",Xl,[...P[6]||(P[6]=[A("path",{d:"M5 3v10M11 3v10"},null,-1)])])):(te(),re("svg",Jl,[...P[7]||(P[7]=[A("path",{d:"m5 3 7 5-7 5Z"},null,-1)])])),tt(" "+D(c.live?F(i).pause:F(i).resume),1)],8,Gl)]),c.lastError?(te(),re("div",Yl,[A("span",null,D(c.lastError),1),A("button",{type:"button",disabled:c.loading,onClick:vt},D(F(i).retry),9,Zl)])):Re("",!0),ie.value?(te(),re("div",Ql,[tt(D(F(i).storageError)+" ",1),A("span",null,D(ie.value),1)])):Re("",!0),A("section",{class:"monitor","aria-label":F(i).table,"aria-busy":c.loading},[A("div",{class:"table-scroll",tabindex:"0","aria-label":F(i).table},[A("table",null,[A("caption",sc,D(F(i).table),1),A("thead",null,[A("tr",null,[A("th",rc,D(F(i).time),1),A("th",nc,D(F(i).telegramType),1),A("th",ic,D(F(i).source),1),A("th",oc,D(F(i).address),1),A("th",lc,D(F(i).name),1),A("th",cc,D(F(i).dpt),1),A("th",ac,D(F(i).previous),1),A("th",uc,D(F(i).value),1)])]),A("tbody",null,[(te(!0),re(we,null,Ar(ct.value,E=>(te(),re("tr",{key:E.id},[A("td",fc,[A("time",{datetime:xt(E)},D(B(Pe(E))),9,dc)]),A("td",{class:"type-cell",title:E.event||void 0},D(Ne(E)),9,hc),A("td",pc,D(E.source||"—"),1),A("td",gc,D(E.address||"—"),1),A("td",mc,D(E.devicename||"—"),1),A("td",_c,D(E.dpt||"—"),1),A("td",{class:"payload-cell previous-cell",title:!ue(E)&&E.previousPayloadText==null?F(i).firstValue:void 0},D(ue(E)?"—":E.previousPayloadText??"—"),9,yc),A("td",bc,[tt(D(Zt(E)),1),!ue(E)&&E.payloadmeasureunit?(te(),re("span",vc,D(E.payloadmeasureunit),1)):Re("",!0)])]))),128))])]),ct.value.length?Re("",!0):(te(),re("div",wc,[c.loading?(te(),re("p",xc,D(F(i).loadingHistory),1)):c.lastError?(te(),re("p",Ec,D(F(i).requestError),1)):(te(),re(we,{key:1},[A("p",null,D(c.search.trim()?F(i).emptySearch:F(i).empty),1),c.search.trim()?Re("",!0):(te(),re("span",Sc,D(F(i).emptyHint),1))],64))]))],8,tc),A("footer",Tc,[A("span",Cc,[tt(D(ct.value.length)+" "+D(F(i).rows),1),c.before?(te(),re("span",Ac," · "+D(F(i).historical),1)):Re("",!0)]),A("nav",{class:"pagination","aria-label":F(i).history},[A("button",{type:"button",disabled:!c.before||c.loading,onClick:lt},D(F(i).newest),9,Nc),A("button",{type:"button",disabled:!c.data?.hasMore||!c.data?.nextCursor||c.loading,onClick:wt},D(F(i).older),9,Oc)],8,Pc)])],8,ec),A("footer",Ic,[A("span",null,D(F(i).retained),1),c.updatedAt?(te(),re("span",Vc,D(F(i).updated)+" "+D(B(c.updatedAt)),1)):Re("",!0)])]))}};Il(Rc).mount("#app");
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=20.18.1"
|
|
5
5
|
},
|
|
6
|
-
"version": "7.1.
|
|
6
|
+
"version": "7.1.4",
|
|
7
7
|
"description": "KNX Ultimate is the most advanced KNX integration for Node-RED, providing secure KNX/IP communication, routing, ETS project import, Philips Hue, Matter Controller and Matter Bridge (control matter device via KNX and expose KNX GA via Matter), MQTT and Modbus adapters, diagnostics, virtual devices, and powerful automation nodes. Build professional, reliable, and scalable smart home and building automation projects with minimal effort.",
|
|
8
8
|
"files": [
|
|
9
9
|
"nodes/",
|
|
@@ -110,6 +110,10 @@
|
|
|
110
110
|
"url": "https://youtube.com/@maxsupervibe"
|
|
111
111
|
},
|
|
112
112
|
"license": "MIT",
|
|
113
|
+
"publishConfig": {
|
|
114
|
+
"access": "public",
|
|
115
|
+
"tag": "latest"
|
|
116
|
+
},
|
|
113
117
|
"scripts": {
|
|
114
118
|
"build": "npm run knx-ai:build && npm run knx-viewer:build",
|
|
115
119
|
"prepack": "npm run build",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
const environment = options.environment || root
|
|
18
18
|
const documentObject = options.documentObject || (environment && environment.document)
|
|
19
19
|
const kind = options.kind || 'knx'
|
|
20
|
-
if (kind !== 'knx' && kind !== 'hue') throw new Error('The migration backup kind is invalid')
|
|
20
|
+
if (kind !== 'knx' && kind !== 'hue' && kind !== 'v8') throw new Error('The migration backup kind is invalid')
|
|
21
21
|
if (!RED || !RED.nodes || typeof RED.nodes.createCompleteNodeSet !== 'function') {
|
|
22
22
|
throw new Error('The Node-RED flow export API is unavailable')
|
|
23
23
|
}
|
|
@@ -89,18 +89,14 @@
|
|
|
89
89
|
$('<p></p>').append($('<strong></strong>').text(translate('title', 'Legacy KNX Ultimate nodes'))).appendTo(message)
|
|
90
90
|
$('<p></p>').text(translate('message', 'Legacy nodes found in your flows and subflows: HUE: {{hue}}; KNX utility: {{knx}}. These nodes still work, but are hidden from the palette. Migrate them to HUE Controller and KNX Utility. Each migration downloads a flow backup; review the result before deploying.', { hue, knx })).appendTo(message)
|
|
91
91
|
const buttons = []
|
|
92
|
-
if (hue) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
text: translate('knx_button', 'Migrate KNX ({{count}})', { count: knx }),
|
|
101
|
-
click: () => openMigration('knx')
|
|
102
|
-
})
|
|
103
|
-
}
|
|
92
|
+
if (hue) buttons.push({
|
|
93
|
+
text: translate('hue_button', 'Migrate HUE ({{count}})', { count: hue }),
|
|
94
|
+
click: () => openMigration('hue')
|
|
95
|
+
})
|
|
96
|
+
if (knx) buttons.push({
|
|
97
|
+
text: translate('knx_button', 'Migrate KNX ({{count}})', { count: knx }),
|
|
98
|
+
click: () => openMigration('knx')
|
|
99
|
+
})
|
|
104
100
|
buttons.push({
|
|
105
101
|
text: translate('later', 'Later'),
|
|
106
102
|
click () {
|