diff --git a/.hass/config/.HA_VERSION b/.hass/config/.HA_VERSION index cee5dee..0c4de62 100644 --- a/.hass/config/.HA_VERSION +++ b/.hass/config/.HA_VERSION @@ -1 +1 @@ -2023.12.3 \ No newline at end of file +2023.12.4 \ No newline at end of file diff --git a/.hass/config/www/home-assistant-query-selector-tests.js b/.hass/config/www/home-assistant-query-selector-tests.js index 92549ce..4816ca0 100644 --- a/.hass/config/www/home-assistant-query-selector-tests.js +++ b/.hass/config/www/home-assistant-query-selector-tests.js @@ -60,19 +60,19 @@ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; - function cov_jnkfhc2pd(){var path="/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts";var hash="3a43de11c19fac252f0085361ac6e5e6cba9114b";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts",statementMap:{"0":{start:{line:1,column:15},end:{line:1,column:18}},"1":{start:{line:2,column:32},end:{line:2,column:35}},"2":{start:{line:3,column:28},end:{line:6,column:1}},"3":{start:{line:8,column:0},end:{line:13,column:46}},"4":{start:{line:9,column:4},end:{line:9,column:57}},"5":{start:{line:10,column:4},end:{line:10,column:67}},"6":{start:{line:11,column:4},end:{line:11,column:47}},"7":{start:{line:12,column:4},end:{line:12,column:49}},"8":{start:{line:15,column:0},end:{line:21,column:54}},"9":{start:{line:16,column:4},end:{line:16,column:77}},"10":{start:{line:17,column:4},end:{line:17,column:67}},"11":{start:{line:18,column:4},end:{line:18,column:49}},"12":{start:{line:19,column:4},end:{line:19,column:45}},"13":{start:{line:20,column:4},end:{line:20,column:49}},"14":{start:{line:23,column:0},end:{line:30,column:50}},"15":{start:{line:24,column:4},end:{line:24,column:69}},"16":{start:{line:25,column:4},end:{line:25,column:49}},"17":{start:{line:26,column:4},end:{line:26,column:65}},"18":{start:{line:27,column:4},end:{line:27,column:79}},"19":{start:{line:28,column:4},end:{line:28,column:109}},"20":{start:{line:29,column:4},end:{line:29,column:87}},"21":{start:{line:32,column:0},end:{line:37,column:56}},"22":{start:{line:33,column:4},end:{line:33,column:75}},"23":{start:{line:34,column:4},end:{line:34,column:95}},"24":{start:{line:35,column:4},end:{line:35,column:114}},"25":{start:{line:36,column:4},end:{line:36,column:94}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:8,column:1},end:{line:8,column:2}},loc:{start:{line:8,column:28},end:{line:13,column:1}},line:8},"1":{name:"(anonymous_1)",decl:{start:{line:15,column:1},end:{line:15,column:2}},loc:{start:{line:15,column:32},end:{line:21,column:1}},line:15},"2":{name:"(anonymous_2)",decl:{start:{line:23,column:1},end:{line:23,column:2}},loc:{start:{line:23,column:30},end:{line:30,column:1}},line:23},"3":{name:"(anonymous_3)",decl:{start:{line:32,column:1},end:{line:32,column:2}},loc:{start:{line:32,column:33},end:{line:37,column:1}},line:32}},branchMap:{"0":{loc:{start:{line:13,column:3},end:{line:13,column:44}},type:"binary-expr",locations:[{start:{line:13,column:3},end:{line:13,column:18}},{start:{line:13,column:23},end:{line:13,column:43}}],line:13},"1":{loc:{start:{line:21,column:3},end:{line:21,column:52}},type:"binary-expr",locations:[{start:{line:21,column:3},end:{line:21,column:22}},{start:{line:21,column:27},end:{line:21,column:51}}],line:21},"2":{loc:{start:{line:30,column:3},end:{line:30,column:48}},type:"binary-expr",locations:[{start:{line:30,column:3},end:{line:30,column:20}},{start:{line:30,column:25},end:{line:30,column:47}}],line:30},"3":{loc:{start:{line:37,column:3},end:{line:37,column:54}},type:"binary-expr",locations:[{start:{line:37,column:3},end:{line:37,column:23}},{start:{line:37,column:28},end:{line:37,column:53}}],line:37}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},f:{"0":0,"1":0,"2":0,"3":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},inputSourceMap:{version:3,sources:["/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts"],sourcesContent:["export const $ = '$';\n\nexport const TIMESTAMP_THESHOLD = 500;\n\nexport const DEFAULT_CONFIG = {\n retries: 100,\n delay: 50\n};\n\nexport enum HA_ROOT_ELEMENT {\n HOME_ASSISTANT = 'HOME_ASSISTANT',\n HOME_ASSISTANT_MAIN = 'HOME_ASSISTANT_MAIN',\n HA_DRAWER = 'HA_DRAWER',\n HA_SIDEBAR = 'HA_SIDEBAR'\n}\n\nexport enum HA_RESOLVER_ELEMENT {\n PARTIAL_PANEL_RESOLVER = 'PARTIAL_PANEL_RESOLVER',\n HA_PANEL_LOVELACE = 'HA_PANEL_LOVELACE',\n HUI_ROOT = 'HUI_ROOT',\n HEADER = 'HEADER',\n HUI_VIEW = 'HUI_VIEW'\n}\n\nexport enum HA_DIALOG_ELEMENT {\n HA_MORE_INFO_DIALOG = 'HA_MORE_INFO_DIALOG',\n HA_DIALOG = 'HA_DIALOG',\n HA_DIALOG_CONTENT = 'HA_DIALOG_CONTENT',\n HA_MORE_INFO_DIALOG_INFO = 'HA_MORE_INFO_DIALOG_INFO',\n HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK = 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK',\n HA_DIALOG_MORE_INFO_SETTINGS = 'HA_DIALOG_MORE_INFO_SETTINGS'\n\n}\n\nexport enum HAQuerySelectorEvent {\n ON_LOVELACE_PANEL_LOAD = 'onLovelacePanelLoad',\n ON_LOVELACE_MORE_INFO_DIALOG_OPEN = 'onLovelaceMoreInfoDialogOpen',\n ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN = 'onLovelaceHistoryAndLogBookDialogOpen',\n ON_LOVELACE_SETTINGS_DIALOG_OPEN = 'onLovelaceSettingsDialogOpen'\n}"],names:[],mappings:"AAAA,MAAM,CAAC,IAAM,CAAC,GAAG,GAAG,CAAC;AAErB,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,MAAM,CAAC,IAAM,cAAc,GAAG;IAC1B,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,oDAAiC,CAAA;IACjC,8DAA2C,CAAA;IAC3C,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;AAC7B,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC3B,wEAAiD,CAAA;IACjD,8DAAuC,CAAA;IACvC,4CAAqB,CAAA;IACrB,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;AACzB,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,QAM9B;AAED,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IACzB,gEAA2C,CAAA;IAC3C,4CAAuB,CAAA;IACvB,4DAAuC,CAAA;IACvC,0EAAqD,CAAA;IACrD,wGAAmF,CAAA;IACnF,kFAA6D,CAAA;AAEjE,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,sEAA8C,CAAA;IAC9C,0FAAkE,CAAA;IAClE,6GAAqF,CAAA;IACrF,yFAAiE,CAAA;AACrE,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"3a43de11c19fac252f0085361ac6e5e6cba9114b"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore - cov_jnkfhc2pd=function(){return actualCoverage;};}return actualCoverage;}cov_jnkfhc2pd();var $=(cov_jnkfhc2pd().s[0]++,'$');var TIMESTAMP_THESHOLD=(cov_jnkfhc2pd().s[1]++,500);var DEFAULT_CONFIG=(cov_jnkfhc2pd().s[2]++,{retries:100,delay:50});var HA_ROOT_ELEMENT;cov_jnkfhc2pd().s[3]++;(function(HA_ROOT_ELEMENT){cov_jnkfhc2pd().f[0]++;cov_jnkfhc2pd().s[4]++;HA_ROOT_ELEMENT["HOME_ASSISTANT"]="HOME_ASSISTANT";cov_jnkfhc2pd().s[5]++;HA_ROOT_ELEMENT["HOME_ASSISTANT_MAIN"]="HOME_ASSISTANT_MAIN";cov_jnkfhc2pd().s[6]++;HA_ROOT_ELEMENT["HA_DRAWER"]="HA_DRAWER";cov_jnkfhc2pd().s[7]++;HA_ROOT_ELEMENT["HA_SIDEBAR"]="HA_SIDEBAR";})((cov_jnkfhc2pd().b[0][0]++,HA_ROOT_ELEMENT)||(cov_jnkfhc2pd().b[0][1]++,HA_ROOT_ELEMENT={}));var HA_RESOLVER_ELEMENT;cov_jnkfhc2pd().s[8]++;(function(HA_RESOLVER_ELEMENT){cov_jnkfhc2pd().f[1]++;cov_jnkfhc2pd().s[9]++;HA_RESOLVER_ELEMENT["PARTIAL_PANEL_RESOLVER"]="PARTIAL_PANEL_RESOLVER";cov_jnkfhc2pd().s[10]++;HA_RESOLVER_ELEMENT["HA_PANEL_LOVELACE"]="HA_PANEL_LOVELACE";cov_jnkfhc2pd().s[11]++;HA_RESOLVER_ELEMENT["HUI_ROOT"]="HUI_ROOT";cov_jnkfhc2pd().s[12]++;HA_RESOLVER_ELEMENT["HEADER"]="HEADER";cov_jnkfhc2pd().s[13]++;HA_RESOLVER_ELEMENT["HUI_VIEW"]="HUI_VIEW";})((cov_jnkfhc2pd().b[1][0]++,HA_RESOLVER_ELEMENT)||(cov_jnkfhc2pd().b[1][1]++,HA_RESOLVER_ELEMENT={}));var HA_DIALOG_ELEMENT;cov_jnkfhc2pd().s[14]++;(function(HA_DIALOG_ELEMENT){cov_jnkfhc2pd().f[2]++;cov_jnkfhc2pd().s[15]++;HA_DIALOG_ELEMENT["HA_MORE_INFO_DIALOG"]="HA_MORE_INFO_DIALOG";cov_jnkfhc2pd().s[16]++;HA_DIALOG_ELEMENT["HA_DIALOG"]="HA_DIALOG";cov_jnkfhc2pd().s[17]++;HA_DIALOG_ELEMENT["HA_DIALOG_CONTENT"]="HA_DIALOG_CONTENT";cov_jnkfhc2pd().s[18]++;HA_DIALOG_ELEMENT["HA_MORE_INFO_DIALOG_INFO"]="HA_MORE_INFO_DIALOG_INFO";cov_jnkfhc2pd().s[19]++;HA_DIALOG_ELEMENT["HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK"]="HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK";cov_jnkfhc2pd().s[20]++;HA_DIALOG_ELEMENT["HA_DIALOG_MORE_INFO_SETTINGS"]="HA_DIALOG_MORE_INFO_SETTINGS";})((cov_jnkfhc2pd().b[2][0]++,HA_DIALOG_ELEMENT)||(cov_jnkfhc2pd().b[2][1]++,HA_DIALOG_ELEMENT={}));var HAQuerySelectorEvent;cov_jnkfhc2pd().s[21]++;(function(HAQuerySelectorEvent){cov_jnkfhc2pd().f[3]++;cov_jnkfhc2pd().s[22]++;HAQuerySelectorEvent["ON_LOVELACE_PANEL_LOAD"]="onLovelacePanelLoad";cov_jnkfhc2pd().s[23]++;HAQuerySelectorEvent["ON_LOVELACE_MORE_INFO_DIALOG_OPEN"]="onLovelaceMoreInfoDialogOpen";cov_jnkfhc2pd().s[24]++;HAQuerySelectorEvent["ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN"]="onLovelaceHistoryAndLogBookDialogOpen";cov_jnkfhc2pd().s[25]++;HAQuerySelectorEvent["ON_LOVELACE_SETTINGS_DIALOG_OPEN"]="onLovelaceSettingsDialogOpen";})((cov_jnkfhc2pd().b[3][0]++,HAQuerySelectorEvent)||(cov_jnkfhc2pd().b[3][1]++,HAQuerySelectorEvent={})); + function cov_jnkfhc2pd(){var path="/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts";var hash="5e1ed463770610620e3670e7a541d8706866f122";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts",statementMap:{"0":{start:{line:1,column:15},end:{line:1,column:18}},"1":{start:{line:2,column:32},end:{line:2,column:35}},"2":{start:{line:3,column:28},end:{line:6,column:1}},"3":{start:{line:8,column:0},end:{line:13,column:46}},"4":{start:{line:9,column:4},end:{line:9,column:57}},"5":{start:{line:10,column:4},end:{line:10,column:67}},"6":{start:{line:11,column:4},end:{line:11,column:47}},"7":{start:{line:12,column:4},end:{line:12,column:49}},"8":{start:{line:15,column:0},end:{line:21,column:54}},"9":{start:{line:16,column:4},end:{line:16,column:77}},"10":{start:{line:17,column:4},end:{line:17,column:67}},"11":{start:{line:18,column:4},end:{line:18,column:49}},"12":{start:{line:19,column:4},end:{line:19,column:45}},"13":{start:{line:20,column:4},end:{line:20,column:49}},"14":{start:{line:23,column:0},end:{line:30,column:50}},"15":{start:{line:24,column:4},end:{line:24,column:69}},"16":{start:{line:25,column:4},end:{line:25,column:49}},"17":{start:{line:26,column:4},end:{line:26,column:65}},"18":{start:{line:27,column:4},end:{line:27,column:79}},"19":{start:{line:28,column:4},end:{line:28,column:109}},"20":{start:{line:29,column:4},end:{line:29,column:87}},"21":{start:{line:32,column:0},end:{line:37,column:56}},"22":{start:{line:33,column:4},end:{line:33,column:58}},"23":{start:{line:34,column:4},end:{line:34,column:78}},"24":{start:{line:35,column:4},end:{line:35,column:97}},"25":{start:{line:36,column:4},end:{line:36,column:77}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:8,column:1},end:{line:8,column:2}},loc:{start:{line:8,column:28},end:{line:13,column:1}},line:8},"1":{name:"(anonymous_1)",decl:{start:{line:15,column:1},end:{line:15,column:2}},loc:{start:{line:15,column:32},end:{line:21,column:1}},line:15},"2":{name:"(anonymous_2)",decl:{start:{line:23,column:1},end:{line:23,column:2}},loc:{start:{line:23,column:30},end:{line:30,column:1}},line:23},"3":{name:"(anonymous_3)",decl:{start:{line:32,column:1},end:{line:32,column:2}},loc:{start:{line:32,column:33},end:{line:37,column:1}},line:32}},branchMap:{"0":{loc:{start:{line:13,column:3},end:{line:13,column:44}},type:"binary-expr",locations:[{start:{line:13,column:3},end:{line:13,column:18}},{start:{line:13,column:23},end:{line:13,column:43}}],line:13},"1":{loc:{start:{line:21,column:3},end:{line:21,column:52}},type:"binary-expr",locations:[{start:{line:21,column:3},end:{line:21,column:22}},{start:{line:21,column:27},end:{line:21,column:51}}],line:21},"2":{loc:{start:{line:30,column:3},end:{line:30,column:48}},type:"binary-expr",locations:[{start:{line:30,column:3},end:{line:30,column:20}},{start:{line:30,column:25},end:{line:30,column:47}}],line:30},"3":{loc:{start:{line:37,column:3},end:{line:37,column:54}},type:"binary-expr",locations:[{start:{line:37,column:3},end:{line:37,column:23}},{start:{line:37,column:28},end:{line:37,column:53}}],line:37}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0},f:{"0":0,"1":0,"2":0,"3":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]},inputSourceMap:{version:3,sources:["/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/constants/index.ts"],sourcesContent:["export const $ = '$';\n\nexport const TIMESTAMP_THESHOLD = 500;\n\nexport const DEFAULT_CONFIG = {\n retries: 100,\n delay: 50\n};\n\nexport enum HA_ROOT_ELEMENT {\n HOME_ASSISTANT = 'HOME_ASSISTANT',\n HOME_ASSISTANT_MAIN = 'HOME_ASSISTANT_MAIN',\n HA_DRAWER = 'HA_DRAWER',\n HA_SIDEBAR = 'HA_SIDEBAR'\n}\n\nexport enum HA_RESOLVER_ELEMENT {\n PARTIAL_PANEL_RESOLVER = 'PARTIAL_PANEL_RESOLVER',\n HA_PANEL_LOVELACE = 'HA_PANEL_LOVELACE',\n HUI_ROOT = 'HUI_ROOT',\n HEADER = 'HEADER',\n HUI_VIEW = 'HUI_VIEW'\n}\n\nexport enum HA_DIALOG_ELEMENT {\n HA_MORE_INFO_DIALOG = 'HA_MORE_INFO_DIALOG',\n HA_DIALOG = 'HA_DIALOG',\n HA_DIALOG_CONTENT = 'HA_DIALOG_CONTENT',\n HA_MORE_INFO_DIALOG_INFO = 'HA_MORE_INFO_DIALOG_INFO',\n HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK = 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK',\n HA_DIALOG_MORE_INFO_SETTINGS = 'HA_DIALOG_MORE_INFO_SETTINGS'\n\n}\n\nexport enum HAQuerySelectorEvent {\n ON_PANEL_LOAD = 'onPanelLoad',\n ON_MORE_INFO_DIALOG_OPEN = 'onMoreInfoDialogOpen',\n ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN = 'onHistoryAndLogBookDialogOpen',\n ON_SETTINGS_DIALOG_OPEN = 'onSettingsDialogOpen'\n}"],names:[],mappings:"AAAA,MAAM,CAAC,IAAM,CAAC,GAAG,GAAG,CAAC;AAErB,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,MAAM,CAAC,IAAM,cAAc,GAAG;IAC1B,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,oDAAiC,CAAA;IACjC,8DAA2C,CAAA;IAC3C,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;AAC7B,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAN,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC3B,wEAAiD,CAAA;IACjD,8DAAuC,CAAA;IACvC,4CAAqB,CAAA;IACrB,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;AACzB,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,QAM9B;AAED,MAAM,CAAN,IAAY,iBAQX;AARD,WAAY,iBAAiB;IACzB,gEAA2C,CAAA;IAC3C,4CAAuB,CAAA;IACvB,4DAAuC,CAAA;IACvC,0EAAqD,CAAA;IACrD,wGAAmF,CAAA;IACnF,kFAA6D,CAAA;AAEjE,CAAC,EARW,iBAAiB,KAAjB,iBAAiB,QAQ5B;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,qDAA6B,CAAA;IAC7B,yEAAiD,CAAA;IACjD,4FAAoE,CAAA;IACpE,wEAAgD,CAAA;AACpD,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"5e1ed463770610620e3670e7a541d8706866f122"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore + cov_jnkfhc2pd=function(){return actualCoverage;};}return actualCoverage;}cov_jnkfhc2pd();var $=(cov_jnkfhc2pd().s[0]++,'$');var TIMESTAMP_THESHOLD=(cov_jnkfhc2pd().s[1]++,500);var DEFAULT_CONFIG=(cov_jnkfhc2pd().s[2]++,{retries:100,delay:50});var HA_ROOT_ELEMENT;cov_jnkfhc2pd().s[3]++;(function(HA_ROOT_ELEMENT){cov_jnkfhc2pd().f[0]++;cov_jnkfhc2pd().s[4]++;HA_ROOT_ELEMENT["HOME_ASSISTANT"]="HOME_ASSISTANT";cov_jnkfhc2pd().s[5]++;HA_ROOT_ELEMENT["HOME_ASSISTANT_MAIN"]="HOME_ASSISTANT_MAIN";cov_jnkfhc2pd().s[6]++;HA_ROOT_ELEMENT["HA_DRAWER"]="HA_DRAWER";cov_jnkfhc2pd().s[7]++;HA_ROOT_ELEMENT["HA_SIDEBAR"]="HA_SIDEBAR";})((cov_jnkfhc2pd().b[0][0]++,HA_ROOT_ELEMENT)||(cov_jnkfhc2pd().b[0][1]++,HA_ROOT_ELEMENT={}));var HA_RESOLVER_ELEMENT;cov_jnkfhc2pd().s[8]++;(function(HA_RESOLVER_ELEMENT){cov_jnkfhc2pd().f[1]++;cov_jnkfhc2pd().s[9]++;HA_RESOLVER_ELEMENT["PARTIAL_PANEL_RESOLVER"]="PARTIAL_PANEL_RESOLVER";cov_jnkfhc2pd().s[10]++;HA_RESOLVER_ELEMENT["HA_PANEL_LOVELACE"]="HA_PANEL_LOVELACE";cov_jnkfhc2pd().s[11]++;HA_RESOLVER_ELEMENT["HUI_ROOT"]="HUI_ROOT";cov_jnkfhc2pd().s[12]++;HA_RESOLVER_ELEMENT["HEADER"]="HEADER";cov_jnkfhc2pd().s[13]++;HA_RESOLVER_ELEMENT["HUI_VIEW"]="HUI_VIEW";})((cov_jnkfhc2pd().b[1][0]++,HA_RESOLVER_ELEMENT)||(cov_jnkfhc2pd().b[1][1]++,HA_RESOLVER_ELEMENT={}));var HA_DIALOG_ELEMENT;cov_jnkfhc2pd().s[14]++;(function(HA_DIALOG_ELEMENT){cov_jnkfhc2pd().f[2]++;cov_jnkfhc2pd().s[15]++;HA_DIALOG_ELEMENT["HA_MORE_INFO_DIALOG"]="HA_MORE_INFO_DIALOG";cov_jnkfhc2pd().s[16]++;HA_DIALOG_ELEMENT["HA_DIALOG"]="HA_DIALOG";cov_jnkfhc2pd().s[17]++;HA_DIALOG_ELEMENT["HA_DIALOG_CONTENT"]="HA_DIALOG_CONTENT";cov_jnkfhc2pd().s[18]++;HA_DIALOG_ELEMENT["HA_MORE_INFO_DIALOG_INFO"]="HA_MORE_INFO_DIALOG_INFO";cov_jnkfhc2pd().s[19]++;HA_DIALOG_ELEMENT["HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK"]="HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK";cov_jnkfhc2pd().s[20]++;HA_DIALOG_ELEMENT["HA_DIALOG_MORE_INFO_SETTINGS"]="HA_DIALOG_MORE_INFO_SETTINGS";})((cov_jnkfhc2pd().b[2][0]++,HA_DIALOG_ELEMENT)||(cov_jnkfhc2pd().b[2][1]++,HA_DIALOG_ELEMENT={}));var HAQuerySelectorEvent;cov_jnkfhc2pd().s[21]++;(function(HAQuerySelectorEvent){cov_jnkfhc2pd().f[3]++;cov_jnkfhc2pd().s[22]++;HAQuerySelectorEvent["ON_PANEL_LOAD"]="onPanelLoad";cov_jnkfhc2pd().s[23]++;HAQuerySelectorEvent["ON_MORE_INFO_DIALOG_OPEN"]="onMoreInfoDialogOpen";cov_jnkfhc2pd().s[24]++;HAQuerySelectorEvent["ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN"]="onHistoryAndLogBookDialogOpen";cov_jnkfhc2pd().s[25]++;HAQuerySelectorEvent["ON_SETTINGS_DIALOG_OPEN"]="onSettingsDialogOpen";})((cov_jnkfhc2pd().b[3][0]++,HAQuerySelectorEvent)||(cov_jnkfhc2pd().b[3][1]++,HAQuerySelectorEvent={})); function cov_6tb7t1v3w(){var path="/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/selectors/index.ts";var hash="2e2640e3997d66cf0bba087c23b5bd0b975519dc";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/selectors/index.ts",statementMap:{"0":{start:{line:4,column:0},end:{line:20,column:46}},"1":{start:{line:5,column:4},end:{line:5,column:57}},"2":{start:{line:6,column:4},end:{line:6,column:67}},"3":{start:{line:7,column:4},end:{line:7,column:47}},"4":{start:{line:8,column:4},end:{line:8,column:49}},"5":{start:{line:9,column:4},end:{line:9,column:73}},"6":{start:{line:10,column:4},end:{line:10,column:63}},"7":{start:{line:11,column:4},end:{line:11,column:45}},"8":{start:{line:12,column:4},end:{line:12,column:42}},"9":{start:{line:13,column:4},end:{line:13,column:45}},"10":{start:{line:14,column:4},end:{line:14,column:67}},"11":{start:{line:15,column:4},end:{line:15,column:47}},"12":{start:{line:16,column:4},end:{line:16,column:54}},"13":{start:{line:17,column:4},end:{line:17,column:70}},"14":{start:{line:18,column:4},end:{line:18,column:100}},"15":{start:{line:19,column:4},end:{line:19,column:78}},"16":{start:{line:21,column:29},end:{line:55,column:6}},"17":{start:{line:56,column:33},end:{line:88,column:6}},"18":{start:{line:89,column:30},end:{line:124,column:1}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:4,column:1},end:{line:4,column:2}},loc:{start:{line:4,column:28},end:{line:20,column:1}},line:4}},branchMap:{"0":{loc:{start:{line:20,column:3},end:{line:20,column:44}},type:"binary-expr",locations:[{start:{line:20,column:3},end:{line:20,column:18}},{start:{line:20,column:23},end:{line:20,column:43}}],line:20}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},f:{"0":0},b:{"0":[0,0]},inputSourceMap:{version:3,sources:["/Users/elchininet/DATOS/PINCHAS/MyProjects/home-assistant-query-selector/src/selectors/index.ts"],sourcesContent:["import { HomeAssistantNodeDescriptor } from '@types';\nimport {\n $,\n HA_ROOT_ELEMENT,\n HA_RESOLVER_ELEMENT,\n HA_DIALOG_ELEMENT\n} from '@constants';\n\nexport enum QUERY_SELECTORS {\n HOME_ASSISTANT = 'home-assistant',\n HOME_ASSISTANT_MAIN = 'home-assistant-main',\n HA_DRAWER = 'ha-drawer',\n HA_SIDEBAR = 'ha-sidebar',\n PARTIAL_PANEL_RESOLVER = 'partial-panel-resolver',\n HA_PANEL_LOVELACE = 'ha-panel-lovelace',\n HUI_ROOT = 'hui-root',\n HEADER = '.header',\n HUI_VIEW = 'hui-view',\n HA_MORE_INFO_DIALOG = 'ha-more-info-dialog',\n HA_DIALOG = 'ha-dialog',\n HA_DIALOG_CONTENT = '.content',\n HA_MORE_INFO_DIALOG_INFO = 'ha-more-info-info',\n HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK = 'ha-more-info-history-and-logbook',\n HA_DIALOG_MORE_INFO_SETTINGS = 'ha-more-info-settings'\n}\n\nexport const ROOT_SELECTORS: HomeAssistantNodeDescriptor = {\n [HA_ROOT_ELEMENT.HOME_ASSISTANT]: {\n selector: QUERY_SELECTORS.HOME_ASSISTANT,\n children: {\n shadowRoot: {\n selector: $,\n children: {\n [HA_ROOT_ELEMENT.HOME_ASSISTANT_MAIN]: {\n selector: QUERY_SELECTORS.HOME_ASSISTANT_MAIN,\n children: {\n shadowRoot: {\n selector: $,\n children: {\n [HA_ROOT_ELEMENT.HA_DRAWER]: {\n selector: QUERY_SELECTORS.HA_DRAWER,\n children: {\n [HA_ROOT_ELEMENT.HA_SIDEBAR]: {\n selector: QUERY_SELECTORS.HA_SIDEBAR,\n children: {\n shadowRoot: {\n selector: $\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n};\n\nexport const RESOLVER_SELECTORS: HomeAssistantNodeDescriptor = {\n [HA_RESOLVER_ELEMENT.PARTIAL_PANEL_RESOLVER]: {\n selector: QUERY_SELECTORS.PARTIAL_PANEL_RESOLVER,\n children: {\n [HA_RESOLVER_ELEMENT.HA_PANEL_LOVELACE]: {\n selector: QUERY_SELECTORS.HA_PANEL_LOVELACE,\n children: {\n shadowRoot: {\n selector: $,\n children: {\n [HA_RESOLVER_ELEMENT.HUI_ROOT]: {\n selector: QUERY_SELECTORS.HUI_ROOT,\n children: {\n shadowRoot: {\n selector: $,\n children: {\n [HA_RESOLVER_ELEMENT.HEADER]: {\n selector: QUERY_SELECTORS.HEADER,\n },\n [HA_RESOLVER_ELEMENT.HUI_VIEW]: {\n selector: QUERY_SELECTORS.HUI_VIEW\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n};\n\nexport const DIALOG_SELECTORS: HomeAssistantNodeDescriptor = {\n shadowRoot: {\n selector: $,\n children: {\n [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG]: {\n selector: QUERY_SELECTORS.HA_MORE_INFO_DIALOG,\n children: {\n shadowRoot: {\n selector: $,\n children: {\n [HA_DIALOG_ELEMENT.HA_DIALOG]: {\n selector: QUERY_SELECTORS.HA_DIALOG,\n children: {\n [HA_DIALOG_ELEMENT.HA_DIALOG_CONTENT]: {\n selector: QUERY_SELECTORS.HA_DIALOG_CONTENT,\n children: {\n [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]: {\n selector: QUERY_SELECTORS.HA_MORE_INFO_DIALOG_INFO\n },\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: {\n selector: QUERY_SELECTORS.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK\n },\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]: {\n selector: QUERY_SELECTORS.HA_DIALOG_MORE_INFO_SETTINGS\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n};"],names:[],mappings:"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",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2e2640e3997d66cf0bba087c23b5bd0b975519dc"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore cov_6tb7t1v3w=function(){return actualCoverage;};}return actualCoverage;}cov_6tb7t1v3w();var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m;var QUERY_SELECTORS;cov_6tb7t1v3w().s[0]++;(function(QUERY_SELECTORS){cov_6tb7t1v3w().f[0]++;cov_6tb7t1v3w().s[1]++;QUERY_SELECTORS["HOME_ASSISTANT"]="home-assistant";cov_6tb7t1v3w().s[2]++;QUERY_SELECTORS["HOME_ASSISTANT_MAIN"]="home-assistant-main";cov_6tb7t1v3w().s[3]++;QUERY_SELECTORS["HA_DRAWER"]="ha-drawer";cov_6tb7t1v3w().s[4]++;QUERY_SELECTORS["HA_SIDEBAR"]="ha-sidebar";cov_6tb7t1v3w().s[5]++;QUERY_SELECTORS["PARTIAL_PANEL_RESOLVER"]="partial-panel-resolver";cov_6tb7t1v3w().s[6]++;QUERY_SELECTORS["HA_PANEL_LOVELACE"]="ha-panel-lovelace";cov_6tb7t1v3w().s[7]++;QUERY_SELECTORS["HUI_ROOT"]="hui-root";cov_6tb7t1v3w().s[8]++;QUERY_SELECTORS["HEADER"]=".header";cov_6tb7t1v3w().s[9]++;QUERY_SELECTORS["HUI_VIEW"]="hui-view";cov_6tb7t1v3w().s[10]++;QUERY_SELECTORS["HA_MORE_INFO_DIALOG"]="ha-more-info-dialog";cov_6tb7t1v3w().s[11]++;QUERY_SELECTORS["HA_DIALOG"]="ha-dialog";cov_6tb7t1v3w().s[12]++;QUERY_SELECTORS["HA_DIALOG_CONTENT"]=".content";cov_6tb7t1v3w().s[13]++;QUERY_SELECTORS["HA_MORE_INFO_DIALOG_INFO"]="ha-more-info-info";cov_6tb7t1v3w().s[14]++;QUERY_SELECTORS["HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK"]="ha-more-info-history-and-logbook";cov_6tb7t1v3w().s[15]++;QUERY_SELECTORS["HA_DIALOG_MORE_INFO_SETTINGS"]="ha-more-info-settings";})((cov_6tb7t1v3w().b[0][0]++,QUERY_SELECTORS)||(cov_6tb7t1v3w().b[0][1]++,QUERY_SELECTORS={}));var ROOT_SELECTORS=(cov_6tb7t1v3w().s[16]++,(_a={},_a[HA_ROOT_ELEMENT.HOME_ASSISTANT]={selector:QUERY_SELECTORS.HOME_ASSISTANT,children:{shadowRoot:{selector:$,children:(_b={},_b[HA_ROOT_ELEMENT.HOME_ASSISTANT_MAIN]={selector:QUERY_SELECTORS.HOME_ASSISTANT_MAIN,children:{shadowRoot:{selector:$,children:(_c={},_c[HA_ROOT_ELEMENT.HA_DRAWER]={selector:QUERY_SELECTORS.HA_DRAWER,children:(_d={},_d[HA_ROOT_ELEMENT.HA_SIDEBAR]={selector:QUERY_SELECTORS.HA_SIDEBAR,children:{shadowRoot:{selector:$}}},_d)},_c)}}},_b)}}},_a));var RESOLVER_SELECTORS=(cov_6tb7t1v3w().s[17]++,(_e={},_e[HA_RESOLVER_ELEMENT.PARTIAL_PANEL_RESOLVER]={selector:QUERY_SELECTORS.PARTIAL_PANEL_RESOLVER,children:(_f={},_f[HA_RESOLVER_ELEMENT.HA_PANEL_LOVELACE]={selector:QUERY_SELECTORS.HA_PANEL_LOVELACE,children:{shadowRoot:{selector:$,children:(_g={},_g[HA_RESOLVER_ELEMENT.HUI_ROOT]={selector:QUERY_SELECTORS.HUI_ROOT,children:{shadowRoot:{selector:$,children:(_h={},_h[HA_RESOLVER_ELEMENT.HEADER]={selector:QUERY_SELECTORS.HEADER},_h[HA_RESOLVER_ELEMENT.HUI_VIEW]={selector:QUERY_SELECTORS.HUI_VIEW},_h)}}},_g)}}},_f)},_e));var DIALOG_SELECTORS=(cov_6tb7t1v3w().s[18]++,{shadowRoot:{selector:$,children:(_j={},_j[HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG]={selector:QUERY_SELECTORS.HA_MORE_INFO_DIALOG,children:{shadowRoot:{selector:$,children:(_k={},_k[HA_DIALOG_ELEMENT.HA_DIALOG]={selector:QUERY_SELECTORS.HA_DIALOG,children:(_l={},_l[HA_DIALOG_ELEMENT.HA_DIALOG_CONTENT]={selector:QUERY_SELECTORS.HA_DIALOG_CONTENT,children:(_m={},_m[HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]={selector:QUERY_SELECTORS.HA_MORE_INFO_DIALOG_INFO},_m[HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]={selector:QUERY_SELECTORS.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK},_m[HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]={selector:QUERY_SELECTORS.HA_DIALOG_MORE_INFO_SETTINGS},_m)},_l)},_k)}}},_j)}}); var n=function(){return n=Object.assign||function(n){for(var t,e=1,r=arguments.length;e0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1] shadowRoot\n ? $ + ' ' + selector\n : selector;\n\nexport const getAsyncElements = (\n config: HAQuerySelectorConfig,\n node: HomeAssistantNodeDescriptor,\n fromElement: Promise = null,\n insideShadowRoot = false,\n): HomeAssistantElement => {\n\n const entries = Object.entries(node || {});\n\n return entries.reduce((acc: HomeAssistantElement, entry: [string, NodeDescriptorProps]): HomeAssistantElement => {\n\n const [key, nodeDescriptor] = entry;\n\n if (\n nodeDescriptor.selector === $ &&\n fromElement\n ) {\n\n return nodeDescriptor.children\n ? {\n ...acc,\n ...getAsyncElements(\n config,\n nodeDescriptor.children,\n fromElement,\n true\n )\n }\n : acc;\n\n }\n\n const element: Promise = fromElement\n ? fromElement.then((element: Element | null) => {\n return asyncQuerySelector(\n element,\n getQuery(nodeDescriptor.selector, insideShadowRoot),\n config\n );\n })\n : asyncQuerySelector(nodeDescriptor.selector, config);\n\n acc[key] = {\n element,\n children: getAsyncElements(\n config,\n nodeDescriptor.children,\n element\n ),\n selector: new AsyncSelector(\n element,\n config\n )\n };\n\n return acc;\n\n }, {} as HomeAssistantElement);\n\n};\n\nexport const searchNode = (\n key: string,\n node: HomeAssistantElement\n): ElementProps => {\n const entries = Object.entries(node) as [string, ElementProps][];\n for (const entry of entries) {\n if (entry[0] === key) {\n return entry[1];\n } else {\n const noeDeep = searchNode(key, entry[1].children);\n if (noeDeep) {\n return noeDeep;\n }\n }\n }\n};\n\nexport const flatHomeAssistantTree = (\n rootElement: object,\n tree: HomeAssistantElement\n): T => {\n const rootElementKeys = Object.keys(rootElement);\n return rootElementKeys.reduce(\n (acc: Record, key: string): Record => {\n const node = searchNode(key, tree);\n const { children, ...rest } = node;\n acc[key] = {\n ...rest\n };\n return acc;\n },\n {} as Record\n ) as T;\n};\n\nexport const getFinalDialogFlatTree = (\n flatTree: Record,\n dialogElement: (\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n )\n): Record => {\n const extractKeys = [\n HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG,\n HA_DIALOG_ELEMENT.HA_DIALOG,\n HA_DIALOG_ELEMENT.HA_DIALOG_CONTENT,\n dialogElement\n ];\n const reducer = (\n tree: Record,\n key: keyof typeof HA_DIALOG_ELEMENT\n ): Record => {\n tree[key] = flatTree[key];\n return tree;\n };\n return extractKeys.reduce(\n reducer,\n {} as Record\n );\n};"],names:[],mappings:"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",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"d8128a34c7d567bfb3382e7cf1f3b65a13551933"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore - cov_1h2goi2f99=function(){return actualCoverage;};}return actualCoverage;}cov_1h2goi2f99();cov_1h2goi2f99().s[0]++;var getQuery=function(selector,shadowRoot){cov_1h2goi2f99().f[0]++;cov_1h2goi2f99().s[1]++;return shadowRoot?(cov_1h2goi2f99().b[0][0]++,$+' '+selector):(cov_1h2goi2f99().b[0][1]++,selector);};cov_1h2goi2f99().s[2]++;var getAsyncElements=function(config,node,fromElement,insideShadowRoot){cov_1h2goi2f99().f[1]++;cov_1h2goi2f99().s[3]++;if(fromElement===void 0){cov_1h2goi2f99().b[1][0]++;cov_1h2goi2f99().s[4]++;fromElement=null;}else {cov_1h2goi2f99().b[1][1]++;}cov_1h2goi2f99().s[5]++;if(insideShadowRoot===void 0){cov_1h2goi2f99().b[2][0]++;cov_1h2goi2f99().s[6]++;insideShadowRoot=false;}else {cov_1h2goi2f99().b[2][1]++;}var entries=(cov_1h2goi2f99().s[7]++,Object.entries((cov_1h2goi2f99().b[3][0]++,node)||(cov_1h2goi2f99().b[3][1]++,{})));cov_1h2goi2f99().s[8]++;return entries.reduce(function(acc,entry){cov_1h2goi2f99().f[2]++;var key=(cov_1h2goi2f99().s[9]++,entry[0]),nodeDescriptor=(cov_1h2goi2f99().s[10]++,entry[1]);cov_1h2goi2f99().s[11]++;if((cov_1h2goi2f99().b[5][0]++,nodeDescriptor.selector===$)&&(cov_1h2goi2f99().b[5][1]++,fromElement)){cov_1h2goi2f99().b[4][0]++;cov_1h2goi2f99().s[12]++;return nodeDescriptor.children?(cov_1h2goi2f99().b[6][0]++,__assign(__assign({},acc),getAsyncElements(config,nodeDescriptor.children,fromElement,true))):(cov_1h2goi2f99().b[6][1]++,acc);}else {cov_1h2goi2f99().b[4][1]++;}var element=(cov_1h2goi2f99().s[13]++,fromElement?(cov_1h2goi2f99().b[7][0]++,fromElement.then(function(element){cov_1h2goi2f99().f[3]++;cov_1h2goi2f99().s[14]++;return Q(element,getQuery(nodeDescriptor.selector,insideShadowRoot),config);})):(cov_1h2goi2f99().b[7][1]++,Q(nodeDescriptor.selector,config)));cov_1h2goi2f99().s[15]++;acc[key]={element:element,children:getAsyncElements(config,nodeDescriptor.children,element),selector:new I(element,config)};cov_1h2goi2f99().s[16]++;return acc;},{});};cov_1h2goi2f99().s[17]++;var searchNode=function(key,node){cov_1h2goi2f99().f[4]++;var entries=(cov_1h2goi2f99().s[18]++,Object.entries(node));cov_1h2goi2f99().s[19]++;for(var _i=(cov_1h2goi2f99().s[20]++,0),entries_1=(cov_1h2goi2f99().s[21]++,entries);_i shadowRoot\n ? $ + ' ' + selector\n : selector;\n\nexport const getAsyncElements = (\n config: HAQuerySelectorConfig,\n node: HomeAssistantNodeDescriptor,\n fromElement: Promise = null,\n insideShadowRoot = false,\n): HomeAssistantElement => {\n\n const entries = Object.entries(node || {});\n\n return entries.reduce((acc: HomeAssistantElement, entry: [string, NodeDescriptorProps]): HomeAssistantElement => {\n\n const [key, nodeDescriptor] = entry;\n\n if (\n nodeDescriptor.selector === $ &&\n fromElement\n ) {\n\n return nodeDescriptor.children\n ? {\n ...acc,\n ...getAsyncElements(\n config,\n nodeDescriptor.children,\n fromElement,\n true\n )\n }\n : acc;\n\n }\n\n const element: Promise = fromElement\n ? fromElement.then((element: Element | null) => {\n if (element) {\n return asyncQuerySelector(\n element,\n getQuery(nodeDescriptor.selector, insideShadowRoot),\n config\n );\n }\n return null;\n })\n : asyncQuerySelector(nodeDescriptor.selector, config);\n\n acc[key] = {\n element,\n children: getAsyncElements(\n config,\n nodeDescriptor.children,\n element\n ),\n selector: new AsyncSelector(\n element,\n config\n )\n };\n\n return acc;\n\n }, {} as HomeAssistantElement);\n\n};\n\nexport const searchNode = (\n key: string,\n node: HomeAssistantElement\n): ElementProps => {\n const entries = Object.entries(node) as [string, ElementProps][];\n for (const entry of entries) {\n if (entry[0] === key) {\n return entry[1];\n } else {\n const noeDeep = searchNode(key, entry[1].children);\n if (noeDeep) {\n return noeDeep;\n }\n }\n }\n};\n\nexport const flatHomeAssistantTree = (\n rootElement: object,\n tree: HomeAssistantElement\n): T => {\n const rootElementKeys = Object.keys(rootElement);\n return rootElementKeys.reduce(\n (acc: Record, key: string): Record => {\n const node = searchNode(key, tree);\n const { children, ...rest } = node;\n acc[key] = {\n ...rest\n };\n return acc;\n },\n {} as Record\n ) as T;\n};\n\nexport const getFinalDialogFlatTree = (\n flatTree: Record,\n dialogElement: (\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n )\n): Record => {\n const extractKeys = [\n HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG,\n HA_DIALOG_ELEMENT.HA_DIALOG,\n HA_DIALOG_ELEMENT.HA_DIALOG_CONTENT,\n dialogElement\n ];\n const reducer = (\n tree: Record,\n key: keyof typeof HA_DIALOG_ELEMENT\n ): Record => {\n tree[key] = flatTree[key];\n return tree;\n };\n return extractKeys.reduce(\n reducer,\n {} as Record\n );\n};"],names:[],mappings:"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",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"fe568cf807808706741128e6c35a95f48a76aaa3"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore + cov_1h2goi2f99=function(){return actualCoverage;};}return actualCoverage;}cov_1h2goi2f99();cov_1h2goi2f99().s[0]++;var getQuery=function(selector,shadowRoot){cov_1h2goi2f99().f[0]++;cov_1h2goi2f99().s[1]++;return shadowRoot?(cov_1h2goi2f99().b[0][0]++,$+' '+selector):(cov_1h2goi2f99().b[0][1]++,selector);};cov_1h2goi2f99().s[2]++;var getAsyncElements=function(config,node,fromElement,insideShadowRoot){cov_1h2goi2f99().f[1]++;cov_1h2goi2f99().s[3]++;if(fromElement===void 0){cov_1h2goi2f99().b[1][0]++;cov_1h2goi2f99().s[4]++;fromElement=null;}else {cov_1h2goi2f99().b[1][1]++;}cov_1h2goi2f99().s[5]++;if(insideShadowRoot===void 0){cov_1h2goi2f99().b[2][0]++;cov_1h2goi2f99().s[6]++;insideShadowRoot=false;}else {cov_1h2goi2f99().b[2][1]++;}var entries=(cov_1h2goi2f99().s[7]++,Object.entries((cov_1h2goi2f99().b[3][0]++,node)||(cov_1h2goi2f99().b[3][1]++,{})));cov_1h2goi2f99().s[8]++;return entries.reduce(function(acc,entry){cov_1h2goi2f99().f[2]++;var key=(cov_1h2goi2f99().s[9]++,entry[0]),nodeDescriptor=(cov_1h2goi2f99().s[10]++,entry[1]);cov_1h2goi2f99().s[11]++;if((cov_1h2goi2f99().b[5][0]++,nodeDescriptor.selector===$)&&(cov_1h2goi2f99().b[5][1]++,fromElement)){cov_1h2goi2f99().b[4][0]++;cov_1h2goi2f99().s[12]++;return nodeDescriptor.children?(cov_1h2goi2f99().b[6][0]++,__assign(__assign({},acc),getAsyncElements(config,nodeDescriptor.children,fromElement,true))):(cov_1h2goi2f99().b[6][1]++,acc);}else {cov_1h2goi2f99().b[4][1]++;}var element=(cov_1h2goi2f99().s[13]++,fromElement?(cov_1h2goi2f99().b[7][0]++,fromElement.then(function(element){cov_1h2goi2f99().f[3]++;cov_1h2goi2f99().s[14]++;if(element){cov_1h2goi2f99().b[8][0]++;cov_1h2goi2f99().s[15]++;return Q(element,getQuery(nodeDescriptor.selector,insideShadowRoot),config);}else {cov_1h2goi2f99().b[8][1]++;}cov_1h2goi2f99().s[16]++;return null;})):(cov_1h2goi2f99().b[7][1]++,Q(nodeDescriptor.selector,config)));cov_1h2goi2f99().s[17]++;acc[key]={element:element,children:getAsyncElements(config,nodeDescriptor.children,element),selector:new I(element,config)};cov_1h2goi2f99().s[18]++;return acc;},{});};cov_1h2goi2f99().s[19]++;var searchNode=function(key,node){cov_1h2goi2f99().f[4]++;var entries=(cov_1h2goi2f99().s[20]++,Object.entries(node));cov_1h2goi2f99().s[21]++;for(var _i=(cov_1h2goi2f99().s[22]++,0),entries_1=(cov_1h2goi2f99().s[23]++,entries);_i;\n\ntype OnLovelaceMoreInfoDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n >,\n HAElement\n>;\n\ntype OnLovelaceHistoryAndLogBookDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n >,\n HAElement\n>;\n\ntype OnLovelaceSettingsDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK'\n >,\n HAElement\n>;\n\nclass DelegatedEventTarget implements EventTarget {\n private delegate = document.createDocumentFragment();\n addEventListener(...args: Parameters): void {\n this.delegate.addEventListener(...args);\n }\n dispatchEvent(...args: Parameters): boolean {\n return this.delegate.dispatchEvent(...args);\n }\n removeEventListener(...args: Parameters): void {\n return this.delegate.removeEventListener(...args);\n }\n}\n\nclass HAQuerySelector extends DelegatedEventTarget {\n\n constructor(config: HAQuerySelectorConfig = {}) {\n super();\n this._config = {\n ...DEFAULT_CONFIG,\n ...config\n };\n }\n\n private _config: HAQuerySelectorConfig;\n\n private _dialogTree: HomeAssistantElement;\n private _homeAssistantRootTree: HomeAssistantElement;\n private _homeAssistantResolverTree: HomeAssistantElement;\n\n private _haDialogElements: Record;\n private _haRootElements: Record;\n private _haResolverElements: Record;\n\n private _dialogsObserver: MutationObserver;\n private _dialogsContentObserver: MutationObserver;\n private _panelResolverObserver: MutationObserver;\n private _lovelaceObserver: MutationObserver;\n\n private _watchDialogsBinded: (mutations: MutationRecord[]) => void;\n private _watchDialogsContentBinded: (mutations: MutationRecord[]) => void;\n private _watchDashboardsBinded: (mutations: MutationRecord[]) => void;\n private _watchLovelaceBinded: (mutations: MutationRecord[]) => void;\n\n private _timestap: number;\n\n private _dispatchEvent(type: HAQuerySelectorEvent, detail?: Record) {\n this.dispatchEvent(\n new CustomEvent(type, { detail })\n );\n }\n\n private _updateDialogElements(\n dialogElement: (\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n ) = HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO\n ) {\n this._dialogTree = getAsyncElements(\n this._config,\n DIALOG_SELECTORS,\n this._haRootElements.HOME_ASSISTANT.element\n );\n const haDialogElements = flatHomeAssistantTree<\n Record\n >(\n HA_DIALOG_ELEMENT,\n this._dialogTree\n );\n haDialogElements.HA_DIALOG_CONTENT\n .element\n .then((dialogContent: Element) => {\n this._dialogsContentObserver.disconnect();\n this._dialogsContentObserver.observe(dialogContent, {\n childList: true\n });\n });\n this._haDialogElements = getFinalDialogFlatTree(\n haDialogElements,\n dialogElement\n );\n const MoreInfoDialogEventMapper = {\n [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]: HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN,\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN,\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]: HAQuerySelectorEvent.ON_LOVELACE_SETTINGS_DIALOG_OPEN,\n } as const;\n this._dispatchEvent(\n MoreInfoDialogEventMapper[dialogElement],\n this._haDialogElements\n );\n }\n\n private _updateRootElements() {\n this._homeAssistantRootTree = getAsyncElements(\n this._config,\n ROOT_SELECTORS\n );\n this._haRootElements = flatHomeAssistantTree<\n Record\n >(\n HA_ROOT_ELEMENT,\n this._homeAssistantRootTree\n );\n this._haRootElements[HA_ROOT_ELEMENT.HOME_ASSISTANT]\n .selector.$.element\n .then((shadowRoot: ShadowRoot): void => {\n this._dialogsObserver.disconnect();\n this._dialogsObserver.observe(shadowRoot, {\n childList: true\n });\n });\n }\n\n private _updateResolverElements() {\n // Avoid triggering onLovelacePanelLoad twice on yaml mode\n const timestamp = Date.now();\n if (timestamp - this._timestap < TIMESTAMP_THESHOLD) {\n return;\n }\n this._timestap = timestamp;\n this._homeAssistantResolverTree = getAsyncElements(\n this._config,\n RESOLVER_SELECTORS,\n this._haRootElements[HA_ROOT_ELEMENT.HA_DRAWER].element\n );\n this._haResolverElements = flatHomeAssistantTree<\n Record\n >(\n HA_RESOLVER_ELEMENT,\n this._homeAssistantResolverTree\n );\n this._haResolverElements[HA_RESOLVER_ELEMENT.PARTIAL_PANEL_RESOLVER]\n .element\n .then((partialPanelResolver: Element): void => {\n this._panelResolverObserver.disconnect();\n this._panelResolverObserver.observe(partialPanelResolver, {\n childList: true\n });\n });\n this._haResolverElements[HA_RESOLVER_ELEMENT.HA_PANEL_LOVELACE]\n .selector.$.element\n .then((lovelaceShadowRoot: ShadowRoot) => {\n this._lovelaceObserver.disconnect();\n this._lovelaceObserver.observe(lovelaceShadowRoot, {\n childList: true\n });\n });\n this._dispatchEvent(\n HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD,\n {\n ...this._haRootElements,\n ...this._haResolverElements\n }\n );\n }\n\n private _watchDialogs(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HA_MORE_INFO_DIALOG) {\n this._updateDialogElements();\n }\n });\n });\n }\n\n private _watchDialogsContent(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n const mappers = {\n [QUERY_SELECTORS.HA_MORE_INFO_DIALOG_INFO]: HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO,\n [QUERY_SELECTORS.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK,\n [QUERY_SELECTORS.HA_DIALOG_MORE_INFO_SETTINGS]: HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS,\n } as const;\n if (node.localName && node.localName in mappers) {\n const dialogElementQuery = node.localName as keyof typeof mappers;\n this._updateDialogElements(mappers[dialogElementQuery]);\n }\n });\n });\n }\n\n private _watchDashboards(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HA_PANEL_LOVELACE) {\n this._updateResolverElements();\n }\n });\n });\n }\n\n private _watchLovelace(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HUI_ROOT) {\n this._updateResolverElements();\n }\n });\n });\n }\n\n public listen() {\n\n this._watchDialogsBinded = this._watchDialogs.bind(this);\n this._watchDialogsContentBinded = this._watchDialogsContent.bind(this);\n this._watchDashboardsBinded = this._watchDashboards.bind(this);\n this._watchLovelaceBinded = this._watchLovelace.bind(this);\n\n this._dialogsObserver = new MutationObserver(this._watchDialogsBinded);\n this._dialogsContentObserver = new MutationObserver(this._watchDialogsContentBinded);\n this._panelResolverObserver = new MutationObserver(this._watchDashboardsBinded);\n this._lovelaceObserver = new MutationObserver(this._watchLovelaceBinded);\n\n this._updateRootElements();\n this._updateResolverElements();\n }\n \n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD}`,\n callback: HAQuerySelectorEventListener<\n OnLovelacePanelLoadDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceMoreInfoDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceHistoryAndLogBookDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_LOVELACE_SETTINGS_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceSettingsDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n super.addEventListener(type, callback, options);\n }\n\n}\n\nexport {\n HAQuerySelector,\n HAQuerySelectorEvent,\n ElementProps,\n OnLovelacePanelLoadDetail,\n OnLovelaceMoreInfoDialogOpenDetail,\n OnLovelaceHistoryAndLogBookDialogOpenDetail,\n OnLovelaceSettingsDialogOpenDetail\n};"],names:[],mappings:"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",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"379dccc172bfeff4401f1d5173f776ae5b4205cd"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore - cov_2m9674fn89=function(){return actualCoverage;};}return actualCoverage;}cov_2m9674fn89();var DelegatedEventTarget=(cov_2m9674fn89().s[0]++,function(){cov_2m9674fn89().f[0]++;function DelegatedEventTarget(){cov_2m9674fn89().f[1]++;cov_2m9674fn89().s[1]++;this.delegate=document.createDocumentFragment();}cov_2m9674fn89().s[2]++;DelegatedEventTarget.prototype.addEventListener=function(){cov_2m9674fn89().f[2]++;var _a;var args=(cov_2m9674fn89().s[3]++,[]);cov_2m9674fn89().s[4]++;for(var _i=(cov_2m9674fn89().s[5]++,0);_i;\n\ntype OnLovelaceMoreInfoDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n >,\n HAElement\n>;\n\ntype OnLovelaceHistoryAndLogBookDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n >,\n HAElement\n>;\n\ntype OnLovelaceSettingsDialogOpenDetail = Record<\n Exclude<\n keyof typeof HA_DIALOG_ELEMENT,\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK'\n >,\n HAElement\n>;\n\nclass DelegatedEventTarget implements EventTarget {\n private delegate = document.createDocumentFragment();\n addEventListener(...args: Parameters): void {\n this.delegate.addEventListener(...args);\n }\n dispatchEvent(...args: Parameters): boolean {\n return this.delegate.dispatchEvent(...args);\n }\n removeEventListener(...args: Parameters): void {\n return this.delegate.removeEventListener(...args);\n }\n}\n\nclass HAQuerySelector extends DelegatedEventTarget {\n\n constructor(config: HAQuerySelectorConfig = {}) {\n super();\n this._config = {\n ...DEFAULT_CONFIG,\n ...config\n };\n }\n\n private _config: HAQuerySelectorConfig;\n\n private _dialogTree: HomeAssistantElement;\n private _homeAssistantRootTree: HomeAssistantElement;\n private _homeAssistantResolverTree: HomeAssistantElement;\n\n private _haDialogElements: Record;\n private _haRootElements: Record;\n private _haResolverElements: Record;\n\n private _dialogsObserver: MutationObserver;\n private _dialogsContentObserver: MutationObserver;\n private _panelResolverObserver: MutationObserver;\n private _lovelaceObserver: MutationObserver;\n\n private _watchDialogsBinded: (mutations: MutationRecord[]) => void;\n private _watchDialogsContentBinded: (mutations: MutationRecord[]) => void;\n private _watchDashboardsBinded: (mutations: MutationRecord[]) => void;\n private _watchLovelaceBinded: (mutations: MutationRecord[]) => void;\n\n private _timestap: number;\n\n private _dispatchEvent(type: HAQuerySelectorEvent, detail?: Record) {\n this.dispatchEvent(\n new CustomEvent(type, { detail })\n );\n }\n\n private _updateDialogElements(\n dialogElement: (\n 'HA_MORE_INFO_DIALOG_INFO' |\n 'HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK' |\n 'HA_DIALOG_MORE_INFO_SETTINGS'\n ) = HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO\n ) {\n this._dialogTree = getAsyncElements(\n this._config,\n DIALOG_SELECTORS,\n this._haRootElements.HOME_ASSISTANT.element\n );\n const haDialogElements = flatHomeAssistantTree<\n Record\n >(\n HA_DIALOG_ELEMENT,\n this._dialogTree\n );\n haDialogElements.HA_DIALOG_CONTENT\n .element\n .then((dialogContent: Element) => {\n this._dialogsContentObserver.disconnect();\n this._dialogsContentObserver.observe(dialogContent, {\n childList: true\n });\n });\n this._haDialogElements = getFinalDialogFlatTree(\n haDialogElements,\n dialogElement\n );\n const MoreInfoDialogEventMapper = {\n [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]: HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN,\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN,\n [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]: HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN,\n } as const;\n this._dispatchEvent(\n MoreInfoDialogEventMapper[dialogElement],\n this._haDialogElements\n );\n }\n\n private _updateRootElements() {\n this._homeAssistantRootTree = getAsyncElements(\n this._config,\n ROOT_SELECTORS\n );\n this._haRootElements = flatHomeAssistantTree<\n Record\n >(\n HA_ROOT_ELEMENT,\n this._homeAssistantRootTree\n );\n this._haRootElements[HA_ROOT_ELEMENT.HOME_ASSISTANT]\n .selector.$.element\n .then((shadowRoot: ShadowRoot): void => {\n this._dialogsObserver.disconnect();\n this._dialogsObserver.observe(shadowRoot, {\n childList: true\n });\n });\n }\n\n private _updateResolverElements() {\n // Avoid triggering onLovelacePanelLoad twice on yaml mode\n const timestamp = Date.now();\n if (timestamp - this._timestap < TIMESTAMP_THESHOLD) {\n return;\n }\n this._timestap = timestamp;\n this._homeAssistantResolverTree = getAsyncElements(\n this._config,\n RESOLVER_SELECTORS,\n this._haRootElements[HA_ROOT_ELEMENT.HA_DRAWER].element\n );\n this._haResolverElements = flatHomeAssistantTree<\n Record\n >(\n HA_RESOLVER_ELEMENT,\n this._homeAssistantResolverTree\n );\n this._haResolverElements[HA_RESOLVER_ELEMENT.PARTIAL_PANEL_RESOLVER]\n .element\n .then((partialPanelResolver: Element): void => {\n this._panelResolverObserver.disconnect();\n if (partialPanelResolver) {\n this._panelResolverObserver.observe(partialPanelResolver, {\n childList: true\n });\n }\n });\n this._haResolverElements[HA_RESOLVER_ELEMENT.HA_PANEL_LOVELACE]\n .selector.$.element\n .then((lovelaceShadowRoot: ShadowRoot) => {\n this._lovelaceObserver.disconnect();\n if (lovelaceShadowRoot) {\n this._lovelaceObserver.observe(lovelaceShadowRoot, {\n childList: true\n });\n }\n });\n this._dispatchEvent(\n HAQuerySelectorEvent.ON_PANEL_LOAD,\n {\n ...this._haRootElements,\n ...this._haResolverElements\n }\n );\n }\n\n private _watchDialogs(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HA_MORE_INFO_DIALOG) {\n this._updateDialogElements();\n }\n });\n });\n }\n\n private _watchDialogsContent(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n const mappers = {\n [QUERY_SELECTORS.HA_MORE_INFO_DIALOG_INFO]: HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO,\n [QUERY_SELECTORS.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK,\n [QUERY_SELECTORS.HA_DIALOG_MORE_INFO_SETTINGS]: HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS,\n } as const;\n if (node.localName && node.localName in mappers) {\n const dialogElementQuery = node.localName as keyof typeof mappers;\n this._updateDialogElements(mappers[dialogElementQuery]);\n }\n });\n });\n }\n\n private _watchDashboards(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HA_PANEL_LOVELACE) {\n this._updateResolverElements();\n }\n });\n });\n }\n\n private _watchLovelace(mutations: MutationRecord[]) {\n mutations.forEach(({ addedNodes }): void => {\n addedNodes.forEach((node: Element): void => {\n if (node.localName === QUERY_SELECTORS.HUI_ROOT) {\n this._updateResolverElements();\n }\n });\n });\n }\n\n public listen() {\n\n this._watchDialogsBinded = this._watchDialogs.bind(this);\n this._watchDialogsContentBinded = this._watchDialogsContent.bind(this);\n this._watchDashboardsBinded = this._watchDashboards.bind(this);\n this._watchLovelaceBinded = this._watchLovelace.bind(this);\n\n this._dialogsObserver = new MutationObserver(this._watchDialogsBinded);\n this._dialogsContentObserver = new MutationObserver(this._watchDialogsContentBinded);\n this._panelResolverObserver = new MutationObserver(this._watchDashboardsBinded);\n this._lovelaceObserver = new MutationObserver(this._watchLovelaceBinded);\n\n this._updateRootElements();\n this._updateResolverElements();\n }\n \n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_PANEL_LOAD}`,\n callback: HAQuerySelectorEventListener<\n OnLovelacePanelLoadDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceMoreInfoDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceHistoryAndLogBookDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: `${HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN}`,\n callback: HAQuerySelectorEventListener<\n OnLovelaceSettingsDialogOpenDetail\n >,\n options?: boolean | AddEventListenerOptions\n ): void;\n public override addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n super.addEventListener(type, callback, options);\n }\n\n}\n\nexport {\n HAQuerySelector,\n HAQuerySelectorEvent,\n HAElement,\n OnLovelacePanelLoadDetail,\n OnLovelaceMoreInfoDialogOpenDetail,\n OnLovelaceHistoryAndLogBookDialogOpenDetail,\n OnLovelaceSettingsDialogOpenDetail\n};"],names:[],mappings:"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",file:null},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"2084d7bc9dc181bc6fbcf594939d72313aae28e3"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore + cov_2m9674fn89=function(){return actualCoverage;};}return actualCoverage;}cov_2m9674fn89();var DelegatedEventTarget=(cov_2m9674fn89().s[0]++,function(){cov_2m9674fn89().f[0]++;function DelegatedEventTarget(){cov_2m9674fn89().f[1]++;cov_2m9674fn89().s[1]++;this.delegate=document.createDocumentFragment();}cov_2m9674fn89().s[2]++;DelegatedEventTarget.prototype.addEventListener=function(){cov_2m9674fn89().f[2]++;var _a;var args=(cov_2m9674fn89().s[3]++,[]);cov_2m9674fn89().s[4]++;for(var _i=(cov_2m9674fn89().s[5]++,0);_i { +//This event will be triggered every time a lovelace dashboard is rendered +instance.addEventListener('onPanelLoad', ({ detail }) => { const { HEADER, HA_SIDEBAR, HOME_ASSISTANT, HA_PANEL_LOVELACE } = detail; @@ -71,7 +71,7 @@ instance.addEventListener('onLovelacePanelLoad', ({ detail }) => { }); // This event will be triggered every time a more-info dialog is open -instance.addEventListener('onLovelaceMoreInfoDialogOpen', ({ detail }) => { +instance.addEventListener('onMoreInfoDialogOpen', ({ detail }) => { // When the ha-more-info-info element is available in the DOM detail.HA_MORE_INFO_DIALOG_INFO.element.then((dialogInfo) => { @@ -130,7 +130,7 @@ new HAQuerySelector([config]) ### Public methods -`HAQuerySelector` instances count with a public method. When it is called, this method will trigger the `onLovelacePanelLoad` event inmediatly and start to watchg for changes in the `DOM` to trigger the proper events. +`HAQuerySelector` instances count with a public method. When it is called, this method will trigger the `onPanelLoad` event inmediatly and start to watchg for changes in the `DOM` to trigger the proper events. ```typescript instance.listen(); @@ -140,12 +140,12 @@ instance.listen(); The `HAQuerySelector` class extends from [EventTarget], so it is possible to add events listeners to it. It will dispatch events that will allow us to access the proper elements in the `DOM`. -#### onLovelacePanelLoad +#### onPanelLoad This event is triggered when [the listen method](#public-methods) is called or when the lovelace dashboard is rendered (every time that, after being abandoned the the lovelace dashboard containing your code you return to it). ```typescript -instance.addEventListener('onLovelacePanelLoad', function({detail}) { +instance.addEventListener('onPanelLoad', function({detail}) { /* detail: { HOME_ASSISTANT: {...}, @@ -159,9 +159,9 @@ instance.addEventListener('onLovelacePanelLoad', function({detail}) { The dispatched event is a [CustomEvent] and its `detail` property is an object containing the main `Home Assistant` `DOM` elements. All the properties and methods included in each element are Promises, so they are async and will be resolved when the element is ready to work with it. -##### onLovelacePanelLoad event elements +##### onPanelLoad event elements -This is the list of the elements available inside the `detail` property of the `onLovelacePanelLoad` event: +This is the list of the elements available inside the `detail` property of the `onPanelLoad` event: ![dom tree](https://raw.githubusercontent.com/elchininet/home-assistant-query-selector/master/images/dom-tree.png) @@ -184,12 +184,12 @@ All the available elements contain an `element` property and the `selector` prop | `element` | Promise that resolves in the respective `DOM` element | | `selector` | Object that allows one to query for elements using dot notation | -#### onLovelaceMoreInfoDialogOpen +#### onMoreInfoDialogOpen This event is triggered when a more-info dialog is open or when one returns to the main view of the more-info dialog from the `History` or `Settings` view inside the dialog. ```typescript -instance.addEventListener('onLovelaceMoreInfoDialogOpen', function({detail}) { +instance.addEventListener('onMoreInfoDialogOpen', function({detail}) { /* detail: { HA_MORE_INFO_DIALOG: {...}, @@ -203,9 +203,9 @@ instance.addEventListener('onLovelaceMoreInfoDialogOpen', function({detail}) { The dispatched event is a [CustomEvent] and its `detail` property is an object containing the main `Home Assistant` `DOM` elements inside a more-info dialog. All the properties and methods included in each element are Promises, so they are async and will be resolved when the element is ready to work with it. -##### onLovelaceMoreInfoDialogOpen event elements +##### onMoreInfoDialogOpen event elements -This is the list of the elements available inside the `detail` property of the `onLovelaceMoreInfoDialogOpen` event: +This is the list of the elements available inside the `detail` property of the `onMoreInfoDialogOpen` event: ![more-info dialog dom tree](./images/more-info-dialog-dom-tree.png) @@ -223,12 +223,12 @@ All the available elements contain an `element` property and three methods: | `element` | Promise that resolves in the respective `DOM` element | | `selector` | Object that allows one to query for elements using dot notation | -#### onLovelaceHistoryAndLogBookDialogOpen +#### onHistoryAndLogBookDialogOpen This event is triggered when the `History` view is opened from the header actions of a more-info dialog. ```typescript -instance.addEventListener('onLovelaceHistoryAndLogBookDialogOpen', function({detail}) { +instance.addEventListener('onHistoryAndLogBookDialogOpen', function({detail}) { /* detail: { HA_MORE_INFO_DIALOG: {...}, @@ -242,9 +242,9 @@ instance.addEventListener('onLovelaceHistoryAndLogBookDialogOpen', function({det The dispatched event is a [CustomEvent] and its `detail` property is an object containing the main `Home Assistant` `DOM` elements inside a more-info dialog `History` view. All the properties and methods included in each element are Promises, so they are async and will be resolved when the element is ready to work with it. -##### onLovelaceHistoryAndLogBookDialogOpen event elements +##### onHistoryAndLogBookDialogOpen event elements -This is the list of the elements available inside the `detail` property of the `onLovelaceHistoryAndLogBookDialogOpen` event: +This is the list of the elements available inside the `detail` property of the `onHistoryAndLogBookDialogOpen` event: ![more-info dialog dom tree](https://raw.githubusercontent.com/elchininet/home-assistant-query-selector/master/images/more-info-dialog-history-dom-tree.png) @@ -262,12 +262,12 @@ All the available elements contain an `element` property and three methods: | `element` | Promise that resolves in the respective `DOM` element | | `selector` | Object that allows one to query for elements using dot notation | -#### onLovelaceSettingsDialogOpen +#### onSettingsDialogOpen This event is triggered when the `Settings` view is opened from the header actions of a more-info dialog. ```typescript -instance.addEventListener('onLovelaceSettingsDialogOpen', function({detail}) { +instance.addEventListener('onSettingsDialogOpen', function({detail}) { /* detail: { HA_MORE_INFO_DIALOG: {...}, @@ -281,9 +281,9 @@ instance.addEventListener('onLovelaceSettingsDialogOpen', function({detail}) { The dispatched event is a [CustomEvent] and its `detail` property is an object containing the main `Home Assistant` `DOM` elements inside a more-info dialog `Settings` view. All the properties and methods included in each element are Promises, so they are async and will be resolved when the element is ready to work with it. -##### onLovelaceSettingsDialogOpen event elements +##### onSettingsDialogOpen event elements -This is the list of the elements available inside the `detail` property of the `onLovelaceSettingsDialogOpen` event: +This is the list of the elements available inside the `detail` property of the `onSettingsDialogOpen` event: ![more-info dialog dom tree](https://raw.githubusercontent.com/elchininet/home-assistant-query-selector/master/images/more-info-dialog-settings-dom-tree.png) diff --git a/cypress/e2e/lovelace.e2e.spec.cy.ts b/cypress/e2e/lovelace.e2e.spec.cy.ts index 798a226..1d6ed0d 100644 --- a/cypress/e2e/lovelace.e2e.spec.cy.ts +++ b/cypress/e2e/lovelace.e2e.spec.cy.ts @@ -16,10 +16,10 @@ describe('HAQuerySelector for lovelace dashboards', () => { .window() .then((win) => { instance = new win.HAQuerySelector(); - const onLovelacePanelLoad = cy.stub().as('onLovelacePanelLoad'); + const onPanelLoad = cy.stub().as('onPanelLoad'); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, - onLovelacePanelLoad + HAQuerySelectorEvent.ON_PANEL_LOAD, + onPanelLoad ); instance.listen(); }); @@ -27,10 +27,10 @@ describe('HAQuerySelector for lovelace dashboards', () => { it('All the elements should exist', () => { cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .should('be.calledOnce'); cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .its('lastCall.args.0.detail') .then((elements) => { expect(elements).to.have.keys([ @@ -52,7 +52,7 @@ describe('HAQuerySelector for lovelace dashboards', () => { .window() .then((win) => { cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .its('lastCall.args.0.detail') .then((elements) => { expect(elements.HOME_ASSISTANT.element).to.be.instanceOf(win.Promise); @@ -77,7 +77,7 @@ describe('HAQuerySelector for lovelace dashboards', () => { const doc = win.document; cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .its('lastCall.args.0.detail') .then(async (elements) => { @@ -206,7 +206,7 @@ describe('HAQuerySelector for lovelace dashboards', () => { const doc = win.document; cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .its('lastCall.args.0.detail') .then(async (elements) => { @@ -274,15 +274,15 @@ describe('HAQuerySelector for lovelace dashboards', () => { retries: 1, delay: 2 }); - const onLovelacePanelLoad = cy.stub().as('localOnLovelacePanelLoad'); + const onPanelLoad = cy.stub().as('localOnPanelLoad'); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, - onLovelacePanelLoad + HAQuerySelectorEvent.ON_PANEL_LOAD, + onPanelLoad ); instance.listen(); cy - .get('@localOnLovelacePanelLoad') + .get('@localOnPanelLoad') .its('lastCall.args.0.detail') .then(async (elements) => { expect( @@ -304,7 +304,7 @@ describe('HAQuerySelector for lovelace dashboards', () => { }); - it('onLovelacePanelLoad should be triggered when returning to the dashboard', () => { + it('onPanelLoad should be triggered when returning to the dashboard', () => { cy.get('home-assistant') .shadow() @@ -323,7 +323,7 @@ describe('HAQuerySelector for lovelace dashboards', () => { cy.wait(1000); cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .should('not.be.calledTwice'); cy @@ -334,17 +334,18 @@ describe('HAQuerySelector for lovelace dashboards', () => { cy.wait(1000); cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .should('be.calledTwice'); cy.wait(1000); cy.wrap(null).then(() => { instance.listen(); + return cy.wait(1000); }); cy - .get('@onLovelacePanelLoad') + .get('@onPanelLoad') .should('be.calledThrice'); }); @@ -355,27 +356,27 @@ describe('HAQuerySelector for lovelace dashboards', () => { .window() .then((win) => { const instance = new win.HAQuerySelector(); - const onLovelacePanelLoad = cy.stub().as('onLovelacePanelLoadLocal'); + const onPanelLoad = cy.stub().as('onPanelLoadLocal'); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, - onLovelacePanelLoad + HAQuerySelectorEvent.ON_PANEL_LOAD, + onPanelLoad ); instance.listen(); cy - .get('@onLovelacePanelLoadLocal') + .get('@onPanelLoadLocal') .should('be.calledOnce'); instance.removeEventListener( - HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, - onLovelacePanelLoad + HAQuerySelectorEvent.ON_PANEL_LOAD, + onPanelLoad ); instance.listen(); cy - .get('@onLovelacePanelLoadLocal') + .get('@onPanelLoadLocal') .should('not.be.calledTwice'); }); diff --git a/cypress/e2e/more-info-dialogs.e2e.spec.cy.ts b/cypress/e2e/more-info-dialogs.e2e.spec.cy.ts index 029d17e..6a23a9c 100644 --- a/cypress/e2e/more-info-dialogs.e2e.spec.cy.ts +++ b/cypress/e2e/more-info-dialogs.e2e.spec.cy.ts @@ -54,20 +54,20 @@ describe('HAQuerySelector for more-info dialogs', () => { .window() .then((win) => { instance = new win.HAQuerySelector(); - const onLovelaceMoreInfoDialogOpen = cy.stub().as('onLovelaceMoreInfoDialogOpen'); - const onLovelaceHistoryAndLogBookDialogOpen = cy.stub().as('onLovelaceHistoryAndLogBookDialogOpen'); - const onLovelaceSettingsDialogOpen = cy.stub().as('onLovelaceSettingsDialogOpen'); + const onMoreInfoDialogOpen = cy.stub().as('onMoreInfoDialogOpen'); + const onHistoryAndLogBookDialogOpen = cy.stub().as('onHistoryAndLogBookDialogOpen'); + const onSettingsDialogOpen = cy.stub().as('onSettingsDialogOpen'); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN, - onLovelaceMoreInfoDialogOpen + HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN, + onMoreInfoDialogOpen ); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN, - onLovelaceHistoryAndLogBookDialogOpen + HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN, + onHistoryAndLogBookDialogOpen ); instance.addEventListener( - HAQuerySelectorEvent.ON_LOVELACE_SETTINGS_DIALOG_OPEN, - onLovelaceSettingsDialogOpen + HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN, + onSettingsDialogOpen ); instance.listen(); }); @@ -79,7 +79,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .get('body') .then((body) => { - if (body.attr('style').includes('overflow')) { + if (body.attr('style')?.includes('overflow')) { cy .get('@dialogHeaderButtons') @@ -96,15 +96,15 @@ describe('HAQuerySelector for more-info dialogs', () => { // At the beginning none of the event should be triggered cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('not.be.called'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('not.be.called'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('not.be.called'); // Open a more-info dialog @@ -112,22 +112,22 @@ describe('HAQuerySelector for more-info dialogs', () => { .get('@card') .click(); - // Only onLovelaceMoreInfoDialogOpen should be triggered + // Only onMoreInfoDialogOpen should be triggered cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('not.be.called'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('not.be.called'); - // Check the shape of the onLovelaceMoreInfoDialogOpen + // Check the shape of the onMoreInfoDialogOpen cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements).to.have.keys([ @@ -144,22 +144,22 @@ describe('HAQuerySelector for more-info dialogs', () => { .eq(1) .click(); - // Only the onLovelaceHistoryAndLogBookDialogOpen should be triggered + // Only the onHistoryAndLogBookDialogOpen should be triggered cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('not.be.called'); - // Check the shape of the onLovelaceHistoryAndLogBookDialogOpen + // Check the shape of the onHistoryAndLogBookDialogOpen cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements).to.have.keys([ @@ -176,17 +176,17 @@ describe('HAQuerySelector for more-info dialogs', () => { .find('ha-icon-button-prev') .click(); - // onLovelaceMoreInfoDialogOpen should be triggered twice + // onMoreInfoDialogOpen should be triggered twice cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('be.calledTwice'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('not.be.called'); @@ -196,22 +196,22 @@ describe('HAQuerySelector for more-info dialogs', () => { .eq(2) .click(); - // Only onLovelaceSettingsDialogOpen should be triggered + // Only onSettingsDialogOpen should be triggered cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('be.calledTwice'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('be.calledOnce'); - // Check the shape of the onLovelaceSettingsDialogOpen + // Check the shape of the onSettingsDialogOpen cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements).to.have.keys([ @@ -228,17 +228,17 @@ describe('HAQuerySelector for more-info dialogs', () => { .find('ha-icon-button-prev') .click(); - // onLovelaceMoreInfoDialogOpen should be triggered thrice + // onMoreInfoDialogOpen should be triggered thrice cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .should('be.calledThrice'); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .should('be.calledOnce'); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .should('be.calledOnce'); }); @@ -254,7 +254,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements.HA_MORE_INFO_DIALOG.element).to.be.instanceOf(win.Promise); @@ -270,7 +270,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements.HA_MORE_INFO_DIALOG.element).to.be.instanceOf(win.Promise); @@ -292,7 +292,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .its('lastCall.args.0.detail') .then((elements) => { expect(elements.HA_MORE_INFO_DIALOG.element).to.be.instanceOf(win.Promise); @@ -325,7 +325,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceMoreInfoDialogOpen') + .get('@onMoreInfoDialogOpen') .its('lastCall.args.0.detail') .then(async (elements) => { @@ -380,7 +380,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceHistoryAndLogBookDialogOpen') + .get('@onHistoryAndLogBookDialogOpen') .its('lastCall.args.0.detail') .then(async (elements) => { @@ -410,7 +410,7 @@ describe('HAQuerySelector for more-info dialogs', () => { .click(); cy - .get('@onLovelaceSettingsDialogOpen') + .get('@onSettingsDialogOpen') .its('lastCall.args.0.detail') .then(async (elements) => { diff --git a/cypress/e2e/non-lovelace.spec.cy.ts b/cypress/e2e/non-lovelace.spec.cy.ts new file mode 100644 index 0000000..43244e9 --- /dev/null +++ b/cypress/e2e/non-lovelace.spec.cy.ts @@ -0,0 +1,67 @@ +import { HAQuerySelectorEvent } from '../../src'; + +describe('HAQuerySelector for non-lovelace dashboards', () => { + + it('Lovelace elements should be null', () => { + + cy.session('home-assistant', () => { + + cy + .visit('http://localhost:8123/history') + .location('pathname') + .should('eq', '/history'); + + }); + + cy.waitUntil(() => ( + cy + .get('home-assistant') + .shadow() + .find('home-assistant-main') + .shadow() + .find('ha-drawer partial-panel-resolver ha-panel-history') + .shadow() + .find('ha-top-app-bar-fixed') + .shadow() + )); + + cy + .window() + .then((win) => { + const instance = new win.HAQuerySelector({ + retries: 5, + delay: 5 + }); + const onPanelLoad = cy.stub().as('onPanelLoad'); + instance.addEventListener( + HAQuerySelectorEvent.ON_PANEL_LOAD, + onPanelLoad + ); + instance.listen(); + }); + + cy + .get('@onPanelLoad') + .should('be.calledOnce'); + + cy + .get('@onPanelLoad') + .its('lastCall.args.0.detail') + .then(async (elements) => { + + expect( + await elements.HA_PANEL_LOVELACE.element + ).to.null; + + expect( + await elements.HUI_ROOT.element + ).to.null; + + expect( + await elements.HEADER.element + ).to.null; + }); + + }); + +}); \ No newline at end of file diff --git a/package.json b/package.json index 5528565..6cceac2 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "test:open": "cypress open", "test:ci": "yarn demo:ha && yarn test:run && yarn coverage:report && yarn stop:ha", "test:copy": "cp test/index.js .hass/config/www/home-assistant-query-selector-tests.js", - "start:ha": "docker run --rm -d -p8123:8123 -v ${PWD}/.hass/config:/config homeassistant/home-assistant:2023.12.3", - "stop:ha": "docker stop $(docker ps -a -q --filter ancestor=homeassistant/home-assistant:2023.12.3) || true", + "start:ha": "docker run --rm -d -p8123:8123 -v ${PWD}/.hass/config:/config homeassistant/home-assistant:2023.12.4", + "stop:ha": "docker stop $(docker ps -a -q --filter ancestor=homeassistant/home-assistant:2023.12.4) || true", "demo:ha": "yarn build && yarn test:copy && yarn start:ha", "prepare": "yarn build", "prepublishOnly": "yarn lint && yarn test:ts && yarn test:ci", @@ -62,7 +62,7 @@ "@types/eslint": "^8.56.0", "@typescript-eslint/eslint-plugin": "^6.16.0", "@typescript-eslint/parser": "^6.16.0", - "cypress": "^13.6.2", + "cypress": "13.6.1", "cypress-wait-until": "^3.0.1", "eslint": "^8.56.0", "rollup": "^4.9.2", diff --git a/src/constants/index.ts b/src/constants/index.ts index ff60f68..0a1cf9a 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -33,8 +33,8 @@ export enum HA_DIALOG_ELEMENT { } export enum HAQuerySelectorEvent { - ON_LOVELACE_PANEL_LOAD = 'onLovelacePanelLoad', - ON_LOVELACE_MORE_INFO_DIALOG_OPEN = 'onLovelaceMoreInfoDialogOpen', - ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN = 'onLovelaceHistoryAndLogBookDialogOpen', - ON_LOVELACE_SETTINGS_DIALOG_OPEN = 'onLovelaceSettingsDialogOpen' + ON_PANEL_LOAD = 'onPanelLoad', + ON_MORE_INFO_DIALOG_OPEN = 'onMoreInfoDialogOpen', + ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN = 'onHistoryAndLogBookDialogOpen', + ON_SETTINGS_DIALOG_OPEN = 'onSettingsDialogOpen' } \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 3d4c1f0..ab93c51 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,6 @@ import { HAQuerySelectorConfig, HomeAssistantElement, HAElement, - ElementProps, HAQuerySelectorEventListener } from '@types'; import { @@ -140,9 +139,9 @@ class HAQuerySelector extends DelegatedEventTarget { dialogElement ); const MoreInfoDialogEventMapper = { - [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]: HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN, - [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN, - [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]: HAQuerySelectorEvent.ON_LOVELACE_SETTINGS_DIALOG_OPEN, + [HA_DIALOG_ELEMENT.HA_MORE_INFO_DIALOG_INFO]: HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN, + [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_HISTORY_AND_LOGBOOK]: HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN, + [HA_DIALOG_ELEMENT.HA_DIALOG_MORE_INFO_SETTINGS]: HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN, } as const; this._dispatchEvent( MoreInfoDialogEventMapper[dialogElement], @@ -193,20 +192,24 @@ class HAQuerySelector extends DelegatedEventTarget { .element .then((partialPanelResolver: Element): void => { this._panelResolverObserver.disconnect(); - this._panelResolverObserver.observe(partialPanelResolver, { - childList: true - }); + if (partialPanelResolver) { + this._panelResolverObserver.observe(partialPanelResolver, { + childList: true + }); + } }); this._haResolverElements[HA_RESOLVER_ELEMENT.HA_PANEL_LOVELACE] .selector.$.element .then((lovelaceShadowRoot: ShadowRoot) => { this._lovelaceObserver.disconnect(); - this._lovelaceObserver.observe(lovelaceShadowRoot, { - childList: true - }); + if (lovelaceShadowRoot) { + this._lovelaceObserver.observe(lovelaceShadowRoot, { + childList: true + }); + } }); this._dispatchEvent( - HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, + HAQuerySelectorEvent.ON_PANEL_LOAD, { ...this._haRootElements, ...this._haResolverElements @@ -277,28 +280,28 @@ class HAQuerySelector extends DelegatedEventTarget { } public override addEventListener( - type: `${HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD}`, + type: `${HAQuerySelectorEvent.ON_PANEL_LOAD}`, callback: HAQuerySelectorEventListener< OnLovelacePanelLoadDetail >, options?: boolean | AddEventListenerOptions ): void; public override addEventListener( - type: `${HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN}`, + type: `${HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN}`, callback: HAQuerySelectorEventListener< OnLovelaceMoreInfoDialogOpenDetail >, options?: boolean | AddEventListenerOptions ): void; public override addEventListener( - type: `${HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN}`, + type: `${HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN}`, callback: HAQuerySelectorEventListener< OnLovelaceHistoryAndLogBookDialogOpenDetail >, options?: boolean | AddEventListenerOptions ): void; public override addEventListener( - type: `${HAQuerySelectorEvent.ON_LOVELACE_SETTINGS_DIALOG_OPEN}`, + type: `${HAQuerySelectorEvent.ON_SETTINGS_DIALOG_OPEN}`, callback: HAQuerySelectorEventListener< OnLovelaceSettingsDialogOpenDetail >, @@ -317,7 +320,7 @@ class HAQuerySelector extends DelegatedEventTarget { export { HAQuerySelector, HAQuerySelectorEvent, - ElementProps, + HAElement, OnLovelacePanelLoadDetail, OnLovelaceMoreInfoDialogOpenDetail, OnLovelaceHistoryAndLogBookDialogOpenDetail, diff --git a/src/utilities/index.ts b/src/utilities/index.ts index 7e9d1cf..563bf54 100644 --- a/src/utilities/index.ts +++ b/src/utilities/index.ts @@ -47,11 +47,14 @@ export const getAsyncElements = ( const element: Promise = fromElement ? fromElement.then((element: Element | null) => { - return asyncQuerySelector( - element, - getQuery(nodeDescriptor.selector, insideShadowRoot), - config - ); + if (element) { + return asyncQuerySelector( + element, + getQuery(nodeDescriptor.selector, insideShadowRoot), + config + ); + } + return null; }) : asyncQuerySelector(nodeDescriptor.selector, config); diff --git a/yarn.lock b/yarn.lock index 86d8ba8..cc27eab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1095,10 +1095,10 @@ cypress-wait-until@^3.0.1: resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.1.tgz#6a697a600f4fb8cd2897489a15fda77c9857abec" integrity sha512-kpoa8yL6Bi/JNsThGBbrrm7g4SNzYyBUv9M5pF6/NTVm/ClY0HnJzeuWnHiAUZKIZ5l86Oedb12wQyjx7/CWPg== -cypress@^13.6.2: - version "13.6.2" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.2.tgz#c70df09db0a45063298b3cecba2fa21109768e08" - integrity sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ== +cypress@13.6.1: + version "13.6.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.1.tgz#c5f714f08551666ed3ac1fa95718eabb23a416df" + integrity sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw== dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4"