custom-card-helpers 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/.github/workflows/release.yml +98 -0
  2. package/.github/workflows/test.yml +38 -0
  3. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/08e4736baa3e381bb4b41b2da691c7791d8d436b +1 -0
  4. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/0b5e4d9bc323a2f30cef9bbbab42c5e6d263f506 +1 -0
  5. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/222319bc27e7218723e642e7fd7583d0b16507c9 +1 -0
  6. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/39747694d8befd1daf6cf78f5e0dacdaf4d307c0 +1 -0
  7. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/461e6586e8816c103a3b444550496747e971bafe +1 -0
  8. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/606f8c66d7aa1cd8895d105c92ca26c7a2ac4e66 +1 -0
  9. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/745e32e140a99991e963d8ce392c799e32a78d88 +1 -0
  10. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/7b5f383871f5b1e9316e97d2b6fe1763c250ed43 +1 -0
  11. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/8a48761a566c86666480b0ae4e8eac6d7daeecdd +1 -0
  12. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/91e4b126b8040a69fdd2ce53913e8462930e7cdd +1 -0
  13. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/99012e620928ede08b0fe33aaa9265147c7fa397 +1 -0
  14. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/a4305345c6caf123b29af76d6abbd43f62352285 +1 -0
  15. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/c54a683dbd758359f7a05d98c489dfce86caa777 +1 -0
  16. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/d4d52874a80a62d39cc2c9fcf324f9a750015eb8 +1 -0
  17. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/code/cache_/d8d4ba3a431846a66940b107d21ae4ddc6d2ca81 +1 -0
  18. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/08e4736baa3e381bb4b41b2da691c7791d8d436b +1 -0
  19. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/0b5e4d9bc323a2f30cef9bbbab42c5e6d263f506 +1 -0
  20. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/222319bc27e7218723e642e7fd7583d0b16507c9 +1 -0
  21. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/39747694d8befd1daf6cf78f5e0dacdaf4d307c0 +1 -0
  22. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/461e6586e8816c103a3b444550496747e971bafe +1 -0
  23. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/606f8c66d7aa1cd8895d105c92ca26c7a2ac4e66 +1 -0
  24. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/745e32e140a99991e963d8ce392c799e32a78d88 +1 -0
  25. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/7b5f383871f5b1e9316e97d2b6fe1763c250ed43 +1 -0
  26. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/8a48761a566c86666480b0ae4e8eac6d7daeecdd +1 -0
  27. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/91e4b126b8040a69fdd2ce53913e8462930e7cdd +1 -0
  28. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/99012e620928ede08b0fe33aaa9265147c7fa397 +1 -0
  29. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/a4305345c6caf123b29af76d6abbd43f62352285 +1 -0
  30. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/c54a683dbd758359f7a05d98c489dfce86caa777 +1 -0
  31. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/d4d52874a80a62d39cc2c9fcf324f9a750015eb8 +1 -0
  32. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/semanticDiagnostics/cache_/d8d4ba3a431846a66940b107d21ae4ddc6d2ca81 +1 -0
  33. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/08e4736baa3e381bb4b41b2da691c7791d8d436b +1 -0
  34. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/0b5e4d9bc323a2f30cef9bbbab42c5e6d263f506 +1 -0
  35. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/222319bc27e7218723e642e7fd7583d0b16507c9 +1 -0
  36. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/39747694d8befd1daf6cf78f5e0dacdaf4d307c0 +1 -0
  37. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/461e6586e8816c103a3b444550496747e971bafe +1 -0
  38. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/606f8c66d7aa1cd8895d105c92ca26c7a2ac4e66 +1 -0
  39. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/745e32e140a99991e963d8ce392c799e32a78d88 +1 -0
  40. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/7b5f383871f5b1e9316e97d2b6fe1763c250ed43 +1 -0
  41. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/8a48761a566c86666480b0ae4e8eac6d7daeecdd +1 -0
  42. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/91e4b126b8040a69fdd2ce53913e8462930e7cdd +1 -0
  43. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/99012e620928ede08b0fe33aaa9265147c7fa397 +1 -0
  44. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/a4305345c6caf123b29af76d6abbd43f62352285 +1 -0
  45. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/c54a683dbd758359f7a05d98c489dfce86caa777 +1 -0
  46. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/d4d52874a80a62d39cc2c9fcf324f9a750015eb8 +1 -0
  47. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/syntacticDiagnostics/cache_/d8d4ba3a431846a66940b107d21ae4ddc6d2ca81 +1 -0
  48. package/{dist/lovelace-types.d.ts → .rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/0330a94cf5d54d5cbfe815df482192cb1f5e3ec6} +0 -0
  49. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/03927c786a09b02e1ffc074cd866e9aba06ad0fd +0 -0
  50. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/0e0c5a7d3120324d09366b256ff25777f883c40c +0 -0
  51. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/13732d03861c4ad40caf58800c5f204d3f305143 +0 -0
  52. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/179a2a81b8c1fe812531bc3afe9d529fdbe8e71e +0 -0
  53. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/18b17fe6f00b7cdbd471c2c015ad16635690f9ac +0 -0
  54. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/19d213616239c49acda39e7a8b56acdb116dabc3 +0 -0
  55. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/1b3f1afd18a4b55a33065e860e5999ec32c3cbf8 +0 -0
  56. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/211e26ae08ee52f02645488896b51bf1400d6dd7 +0 -0
  57. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/2cae0c26b5183fd719c47cd3349b3bf92c335493 +0 -0
  58. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/347438311bdd6958d3b38bd627fd2d09de6422e3 +0 -0
  59. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/35b7d565fb3883ca454fde2170dcbd05a3f787af +0 -0
  60. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/3b8a40a878f55dbbd76acf80859e55f2442fa666 +0 -0
  61. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/3dc32d1cdd29fc9d600f40ff8ca9224cc8c2aa3e +0 -0
  62. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/3dd58c678388fefc96aeadc279524e380ec78b7c +0 -0
  63. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4262fd7f29b9eb992d645228a8f590ea73a32bde +0 -0
  64. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/46ce738aa15a11a6fd236f518aa3d2a39c97c449 +0 -0
  65. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4752fe6c96dcd6e61523e5c13b0f3bbb93644dfa +0 -0
  66. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4a42c931cc39bdd0acb520a26218d9ddd05cbe93 +0 -0
  67. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4afef8f417a9cd6b09753082ba7d17d0ec0d820c +0 -0
  68. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4c62edec3cfcda8d92246f2f1d4f45464492596a +0 -0
  69. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/4e9286388180527c6f9aeec262656a184f5145b8 +0 -0
  70. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/5412e9e8b77fab1159398139b3c01c3d07568f22 +0 -0
  71. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/57815321464d368c15851e2260664fe28f9fdd80 +0 -0
  72. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/599deaac8d2395978afdfb668b31d39491a5143f +0 -0
  73. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/62bca9327d0ed5df31b7be97ab8b6cd485a85c78 +0 -0
  74. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/6d42fc5d3b60366a7f6436413d67fc4383d58c68 +0 -0
  75. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/72f0265e2548fb28235dfc0b48f7a4f9e7c8ab09 +0 -0
  76. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/73a78745b8114f713a0da57205df2c3251526dad +0 -0
  77. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/76761c9aaef398335d84cc28c4b696de9d3f24c5 +0 -0
  78. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/76e05fd9062b6f87416e0c4f24e92fe6ba682c13 +0 -0
  79. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/7d3f990de3dea4aae556f0e1900f905bb3f5ff81 +0 -0
  80. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/87c789f0dff4c5990502c729240bc0b2afca9382 +0 -0
  81. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/8bcdfd4fd989b0d8d58317f76e258ce0ce319e08 +0 -0
  82. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/90bb8aaf997dfe4602b390ca8005c7aa7a66011f +0 -0
  83. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/945300d29ff3cef13ce2d1041f0ff35e87275400 +0 -0
  84. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/a7792d5bb43716c0fede84aa1608cb9df5baa8f0 +0 -0
  85. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/a9ed07c2f08bcd3faa7be18e931467885e145303 +0 -0
  86. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/b03a7a597f19ce80c06c746e0829dd7b13dfc390 +0 -0
  87. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/b9e20cd1c1db1f975403ff603b5265ee5484a294 +0 -0
  88. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/be65f4dc887272d1594f977379a188f26efeeb37 +0 -0
  89. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/ce6629b08cb91f33095e9b87c2dce64953629583 +0 -0
  90. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/e0fc62c33e003f451d30e63023795fe7a4b63cd6 +0 -0
  91. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/e5cc5e78959b3a9d966e737d8e19791f5f2861f6 +0 -0
  92. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/e93da894c0776726f6c1301c1c32ba293b3bbeb1 +0 -0
  93. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/e97b2f858600ab06cd0f58d3fdf20a9470ef03ca +0 -0
  94. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/eb2ecaa377bd8e7b0dd29f0b6461abefe7c725a7 +0 -0
  95. package/.rts2_cache_cjs/rpt2_268d8df7bd661c0dbd1e3f90b7ddf9706bcc16c6/types/cache_/fab1ecafeb86fac61d8427044a84cef8e502f41c +0 -0
  96. package/dist/binary_sensor_icon.d.ts +1 -1
  97. package/dist/compute-state-display.d.ts +2 -1
  98. package/dist/const.d.ts +1 -1
  99. package/dist/datetime/duration_to_seconds.d.ts +6 -1
  100. package/dist/datetime/format_date.d.ts +50 -1
  101. package/dist/datetime/format_date_time.d.ts +22 -1
  102. package/dist/datetime/format_time.d.ts +22 -1
  103. package/dist/datetime/relative_time.d.ts +7 -5
  104. package/dist/datetime/seconds_to_duration.d.ts +1 -1
  105. package/dist/datetime/use_am_pm.d.ts +7 -0
  106. package/dist/fire-event.d.ts +5 -5
  107. package/dist/format-number.d.ts +12 -2
  108. package/dist/handle-action.d.ts +1 -1
  109. package/dist/has-changed.d.ts +1 -1
  110. package/dist/index.js +1 -1
  111. package/dist/index.js.map +1 -1
  112. package/dist/index.m.js +1 -1
  113. package/dist/index.m.js.map +1 -1
  114. package/dist/index.modern.js +2 -0
  115. package/dist/index.modern.js.map +1 -0
  116. package/dist/index.umd.js +1 -1
  117. package/dist/index.umd.js.map +1 -1
  118. package/dist/types.d.ts +37 -21
  119. package/docs/.nojekyll +1 -0
  120. package/docs/assets/highlight.css +29 -0
  121. package/docs/assets/icons.css +1043 -0
  122. package/docs/assets/{images/icons.png → icons.png} +0 -0
  123. package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  124. package/docs/assets/main.js +52 -0
  125. package/docs/assets/search.js +1 -0
  126. package/docs/assets/style.css +1388 -0
  127. package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  128. package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  129. package/docs/enums/NumberFormat.html +1 -0
  130. package/docs/enums/TimeFormat.html +1 -0
  131. package/docs/index.html +10 -244
  132. package/docs/interfaces/ActionHandlerDetail.html +1 -0
  133. package/docs/interfaces/ActionHandlerOptions.html +1 -0
  134. package/docs/interfaces/BaseActionConfig.html +3 -0
  135. package/docs/interfaces/CallServiceActionConfig.html +1 -0
  136. package/docs/interfaces/ConfirmationRestrictionConfig.html +1 -0
  137. package/docs/interfaces/Credential.html +1 -0
  138. package/docs/interfaces/CurrentUser.html +1 -0
  139. package/docs/interfaces/CustomActionConfig.html +1 -0
  140. package/docs/interfaces/EntitiesCardEntityConfig.html +1 -0
  141. package/docs/interfaces/EntityConfig.html +1 -0
  142. package/docs/interfaces/FrontendLocaleData.html +1 -0
  143. package/docs/interfaces/HASSDomEvent.html +29 -0
  144. package/docs/interfaces/HomeAssistant.html +1 -0
  145. package/docs/interfaces/LovelaceBadgeConfig.html +1 -0
  146. package/docs/interfaces/LovelaceCard.html +291 -0
  147. package/docs/interfaces/LovelaceCardConfig.html +1 -0
  148. package/docs/interfaces/LovelaceCardEditor.html +291 -0
  149. package/docs/interfaces/LovelaceConfig.html +1 -0
  150. package/docs/interfaces/LovelaceElementConfigBase.html +1 -0
  151. package/docs/interfaces/LovelaceViewConfig.html +1 -0
  152. package/docs/interfaces/MFAModule.html +1 -0
  153. package/docs/interfaces/MoreInfoActionConfig.html +1 -0
  154. package/docs/interfaces/NavigateActionConfig.html +1 -0
  155. package/docs/interfaces/NoActionConfig.html +1 -0
  156. package/docs/interfaces/Panel.html +1 -0
  157. package/docs/interfaces/Panels.html +1 -0
  158. package/docs/interfaces/Resources.html +1 -0
  159. package/docs/interfaces/RestrictionConfig.html +1 -0
  160. package/docs/interfaces/ServiceCallRequest.html +1 -0
  161. package/docs/interfaces/ShowViewConfig.html +1 -0
  162. package/docs/interfaces/Theme.html +1 -0
  163. package/docs/interfaces/Themes.html +1 -0
  164. package/docs/interfaces/ToggleActionConfig.html +1 -0
  165. package/docs/interfaces/ToggleMenuActionConfig.html +1 -0
  166. package/docs/interfaces/Translation.html +1 -0
  167. package/docs/interfaces/UrlActionConfig.html +1 -0
  168. package/docs/interfaces/Window.html +1 -0
  169. package/docs/modules.html +151 -0
  170. package/package.json +11 -11
  171. package/src/binary_sensor_icon.ts +32 -23
  172. package/src/compute-rtl.ts +1 -1
  173. package/src/compute-state-display.ts +100 -39
  174. package/src/const.ts +1 -1
  175. package/src/cover_icon.ts +5 -5
  176. package/src/create-thing.ts +3 -1
  177. package/src/datetime/duration_to_seconds.ts +6 -1
  178. package/src/datetime/format_date.ts +119 -20
  179. package/src/datetime/format_date_time.ts +70 -22
  180. package/src/datetime/format_time.ts +57 -17
  181. package/src/datetime/relative_time.ts +23 -45
  182. package/src/datetime/seconds_to_duration.ts +3 -1
  183. package/src/datetime/timer_time_remaining.ts +1 -1
  184. package/src/datetime/use_am_pm.ts +22 -0
  185. package/src/domain_icons.ts +52 -52
  186. package/src/format-number.ts +113 -53
  187. package/src/handle-action.ts +1 -1
  188. package/src/handle-click.ts +1 -1
  189. package/src/has-changed.ts +1 -1
  190. package/src/input_datetime_icon.ts +2 -2
  191. package/src/sensor_icon.ts +19 -19
  192. package/src/translations/localize.ts +29 -46
  193. package/src/types.ts +47 -22
  194. package/tsconfig.json +11 -0
  195. package/dist/index.mjs +0 -2
  196. package/dist/index.mjs.map +0 -1
  197. package/dist/long-press-directive.d.ts +0 -10
  198. package/dist/translations/localize.d.ts +0 -41
  199. package/docs/assets/css/main.css +0 -2679
  200. package/docs/assets/js/main.js +0 -1
  201. package/docs/assets/js/search.json +0 -1
  202. package/docs/globals.html +0 -288
  203. package/docs/interfaces/_fire_event_.__global.hassdomevents.html +0 -140
  204. package/docs/interfaces/_fire_event_.hassdomevent.html +0 -708
  205. package/docs/interfaces/_haptic_.__global.globaleventhandlerseventmap.html +0 -175
  206. package/docs/interfaces/_haptic_.__global.hassdomevents.html +0 -175
  207. package/docs/interfaces/_navigate_.__global.hassdomevents.html +0 -180
  208. package/docs/interfaces/_translations_localize_.formatstype.html +0 -204
  209. package/docs/interfaces/_translations_localize_.formattype.html +0 -148
  210. package/docs/interfaces/_types_.__global.hassdomevents.html +0 -339
  211. package/docs/interfaces/_types_.actionhandlerdetail.html +0 -280
  212. package/docs/interfaces/_types_.actionhandleroptions.html +0 -294
  213. package/docs/interfaces/_types_.baseactionconfig.html +0 -306
  214. package/docs/interfaces/_types_.callserviceactionconfig.html +0 -367
  215. package/docs/interfaces/_types_.confirmationrestrictionconfig.html +0 -294
  216. package/docs/interfaces/_types_.credential.html +0 -294
  217. package/docs/interfaces/_types_.currentuser.html +0 -350
  218. package/docs/interfaces/_types_.customactionconfig.html +0 -328
  219. package/docs/interfaces/_types_.entitiescardentityconfig.html +0 -500
  220. package/docs/interfaces/_types_.entityconfig.html +0 -341
  221. package/docs/interfaces/_types_.homeassistant.html +0 -751
  222. package/docs/interfaces/_types_.lovelacebadgeconfig.html +0 -284
  223. package/docs/interfaces/_types_.lovelacecard.html +0 -6149
  224. package/docs/interfaces/_types_.lovelacecardconfig.html +0 -312
  225. package/docs/interfaces/_types_.lovelacecardeditor.html +0 -6114
  226. package/docs/interfaces/_types_.lovelaceconfig.html +0 -308
  227. package/docs/interfaces/_types_.lovelaceelementconfigbase.html +0 -294
  228. package/docs/interfaces/_types_.lovelaceviewconfig.html +0 -406
  229. package/docs/interfaces/_types_.mfamodule.html +0 -308
  230. package/docs/interfaces/_types_.moreinfoactionconfig.html +0 -342
  231. package/docs/interfaces/_types_.navigateactionconfig.html +0 -342
  232. package/docs/interfaces/_types_.noactionconfig.html +0 -328
  233. package/docs/interfaces/_types_.panel.html +0 -336
  234. package/docs/interfaces/_types_.panels.html +0 -252
  235. package/docs/interfaces/_types_.resources.html +0 -257
  236. package/docs/interfaces/_types_.restrictionconfig.html +0 -280
  237. package/docs/interfaces/_types_.showviewconfig.html +0 -280
  238. package/docs/interfaces/_types_.theme.html +0 -308
  239. package/docs/interfaces/_types_.themes.html +0 -302
  240. package/docs/interfaces/_types_.toggleactionconfig.html +0 -328
  241. package/docs/interfaces/_types_.togglemenuactionconfig.html +0 -328
  242. package/docs/interfaces/_types_.translation.html +0 -316
  243. package/docs/interfaces/_types_.urlactionconfig.html +0 -342
  244. package/docs/interfaces/_types_.window.html +0 -427
  245. package/docs/modules/_apply_themes_on_element_.html +0 -174
  246. package/docs/modules/_binary_sensor_icon_.html +0 -161
  247. package/docs/modules/_compute_card_size_.html +0 -156
  248. package/docs/modules/_compute_domain_.html +0 -156
  249. package/docs/modules/_compute_entity_.html +0 -156
  250. package/docs/modules/_compute_rtl_.html +0 -183
  251. package/docs/modules/_compute_state_display_.html +0 -162
  252. package/docs/modules/_compute_state_domain_.html +0 -156
  253. package/docs/modules/_const_.html +0 -340
  254. package/docs/modules/_cover_icon_.html +0 -156
  255. package/docs/modules/_create_thing_.html +0 -423
  256. package/docs/modules/_datetime_duration_to_seconds_.html +0 -156
  257. package/docs/modules/_datetime_format_date_.html +0 -172
  258. package/docs/modules/_datetime_format_date_time_.html +0 -172
  259. package/docs/modules/_datetime_format_time_.html +0 -172
  260. package/docs/modules/_datetime_relative_time_.html +0 -212
  261. package/docs/modules/_datetime_seconds_to_duration_.html +0 -183
  262. package/docs/modules/_datetime_timer_time_remaining_.html +0 -156
  263. package/docs/modules/_debounce_.html +0 -190
  264. package/docs/modules/_domain_icons_.html +0 -551
  265. package/docs/modules/_evaluate_filter_.html +0 -159
  266. package/docs/modules/_fire_event_.__global.html +0 -138
  267. package/docs/modules/_fire_event_.html +0 -241
  268. package/docs/modules/_format_number_.html +0 -222
  269. package/docs/modules/_get_lovelace_.html +0 -150
  270. package/docs/modules/_handle_action_.html +0 -235
  271. package/docs/modules/_handle_click_.html +0 -185
  272. package/docs/modules/_haptic_.__global.html +0 -142
  273. package/docs/modules/_haptic_.html +0 -194
  274. package/docs/modules/_has_action_.html +0 -156
  275. package/docs/modules/_has_changed_.html +0 -162
  276. package/docs/modules/_has_double_click_.html +0 -156
  277. package/docs/modules/_index_.html +0 -903
  278. package/docs/modules/_input_datetime_icon_.html +0 -156
  279. package/docs/modules/_lovelace_types_.html +0 -114
  280. package/docs/modules/_navigate_.__global.html +0 -138
  281. package/docs/modules/_navigate_.html +0 -173
  282. package/docs/modules/_scroll_to_target_.html +0 -170
  283. package/docs/modules/_sensor_icon_.html +0 -238
  284. package/docs/modules/_state_icon_.html +0 -218
  285. package/docs/modules/_toggle_entity_.html +0 -159
  286. package/docs/modules/_translations_localize_.html +0 -282
  287. package/docs/modules/_turn_on_off_entities_.html +0 -162
  288. package/docs/modules/_turn_on_off_entity_.html +0 -162
  289. package/docs/modules/_types_.__global.html +0 -138
  290. package/docs/modules/_types_.html +0 -361
@@ -0,0 +1,98 @@
1
+ name: "Release"
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ prepare:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+
14
+ - name: Get yarn cache directory path
15
+ id: yarn-cache-dir-path
16
+ run: echo "::set-output name=dir::$(yarn cache dir)"
17
+
18
+ - uses: actions/cache@v2
19
+ with:
20
+ path: '**/node_modules'
21
+ key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
22
+
23
+ - name: Setup Node
24
+ uses: actions/setup-node@v2
25
+ with:
26
+ node-version: '14'
27
+ cache: 'yarn'
28
+
29
+ - name: Install dependencies
30
+ if: steps.yarn-cache.outputs.cache-hit != 'true'
31
+ run: yarn install
32
+
33
+ #buildnpublish:
34
+ # needs: prepare
35
+ # runs-on: ubuntu-latest
36
+ # steps:
37
+ # - name: Checkout the repository
38
+ # uses: actions/checkout@v2
39
+
40
+ # - name: Get yarn cache directory path
41
+ # id: yarn-cache-dir-path
42
+ # run: echo "::set-output name=dir::$(yarn cache dir)"
43
+
44
+ # - name: Setup Node
45
+ # uses: actions/setup-node@v2
46
+ # with:
47
+ # node-version: '14'
48
+
49
+ # - uses: actions/cache@v2
50
+ # with:
51
+ # path: '**/node_modules'
52
+ # key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
53
+
54
+ # - name: Install dependencies
55
+ # if: steps.yarn-cache.outputs.cache-hit != 'true'
56
+ # run: yarn install
57
+
58
+ # - name: Building
59
+ # run: yarn build
60
+
61
+ # - uses: JS-DevTools/npm-publish@v1
62
+ # with:
63
+ # token: ${{ secrets.NPM_TOKEN }}
64
+
65
+ docs:
66
+ # needs: buildnpublish
67
+ runs-on: ubuntu-latest
68
+ steps:
69
+ - name: Checkout the repository
70
+ uses: actions/checkout@v2
71
+
72
+ - name: Get yarn cache directory path
73
+ id: yarn-cache-dir-path
74
+ run: echo "::set-output name=dir::$(yarn cache dir)"
75
+
76
+ - name: Setup Node
77
+ uses: actions/setup-node@v2
78
+ with:
79
+ node-version: '14'
80
+
81
+ - uses: actions/cache@v2
82
+ with:
83
+ path: '**/node_modules'
84
+ key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
85
+
86
+ - name: Install dependencies
87
+ if: steps.yarn-cache.outputs.cache-hit != 'true'
88
+ run: yarn install
89
+
90
+ - name: Create the docs directory locally in CI
91
+ run: npm run docs
92
+
93
+ - name: Deploy 🚀
94
+ uses: JamesIves/github-pages-deploy-action@4.1.4
95
+ with:
96
+ # The Branch here is a reserved branch for github
97
+ branch: gh-pages
98
+ folder: docs
@@ -0,0 +1,38 @@
1
+ name: "Build"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ build:
13
+ name: Test build
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+
18
+ - name: Get yarn cache directory path
19
+ id: yarn-cache-dir-path
20
+ run: echo "::set-output name=dir::$(yarn cache dir)"
21
+
22
+ - uses: actions/cache@v2
23
+ with:
24
+ path: '**/node_modules'
25
+ key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
26
+
27
+ - name: Setup Node
28
+ uses: actions/setup-node@v2
29
+ with:
30
+ node-version: '14'
31
+
32
+ - name: Install dependencies
33
+ if: steps.yarn-cache.outputs.cache-hit != 'true'
34
+ run: yarn install
35
+
36
+ # Using TSC instead of microbundle because it detects the same errors and is alot quicker
37
+ - name: Build
38
+ run: tsc
@@ -0,0 +1 @@
1
+ {"code":"/**\r\n * Apply a theme to an element by setting the CSS variables on it.\r\n *\r\n * element: Element to apply theme on.\r\n * themes: HASS Theme information\r\n * localTheme: selected theme.\r\n * updateMeta: boolean if we should update the theme-color meta element.\r\n */\r\nexport const applyThemesOnElement = (element, themes, localTheme, updateMeta = false) => {\r\n if (!element._themes) {\r\n element._themes = {};\r\n }\r\n let themeName = themes.default_theme;\r\n if (localTheme === \"default\" || (localTheme && themes.themes[localTheme])) {\r\n themeName = localTheme;\r\n }\r\n const styles = { ...element._themes };\r\n if (themeName !== \"default\") {\r\n const theme = themes.themes[themeName];\r\n Object.keys(theme).forEach((key) => {\r\n const prefixedKey = \"--\" + key;\r\n element._themes[prefixedKey] = \"\";\r\n styles[prefixedKey] = theme[key];\r\n });\r\n }\r\n if (element.updateStyles) {\r\n element.updateStyles(styles);\r\n }\r\n else if (window.ShadyCSS) {\r\n // implement updateStyles() method of Polemer elements\r\n window.ShadyCSS.styleSubtree(/** @type {!HTMLElement} */ (element), styles);\r\n }\r\n if (!updateMeta) {\r\n return;\r\n }\r\n const meta = document.querySelector(\"meta[name=theme-color]\");\r\n if (meta) {\r\n if (!meta.hasAttribute(\"default-content\")) {\r\n meta.setAttribute(\"default-content\", meta.getAttribute(\"content\"));\r\n }\r\n const themeColor = styles[\"--primary-color\"] || meta.getAttribute(\"default-content\");\r\n meta.setAttribute(\"content\", themeColor);\r\n }\r\n};\r\n//# sourceMappingURL=apply_themes_on_element.js.map","map":"{\"version\":3,\"file\":\"apply_themes_on_element.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/apply_themes_on_element.ts\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAO,EACP,MAAM,EACN,UAAU,EACV,UAAU,GAAG,KAAK,EAClB,EAAE;IACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;KACtB;IACD,IAAI,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;IACrC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;QACzE,SAAS,GAAG,UAAU,CAAC;KACxB;IACD,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;KACJ;IACD,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KAC9B;SAAM,IAAK,MAAc,CAAC,QAAQ,EAAE;QACnC,sDAAsD;QACrD,MAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;KACtF;IAED,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC9D,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAE,CAAC,CAAC;SACrE;QACD,MAAM,UAAU,GACd,MAAM,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;KAC1C;AACH,CAAC,CAAA\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/apply_themes_on_element.d.ts","writeByteOrderMark":false,"text":"/**\r\n * Apply a theme to an element by setting the CSS variables on it.\r\n *\r\n * element: Element to apply theme on.\r\n * themes: HASS Theme information\r\n * localTheme: selected theme.\r\n * updateMeta: boolean if we should update the theme-color meta element.\r\n */\r\nexport declare const applyThemesOnElement: (element: any, themes: any, localTheme: any, updateMeta?: boolean) => void;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { computeDomain } from \"./compute-domain\";\r\nexport function computeStateDomain(stateObj) {\r\n return computeDomain(stateObj.entity_id);\r\n}\r\n//# sourceMappingURL=compute-state-domain.js.map","map":"{\"version\":3,\"file\":\"compute-state-domain.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-state-domain.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,QAAoB;IACrD,OAAO,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-state-domain.d.ts","writeByteOrderMark":false,"text":"import { HassEntity } from \"home-assistant-js-websocket\";\r\nexport declare function computeStateDomain(stateObj: HassEntity): string;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"/**\r\n * Returns a function, that, as long as it continues to be invoked, will not be triggered. It will be called after it stops being called for `wait` ms.\r\n * This can be usefull for ResizeObservers for example.\r\n * @param func The function you want to debounce\r\n * @param wait Period to wait in ms\r\n * @param immediate Triggering on the leading edge instead of the trailing\r\n * @returns Debounced Function\r\n */\r\n// eslint-disable-next-line: ban-types\r\nexport const debounce = (func, wait, immediate = false) => {\r\n let timeout;\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n return function (...args) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const context = this;\r\n const later = () => {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n};\r\n//# sourceMappingURL=debounce.js.map","map":"{\"version\":3,\"file\":\"debounce.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/debounce.ts\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;GAOG;AACH,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAO,EACP,IAAY,EACZ,SAAS,GAAG,KAAK,EACd,EAAE;IACL,IAAI,OAAO,CAAC;IACZ,6DAA6D;IAC7D,aAAa;IACb,OAAO,UAAU,GAAG,IAAI;QACtB,6DAA6D;QAC7D,aAAa;QACb,4DAA4D;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,OAAO,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,CAAC;AACJ,CAAC,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/debounce.d.ts","writeByteOrderMark":false,"text":"/**\r\n * Returns a function, that, as long as it continues to be invoked, will not be triggered. It will be called after it stops being called for `wait` ms.\r\n * This can be usefull for ResizeObservers for example.\r\n * @param func The function you want to debounce\r\n * @param wait Period to wait in ms\r\n * @param immediate Triggering on the leading edge instead of the trailing\r\n * @returns Debounced Function\r\n */\r\nexport declare const debounce: <T extends (...args: any[]) => unknown>(func: T, wait: number, immediate?: boolean) => T;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export const computeCardSize = (card) => {\r\n return typeof card.getCardSize === \"function\" ? card.getCardSize() : 4;\r\n};\r\n//# sourceMappingURL=compute-card-size.js.map","map":"{\"version\":3,\"file\":\"compute-card-size.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-card-size.ts\"],\"names\":[],\"mappings\":\"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAkB,EAA4B,EAAE;IAC9E,OAAO,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-card-size.d.ts","writeByteOrderMark":false,"text":"import { LovelaceCard } from \"./types\";\r\nexport declare const computeCardSize: (card: LovelaceCard) => number | Promise<number>;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export * from \"./datetime/duration_to_seconds\";\r\nexport * from \"./datetime/format_date\";\r\nexport * from \"./datetime/format_date_time\";\r\nexport * from \"./datetime/format_time\";\r\nexport * from \"./datetime/relative_time\";\r\nexport * from \"./datetime/seconds_to_duration\";\r\nexport * from \"./datetime/timer_time_remaining\";\r\nexport * from \"./apply_themes_on_element\";\r\nexport * from \"./compute-card-size\";\r\nexport * from \"./compute-domain\";\r\nexport * from \"./compute-entity\";\r\nexport * from \"./compute-rtl\";\r\nexport * from \"./compute-state-display\";\r\nexport * from \"./compute-state-domain\";\r\nexport * from \"./const\";\r\nexport * from \"./create-thing\";\r\nexport * from \"./debounce\";\r\nexport * from \"./domain_icons\";\r\nexport * from \"./evaluate-filter\";\r\nexport * from \"./fire-event\";\r\nexport * from \"./format-number\";\r\nexport * from \"./handle-action\";\r\nexport * from \"./handle-click\";\r\nexport * from \"./haptic\";\r\nexport * from \"./has-action\";\r\nexport * from \"./has-changed\";\r\nexport * from \"./has-double-click\";\r\nexport * from \"./navigate\";\r\nexport * from \"./scroll-to-target\";\r\nexport * from \"./toggle-entity\";\r\nexport * from \"./turn-on-off-entities\";\r\nexport * from \"./turn-on-off-entity\";\r\nexport * from \"./get-lovelace\";\r\nexport * from \"./state_icon\";\r\n//# sourceMappingURL=index.js.map","map":"{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAA\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/index.d.ts","writeByteOrderMark":false,"text":"export * from \"./datetime/duration_to_seconds\";\r\nexport * from \"./datetime/format_date\";\r\nexport * from \"./datetime/format_date_time\";\r\nexport * from \"./datetime/format_time\";\r\nexport * from \"./datetime/relative_time\";\r\nexport * from \"./datetime/seconds_to_duration\";\r\nexport * from \"./datetime/timer_time_remaining\";\r\nexport * from \"./apply_themes_on_element\";\r\nexport * from \"./compute-card-size\";\r\nexport * from \"./compute-domain\";\r\nexport * from \"./compute-entity\";\r\nexport * from \"./compute-rtl\";\r\nexport * from \"./compute-state-display\";\r\nexport * from \"./compute-state-domain\";\r\nexport * from \"./const\";\r\nexport * from \"./create-thing\";\r\nexport * from \"./debounce\";\r\nexport * from \"./domain_icons\";\r\nexport * from \"./evaluate-filter\";\r\nexport * from \"./fire-event\";\r\nexport * from \"./format-number\";\r\nexport * from \"./handle-action\";\r\nexport * from \"./handle-click\";\r\nexport * from \"./haptic\";\r\nexport * from \"./has-action\";\r\nexport * from \"./has-changed\";\r\nexport * from \"./has-double-click\";\r\nexport * from \"./navigate\";\r\nexport * from \"./scroll-to-target\";\r\nexport * from \"./toggle-entity\";\r\nexport * from \"./turn-on-off-entities\";\r\nexport * from \"./turn-on-off-entity\";\r\nexport * from \"./types\";\r\nexport * from \"./get-lovelace\";\r\nexport * from \"./state_icon\";\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export function computeRTL(hass) {\r\n const lang = hass.locale.language || \"en\";\r\n if (hass.translationMetadata.translations[lang]) {\r\n return hass.translationMetadata.translations[lang].isRTL || false;\r\n }\r\n return false;\r\n}\r\nexport function computeRTLDirection(hass) {\r\n return computeRTL(hass) ? \"rtl\" : \"ltr\";\r\n}\r\n//# sourceMappingURL=compute-rtl.js.map","map":"{\"version\":3,\"file\":\"compute-rtl.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-rtl.ts\"],\"names\":[],\"mappings\":\"AAEA,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QAC/C,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;KACnE;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAmB;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-rtl.d.ts","writeByteOrderMark":false,"text":"import { HomeAssistant } from \"./types\";\r\nexport declare function computeRTL(hass: HomeAssistant): boolean;\r\nexport declare function computeRTLDirection(hass: HomeAssistant): \"rtl\" | \"ltr\";\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export const evaluateFilter = (stateObj, filter) => {\r\n const operator = filter.operator || \"==\";\r\n const value = filter.value || filter;\r\n const state = filter.attribute\r\n ? stateObj.attributes[filter.attribute]\r\n : stateObj.state;\r\n switch (operator) {\r\n case \"==\":\r\n return state === value;\r\n case \"<=\":\r\n return state <= value;\r\n case \"<\":\r\n return state < value;\r\n case \">=\":\r\n return state >= value;\r\n case \">\":\r\n return state > value;\r\n case \"!=\":\r\n return state !== value;\r\n case \"regex\": {\r\n return state.match(value);\r\n }\r\n default:\r\n return false;\r\n }\r\n};\r\n//# sourceMappingURL=evaluate-filter.js.map","map":"{\"version\":3,\"file\":\"evaluate-filter.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/evaluate-filter.ts\"],\"names\":[],\"mappings\":\"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAoB,EAAE,MAAW,EAAW,EAAE;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS;QAC5B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;QACvC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEnB,QAAQ,QAAQ,EAAE;QAChB,KAAK,IAAI;YACP,OAAO,KAAK,KAAK,KAAK,CAAC;QACzB,KAAK,IAAI;YACP,OAAO,KAAK,IAAI,KAAK,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,KAAK,CAAC;QACvB,KAAK,IAAI;YACP,OAAO,KAAK,IAAI,KAAK,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,KAAK,CAAC;QACvB,KAAK,IAAI;YACP,OAAO,KAAK,KAAK,KAAK,CAAC;QACzB,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/evaluate-filter.d.ts","writeByteOrderMark":false,"text":"import { HassEntity } from \"home-assistant-js-websocket\";\r\nexport declare const evaluateFilter: (stateObj: HassEntity, filter: any) => boolean;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"// Polymer legacy event helpers used courtesy of the Polymer project.\r\n//\r\n// Copyright (c) 2017 The Polymer Authors. All rights reserved.\r\n//\r\n// Redistribution and use in source and binary forms, with or without\r\n// modification, are permitted provided that the following conditions are\r\n// met:\r\n//\r\n// * Redistributions of source code must retain the above copyright\r\n// notice, this list of conditions and the following disclaimer.\r\n// * Redistributions in binary form must reproduce the above\r\n// copyright notice, this list of conditions and the following disclaimer\r\n// in the documentation and/or other materials provided with the\r\n// distribution.\r\n// * Neither the name of Google Inc. nor the names of its\r\n// contributors may be used to endorse or promote products derived from\r\n// this software without specific prior written permission.\r\n//\r\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n/**\r\n * Dispatches a custom event with an optional detail value.\r\n *\r\n * @param {string} type Name of event type.\r\n * @param {*=} detail Detail value containing event-specific\r\n * payload.\r\n * @param {{ bubbles: (boolean|undefined),\r\n * cancelable: (boolean|undefined),\r\n * composed: (boolean|undefined) }=}\r\n * options Object specifying options. These may include:\r\n * `bubbles` (boolean, defaults to `true`),\r\n * `cancelable` (boolean, defaults to false), and\r\n * `node` on which to fire the event (HTMLElement, defaults to `this`).\r\n * @return {Event} The new event that was fired.\r\n */\r\nexport const fireEvent = (node, type, detail, options) => {\r\n options = options || {};\r\n // @ts-ignore\r\n detail = detail === null || detail === undefined ? {} : detail;\r\n const event = new Event(type, {\r\n bubbles: options.bubbles === undefined ? true : options.bubbles,\r\n cancelable: Boolean(options.cancelable),\r\n composed: options.composed === undefined ? true : options.composed\r\n });\r\n event.detail = detail;\r\n node.dispatchEvent(event);\r\n return event;\r\n};\r\n//# sourceMappingURL=fire-event.js.map","map":"{\"version\":3,\"file\":\"fire-event.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/fire-event.ts\"],\"names\":[],\"mappings\":\"AAAA,qEAAqE;AACrE,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,OAAO;AACP,EAAE;AACF,sEAAsE;AACtE,gEAAgE;AAChE,+DAA+D;AAC/D,yEAAyE;AACzE,gEAAgE;AAChE,gBAAgB;AAChB,4DAA4D;AAC5D,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,wEAAwE;AACxE,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE;AAavE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAA0B,EAC1B,IAAe,EACf,MAAiC,EACjC,OAIC,EACD,EAAE;IACF,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACxB,aAAa;IACb,MAAM,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;QAC/D,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;KACnE,CAAC,CAAC;IACF,KAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/fire-event.d.ts","writeByteOrderMark":false,"text":"declare global {\r\n interface HASSDomEvents {\r\n }\r\n}\r\nexport declare type ValidHassDomEvent = keyof HASSDomEvents;\r\nexport interface HASSDomEvent<T> extends Event {\r\n detail: T;\r\n}\r\n/**\r\n * Dispatches a custom event with an optional detail value.\r\n *\r\n * @param {string} type Name of event type.\r\n * @param {*=} detail Detail value containing event-specific\r\n * payload.\r\n * @param {{ bubbles: (boolean|undefined),\r\n * cancelable: (boolean|undefined),\r\n * composed: (boolean|undefined) }=}\r\n * options Object specifying options. These may include:\r\n * `bubbles` (boolean, defaults to `true`),\r\n * `cancelable` (boolean, defaults to false), and\r\n * `node` on which to fire the event (HTMLElement, defaults to `this`).\r\n * @return {Event} The new event that was fired.\r\n */\r\nexport declare const fireEvent: <HassEvent extends \"undefined\" | \"haptic\" | \"value-changed\" | \"config-changed\" | \"hass-more-info\" | \"ll-rebuild\" | \"location-changed\" | \"show-dialog\" | \"action\">(node: HTMLElement | Window, type: HassEvent, detail?: HASSDomEvents[HassEvent], options?: {\r\n bubbles?: boolean;\r\n cancelable?: boolean;\r\n composed?: boolean;\r\n}) => Event;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { NumberFormat } from \"./types\";\r\n/**\r\n * Formats a number based on the specified language with thousands separator(s) and decimal character for better legibility.\r\n * @param num The number to format\r\n * @param locale The user-selected language and number format, from `hass.locale`\r\n * @param options Intl.NumberFormatOptions to use\r\n */\r\nexport const formatNumber = (num, locale, options) => {\r\n let format;\r\n switch (locale?.number_format) {\r\n case NumberFormat.comma_decimal:\r\n format = [\"en-US\", \"en\"]; // Use United States with fallback to English formatting 1,234,567.89\r\n break;\r\n case NumberFormat.decimal_comma:\r\n format = [\"de\", \"es\", \"it\"]; // Use German with fallback to Spanish then Italian formatting 1.234.567,89\r\n break;\r\n case NumberFormat.space_comma:\r\n format = [\"fr\", \"sv\", \"cs\"]; // Use French with fallback to Swedish and Czech formatting 1 234 567,89\r\n break;\r\n case NumberFormat.system:\r\n format = undefined;\r\n break;\r\n default:\r\n format = locale?.language;\r\n }\r\n // Polyfill for Number.isNaN, which is more reliable than the global isNaN()\r\n Number.isNaN =\r\n Number.isNaN ||\r\n function isNaN(input) {\r\n return typeof input === \"number\" && isNaN(input);\r\n };\r\n if (!Number.isNaN(Number(num)) &&\r\n Intl &&\r\n locale?.number_format !== NumberFormat.none) {\r\n try {\r\n return new Intl.NumberFormat(format, getDefaultFormatOptions(num, options)).format(Number(num));\r\n }\r\n catch (error) {\r\n // Don't fail when using \"TEST\" language\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n return new Intl.NumberFormat(undefined, getDefaultFormatOptions(num, options)).format(Number(num));\r\n }\r\n }\r\n return num ? num.toString() : \"\";\r\n};\r\n/**\r\n * Generates default options for Intl.NumberFormat\r\n * @param num The number to be formatted\r\n * @param options The Intl.NumberFormatOptions that should be included in the returned options\r\n */\r\nconst getDefaultFormatOptions = (num, options) => {\r\n const defaultOptions = options || {};\r\n if (typeof num !== \"string\") {\r\n return defaultOptions;\r\n }\r\n // Keep decimal trailing zeros if they are present in a string numeric value\r\n if (!options ||\r\n (!options.minimumFractionDigits && !options.maximumFractionDigits)) {\r\n const digits = num.indexOf(\".\") > -1 ? num.split(\".\")[1].length : 0;\r\n defaultOptions.minimumFractionDigits = digits;\r\n defaultOptions.maximumFractionDigits = digits;\r\n }\r\n return defaultOptions;\r\n};\r\n//# sourceMappingURL=format-number.js.map","map":"{\"version\":3,\"file\":\"format-number.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/format-number.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAoB,EACpB,MAAgC,EAChC,OAAkC,EAC1B,EAAE;IAEV,IAAI,MAAqC,CAAC;IAE1C,QAAQ,MAAM,EAAE,aAAa,EAAE;QAC7B,KAAK,YAAY,CAAC,aAAa;YAC7B,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,qEAAqE;YAC/F,MAAM;QACR,KAAK,YAAY,CAAC,aAAa;YAC7B,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,2EAA2E;YACxG,MAAM;QACR,KAAK,YAAY,CAAC,WAAW;YAC3B,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,wEAAwE;YACrG,MAAM;QACR,KAAK,YAAY,CAAC,MAAM;YACtB,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM;QACR;YACE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC;KAC7B;IACD,4EAA4E;IAC5E,MAAM,CAAC,KAAK;QACV,MAAM,CAAC,KAAK;YACZ,SAAS,KAAK,CAAC,KAAK;gBAClB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC;IAEF,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI;QACJ,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC,IAAI,EAC3C;QACA,IAAI;YACF,OAAO,IAAI,IAAI,CAAC,YAAY,CAC1B,MAAM,EACN,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CACtC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACvB;QAAC,OAAO,KAAK,EAAE;YACd,wCAAwC;YACxC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,IAAI,IAAI,CAAC,YAAY,CAC1B,SAAS,EACT,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CACtC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACvB;KACF;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,GAAoB,EACpB,OAAkC,EACR,EAAE;IAC5B,MAAM,cAAc,GAA6B,OAAO,IAAI,EAAE,CAAC;IAE/D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,cAAc,CAAC;KACvB;IAED,4EAA4E;IAC5E,IACE,CAAC,OAAO;QACR,CAAC,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAClE;QACA,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,cAAc,CAAC,qBAAqB,GAAG,MAAM,CAAC;QAC9C,cAAc,CAAC,qBAAqB,GAAG,MAAM,CAAC;KAC/C;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/format-number.d.ts","writeByteOrderMark":false,"text":"import { FrontendTranslationData } from \"./types\";\r\n/**\r\n * Formats a number based on the specified language with thousands separator(s) and decimal character for better legibility.\r\n * @param num The number to format\r\n * @param locale The user-selected language and number format, from `hass.locale`\r\n * @param options Intl.NumberFormatOptions to use\r\n */\r\nexport declare const formatNumber: (num: string | number, locale?: FrontendTranslationData, options?: Intl.NumberFormatOptions) => string;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export function computeEntity(entityId) {\r\n return entityId.substr(entityId.indexOf(\".\") + 1);\r\n}\r\n//# sourceMappingURL=compute-entity.js.map","map":"{\"version\":3,\"file\":\"compute-entity.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-entity.ts\"],\"names\":[],\"mappings\":\"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-entity.d.ts","writeByteOrderMark":false,"text":"export declare function computeEntity(entityId: string): string;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"/** Constants to be used in the frontend. */\r\n// Constants should be alphabetically sorted by name.\r\n// Arrays with values should be alphabetically sorted if order doesn't matter.\r\n// Each constant should have a description what it is supposed to be used for.\r\n/** Icon to use when no icon specified for domain. */\r\nexport const DEFAULT_DOMAIN_ICON = \"hass:bookmark\";\r\n/** Panel to show when no panel is picked. */\r\nexport const DEFAULT_PANEL = \"lovelace\";\r\n/** Domains that have a state card. */\r\nexport const DOMAINS_WITH_CARD = [\r\n \"climate\",\r\n \"cover\",\r\n \"configurator\",\r\n \"input_select\",\r\n \"input_number\",\r\n \"input_text\",\r\n \"lock\",\r\n \"media_player\",\r\n \"scene\",\r\n \"script\",\r\n \"timer\",\r\n \"vacuum\",\r\n \"water_heater\",\r\n \"weblink\"\r\n];\r\n/** Domains with separate more info dialog. */\r\nexport const DOMAINS_WITH_MORE_INFO = [\r\n \"alarm_control_panel\",\r\n \"automation\",\r\n \"camera\",\r\n \"climate\",\r\n \"configurator\",\r\n \"cover\",\r\n \"fan\",\r\n \"group\",\r\n \"history_graph\",\r\n \"input_datetime\",\r\n \"light\",\r\n \"lock\",\r\n \"media_player\",\r\n \"script\",\r\n \"sun\",\r\n \"updater\",\r\n \"vacuum\",\r\n \"water_heater\",\r\n \"weather\"\r\n];\r\n/** Domains that show no more info dialog. */\r\nexport const DOMAINS_HIDE_MORE_INFO = [\r\n \"input_number\",\r\n \"input_select\",\r\n \"input_text\",\r\n \"scene\",\r\n \"weblink\"\r\n];\r\n/** Domains that should have the history hidden in the more info dialog. */\r\nexport const DOMAINS_MORE_INFO_NO_HISTORY = [\r\n \"camera\",\r\n \"configurator\",\r\n \"history_graph\",\r\n \"scene\"\r\n];\r\n/** States that we consider \"off\". */\r\nexport const STATES_OFF = [\"closed\", \"locked\", \"off\"];\r\n/** Domains where we allow toggle in Lovelace. */\r\nexport const DOMAINS_TOGGLE = new Set([\r\n \"fan\",\r\n \"input_boolean\",\r\n \"light\",\r\n \"switch\",\r\n \"group\",\r\n \"automation\"\r\n]);\r\n/** Temperature units. */\r\nexport const UNIT_C = \"°C\";\r\nexport const UNIT_F = \"°F\";\r\n/** Entity ID of the default view. */\r\nexport const DEFAULT_VIEW_ENTITY_ID = \"group.default_view\";\r\n//# sourceMappingURL=const.js.map","map":"{\"version\":3,\"file\":\"const.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/const.ts\"],\"names\":[],\"mappings\":\"AAAA,4CAA4C;AAE5C,qDAAqD;AACrD,8EAA8E;AAC9E,8EAA8E;AAE9E,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS;IACT,OAAO;IACP,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,MAAM;IACN,cAAc;IACd,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,cAAc;IACd,SAAS;CACV,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,qBAAqB;IACrB,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,cAAc;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,eAAe;IACf,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,cAAc;IACd,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;IACR,cAAc;IACd,SAAS;CACV,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,cAAc;IACd,cAAc;IACd,YAAY;IACZ,OAAO;IACP,SAAS;CACV,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,QAAQ;IACR,cAAc;IACd,eAAe;IACf,OAAO;CACR,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEtD,iDAAiD;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACpC,KAAK;IACL,eAAe;IACf,OAAO;IACP,QAAQ;IACR,OAAO;IACP,YAAY;CACb,CAAC,CAAC;AAEH,yBAAyB;AACzB,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAE3B,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/const.d.ts","writeByteOrderMark":false,"text":"/** Constants to be used in the frontend. */\r\n/** Icon to use when no icon specified for domain. */\r\nexport declare const DEFAULT_DOMAIN_ICON = \"hass:bookmark\";\r\n/** Panel to show when no panel is picked. */\r\nexport declare const DEFAULT_PANEL = \"lovelace\";\r\n/** Domains that have a state card. */\r\nexport declare const DOMAINS_WITH_CARD: string[];\r\n/** Domains with separate more info dialog. */\r\nexport declare const DOMAINS_WITH_MORE_INFO: string[];\r\n/** Domains that show no more info dialog. */\r\nexport declare const DOMAINS_HIDE_MORE_INFO: string[];\r\n/** Domains that should have the history hidden in the more info dialog. */\r\nexport declare const DOMAINS_MORE_INFO_NO_HISTORY: string[];\r\n/** States that we consider \"off\". */\r\nexport declare const STATES_OFF: string[];\r\n/** Domains where we allow toggle in Lovelace. */\r\nexport declare const DOMAINS_TOGGLE: Set<string>;\r\n/** Temperature units. */\r\nexport declare const UNIT_C = \"\\u00B0C\";\r\nexport declare const UNIT_F = \"\\u00B0F\";\r\n/** Entity ID of the default view. */\r\nexport declare const DEFAULT_VIEW_ENTITY_ID = \"group.default_view\";\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { fireEvent } from \"./fire-event\";\r\nconst SPECIAL_TYPES = new Set([\r\n \"call-service\",\r\n \"divider\",\r\n \"section\",\r\n \"weblink\",\r\n \"cast\",\r\n \"select\"\r\n]);\r\nconst DOMAIN_TO_ELEMENT_TYPE = {\r\n alert: \"toggle\",\r\n automation: \"toggle\",\r\n climate: \"climate\",\r\n cover: \"cover\",\r\n fan: \"toggle\",\r\n group: \"group\",\r\n input_boolean: \"toggle\",\r\n input_number: \"input-number\",\r\n input_select: \"input-select\",\r\n input_text: \"input-text\",\r\n light: \"toggle\",\r\n lock: \"lock\",\r\n media_player: \"media-player\",\r\n remote: \"toggle\",\r\n scene: \"scene\",\r\n script: \"script\",\r\n sensor: \"sensor\",\r\n timer: \"timer\",\r\n switch: \"toggle\",\r\n vacuum: \"toggle\",\r\n // Temporary. Once climate is rewritten,\r\n // water heater should get it's own row.\r\n water_heater: \"climate\",\r\n input_datetime: \"input-datetime\"\r\n};\r\nexport const createThing = (cardConfig, isRow = false) => {\r\n const _createError = (error, config) => {\r\n return _createThing(\"hui-error-card\", {\r\n type: \"error\",\r\n error,\r\n config\r\n });\r\n };\r\n const _createThing = (tag, config) => {\r\n const element = window.document.createElement(tag);\r\n try {\r\n element.setConfig(config);\r\n }\r\n catch (err) {\r\n console.error(tag, err);\r\n return _createError(err.message, config);\r\n }\r\n return element;\r\n };\r\n if (!cardConfig || typeof cardConfig !== \"object\" || (!isRow && !cardConfig.type))\r\n return _createError(\"No type defined\", cardConfig);\r\n let tag = cardConfig.type;\r\n if (tag && tag.startsWith(\"custom:\")) {\r\n tag = tag.substr(\"custom:\".length);\r\n }\r\n else if (isRow) {\r\n if (SPECIAL_TYPES.has(tag)) {\r\n tag = `hui-${tag}-row`;\r\n }\r\n else {\r\n if (!cardConfig.entity) {\r\n return _createError(\"Invalid config given.\", cardConfig);\r\n }\r\n const domain = cardConfig.entity.split(\".\", 1)[0];\r\n tag = `hui-${DOMAIN_TO_ELEMENT_TYPE[domain] || \"text\"}-entity-row`;\r\n }\r\n }\r\n else {\r\n tag = `hui-${tag}-card`;\r\n }\r\n if (customElements.get(tag))\r\n return _createThing(tag, cardConfig);\r\n // If element doesn't exist (yet) create an error\r\n const element = _createError(`Custom element doesn't exist: ${cardConfig.type}.`, cardConfig);\r\n element.style.display = \"None\";\r\n const timer = setTimeout(() => {\r\n element.style.display = \"\";\r\n }, 2000);\r\n // Remove error if element is defined later\r\n customElements.whenDefined(cardConfig.type).then(() => {\r\n clearTimeout(timer);\r\n fireEvent(element, \"ll-rebuild\", {}, element);\r\n });\r\n return element;\r\n};\r\n//# sourceMappingURL=create-thing.js.map","map":"{\"version\":3,\"file\":\"create-thing.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/create-thing.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/create-thing.d.ts","writeByteOrderMark":false,"text":"export declare const createThing: (cardConfig: any, isRow?: boolean) => any;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { formatDateTime } from \"./datetime/format_date_time\";\r\nimport { formatDate } from \"./datetime/format_date\";\r\nimport { formatTime } from \"./datetime/format_time\";\r\nimport { computeStateDomain } from \"./compute-state-domain\";\r\nimport { formatNumber } from \"./format-number\";\r\nexport function computeStateDisplay(localize, stateObj, locale, state) {\r\n const compareState = state !== undefined ? state : stateObj.state;\r\n if (compareState === \"unknown\" || compareState === \"unavailable\") {\r\n return localize(`state.default.${compareState}`);\r\n }\r\n if (stateObj.attributes.unit_of_measurement) {\r\n return `${formatNumber(compareState, locale)} ${stateObj.attributes.unit_of_measurement}`;\r\n }\r\n const domain = computeStateDomain(stateObj);\r\n if (domain === \"input_datetime\") {\r\n let date;\r\n if (!stateObj.attributes.has_time) {\r\n date = new Date(stateObj.attributes.year, stateObj.attributes.month - 1, stateObj.attributes.day);\r\n return formatDate(date, locale);\r\n }\r\n if (!stateObj.attributes.has_date) {\r\n const now = new Date();\r\n date = new Date(\r\n // Due to bugs.chromium.org/p/chromium/issues/detail?id=797548\r\n // don't use artificial 1970 year.\r\n now.getFullYear(), now.getMonth(), now.getDay(), stateObj.attributes.hour, stateObj.attributes.minute);\r\n return formatTime(date, locale);\r\n }\r\n date = new Date(stateObj.attributes.year, stateObj.attributes.month - 1, stateObj.attributes.day, stateObj.attributes.hour, stateObj.attributes.minute);\r\n return formatDateTime(date, locale);\r\n }\r\n if (domain === \"humidifier\") {\r\n if (compareState === \"on\" && stateObj.attributes.humidity) {\r\n return `${stateObj.attributes.humidity} %`;\r\n }\r\n }\r\n // `counter` and `number` domains do not have a unit of measurement but should still use `formatNumber`\r\n if (domain === \"counter\" || domain === \"number\") {\r\n return formatNumber(compareState, locale);\r\n }\r\n return (\r\n // Return device class translation\r\n (stateObj.attributes.device_class &&\r\n localize(`component.${domain}.state.${stateObj.attributes.device_class}.${stateObj.state}`)) ||\r\n // Return default translation\r\n localize(`component.${domain}.state._.${stateObj.state}`) ||\r\n // We don't know! Return the raw state.\r\n stateObj.state);\r\n}\r\n//# sourceMappingURL=compute-state-display.js.map","map":"{\"version\":3,\"file\":\"compute-state-display.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-state-display.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CACjC,QAAsB,EACtB,QAAoB,EACpB,MAA+B,EAC/B,KAAc;IAEd,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAElE,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAM,aAAa,EAAE;QACjE,OAAO,QAAQ,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;KAClD;IAED,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE;QAC3C,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;KAC3F;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,MAAM,KAAK,gBAAgB,EAAE;QAC/B,IAAI,IAAU,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YACjC,IAAI,GAAG,IAAI,IAAI,CACb,QAAQ,CAAC,UAAU,CAAC,IAAI,EACxB,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAC7B,QAAQ,CAAC,UAAU,CAAC,GAAG,CACxB,CAAC;YACF,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,IAAI;YACb,8DAA8D;YAC9D,kCAAkC;YAClC,GAAG,CAAC,WAAW,EAAE,EACjB,GAAG,CAAC,QAAQ,EAAE,EACd,GAAG,CAAC,MAAM,EAAE,EACZ,QAAQ,CAAC,UAAU,CAAC,IAAI,EACxB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC3B,CAAC;YACF,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACjC;QAED,IAAI,GAAG,IAAI,IAAI,CACb,QAAQ,CAAC,UAAU,CAAC,IAAI,EACxB,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAC7B,QAAQ,CAAC,UAAU,CAAC,GAAG,EACvB,QAAQ,CAAC,UAAU,CAAC,IAAI,EACxB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC3B,CAAC;QACF,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACrC;IAED,IAAI,MAAM,KAAK,YAAY,EAAE;QAC3B,IAAI,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YACzD,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC;SAC5C;KACF;IAED,uGAAuG;IACvG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE;QAC/C,OAAO,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KAC3C;IAED,OAAO;IACL,kCAAkC;IAClC,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY;QAC/B,QAAQ,CACN,aAAa,MAAM,UAAU,QAAQ,CAAC,UAAU,CAAC,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE,CAClF,CAAC;QACJ,6BAA6B;QAC7B,QAAQ,CAAC,aAAa,MAAM,YAAY,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzD,uCAAuC;QACvC,QAAQ,CAAC,KAAK,CACf,CAAC;AACJ,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-state-display.d.ts","writeByteOrderMark":false,"text":"import { HassEntity } from \"home-assistant-js-websocket\";\r\nimport { LocalizeFunc } from \"./translations/localize\";\r\nimport { FrontendTranslationData } from \"./types\";\r\nexport declare function computeStateDisplay(localize: LocalizeFunc, stateObj: HassEntity, locale: FrontendTranslationData, state?: string): string;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"/**\r\n * Return the icon to be used for a domain.\r\n *\r\n * Optionally pass in a state to influence the domain icon.\r\n */\r\nimport { DEFAULT_DOMAIN_ICON } from \"./const\";\r\nexport const fixedIcons = {\r\n alert: \"hass:alert\",\r\n automation: \"hass:playlist-play\",\r\n calendar: \"hass:calendar\",\r\n camera: \"hass:video\",\r\n climate: \"hass:thermostat\",\r\n configurator: \"hass:settings\",\r\n conversation: \"hass:text-to-speech\",\r\n device_tracker: \"hass:account\",\r\n fan: \"hass:fan\",\r\n group: \"hass:google-circles-communities\",\r\n history_graph: \"hass:chart-line\",\r\n homeassistant: \"hass:home-assistant\",\r\n homekit: \"hass:home-automation\",\r\n image_processing: \"hass:image-filter-frames\",\r\n input_boolean: \"hass:drawing\",\r\n input_datetime: \"hass:calendar-clock\",\r\n input_number: \"hass:ray-vertex\",\r\n input_select: \"hass:format-list-bulleted\",\r\n input_text: \"hass:textbox\",\r\n light: \"hass:lightbulb\",\r\n mailbox: \"hass:mailbox\",\r\n notify: \"hass:comment-alert\",\r\n person: \"hass:account\",\r\n plant: \"hass:flower\",\r\n proximity: \"hass:apple-safari\",\r\n remote: \"hass:remote\",\r\n scene: \"hass:google-pages\",\r\n script: \"hass:file-document\",\r\n sensor: \"hass:eye\",\r\n simple_alarm: \"hass:bell\",\r\n sun: \"hass:white-balance-sunny\",\r\n switch: \"hass:flash\",\r\n timer: \"hass:timer\",\r\n updater: \"hass:cloud-upload\",\r\n vacuum: \"hass:robot-vacuum\",\r\n water_heater: \"hass:thermometer\",\r\n weblink: \"hass:open-in-new\"\r\n};\r\nexport function domainIcon(domain, state) {\r\n if (domain in fixedIcons) {\r\n return fixedIcons[domain];\r\n }\r\n switch (domain) {\r\n case \"alarm_control_panel\":\r\n switch (state) {\r\n case \"armed_home\":\r\n return \"hass:bell-plus\";\r\n case \"armed_night\":\r\n return \"hass:bell-sleep\";\r\n case \"disarmed\":\r\n return \"hass:bell-outline\";\r\n case \"triggered\":\r\n return \"hass:bell-ring\";\r\n default:\r\n return \"hass:bell\";\r\n }\r\n case \"binary_sensor\":\r\n return state && state === \"off\"\r\n ? \"hass:radiobox-blank\"\r\n : \"hass:checkbox-marked-circle\";\r\n case \"cover\":\r\n return state === \"closed\" ? \"hass:window-closed\" : \"hass:window-open\";\r\n case \"lock\":\r\n return state && state === \"unlocked\" ? \"hass:lock-open\" : \"hass:lock\";\r\n case \"media_player\":\r\n return state && state !== \"off\" && state !== \"idle\"\r\n ? \"hass:cast-connected\"\r\n : \"hass:cast\";\r\n case \"zwave\":\r\n switch (state) {\r\n case \"dead\":\r\n return \"hass:emoticon-dead\";\r\n case \"sleeping\":\r\n return \"hass:sleep\";\r\n case \"initializing\":\r\n return \"hass:timer-sand\";\r\n default:\r\n return \"hass:z-wave\";\r\n }\r\n default:\r\n // tslint:disable-next-line\r\n console.warn(\"Unable to find icon for domain \" + domain + \" (\" + state + \")\");\r\n return DEFAULT_DOMAIN_ICON;\r\n }\r\n}\r\n//# sourceMappingURL=domain_icons.js.map","map":"{\"version\":3,\"file\":\"domain_icons.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/domain_icons.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/domain_icons.d.ts","writeByteOrderMark":false,"text":"export declare const fixedIcons: {\r\n alert: string;\r\n automation: string;\r\n calendar: string;\r\n camera: string;\r\n climate: string;\r\n configurator: string;\r\n conversation: string;\r\n device_tracker: string;\r\n fan: string;\r\n group: string;\r\n history_graph: string;\r\n homeassistant: string;\r\n homekit: string;\r\n image_processing: string;\r\n input_boolean: string;\r\n input_datetime: string;\r\n input_number: string;\r\n input_select: string;\r\n input_text: string;\r\n light: string;\r\n mailbox: string;\r\n notify: string;\r\n person: string;\r\n plant: string;\r\n proximity: string;\r\n remote: string;\r\n scene: string;\r\n script: string;\r\n sensor: string;\r\n simple_alarm: string;\r\n sun: string;\r\n switch: string;\r\n timer: string;\r\n updater: string;\r\n vacuum: string;\r\n water_heater: string;\r\n weblink: string;\r\n};\r\nexport declare function domainIcon(domain: string, state?: string): string;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export function computeDomain(entityId) {\r\n return entityId.substr(0, entityId.indexOf(\".\"));\r\n}\r\n//# sourceMappingURL=compute-domain.js.map","map":"{\"version\":3,\"file\":\"compute-domain.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/compute-domain.ts\"],\"names\":[],\"mappings\":\"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC\"}","dts":{"name":"/home/iantrich/Projects/hass/plugins/custom-card-helpers/compute-domain.d.ts","writeByteOrderMark":false,"text":"export declare function computeDomain(entityId: string): string;\r\n"}}
@@ -1,3 +1,3 @@
1
1
  import { HassEntity } from "home-assistant-js-websocket";
2
2
  /** Return an icon representing a binary sensor state. */
3
- export declare const binarySensorIcon: (state: HassEntity) => "hass:battery" | "hass:battery-outline" | "hass:thermometer" | "hass:snowflake" | "hass:server-network-off" | "hass:server-network" | "hass:door-closed" | "hass:door-open" | "hass:garage" | "hass:garage-open" | "hass:shield-check" | "hass:alert" | "hass:fire" | "hass:brightness-5" | "hass:brightness-7" | "hass:lock" | "hass:lock-open" | "hass:water-off" | "hass:water" | "hass:walk" | "hass:run" | "hass:home-outline" | "hass:home" | "hass:square" | "hass:square-outline" | "hass:power-plug-off" | "hass:power-plug" | "hass:music-note-off" | "hass:music-note" | "hass:crop-portrait" | "hass:vibrate" | "hass:window-closed" | "hass:window-open" | "hass:radiobox-blank" | "hass:checkbox-marked-circle";
3
+ export declare const binarySensorIcon: (state?: string | undefined, stateObj?: HassEntity | undefined) => "mdi:battery" | "mdi:battery-outline" | "mdi:battery-charging" | "mdi:thermometer" | "mdi:snowflake" | "mdi:server-network-off" | "mdi:server-network" | "mdi:door-closed" | "mdi:door-open" | "mdi:garage" | "mdi:garage-open" | "mdi:power-plug-off" | "mdi:power-plug" | "mdi:check-circle" | "mdi:alert-circle" | "mdi:smoke" | "mdi:fire" | "mdi:brightness-5" | "mdi:brightness-7" | "mdi:lock" | "mdi:lock-open" | "mdi:water-off" | "mdi:water" | "mdi:walk" | "mdi:run" | "mdi:home-outline" | "mdi:home" | "mdi:square" | "mdi:square-outline" | "mdi:stop" | "mdi:play" | "mdi:music-note-off" | "mdi:music-note" | "mdi:package" | "mdi:package-up" | "mdi:crop-portrait" | "mdi:vibrate" | "mdi:window-closed" | "mdi:window-open" | "mdi:radiobox-blank" | "mdi:checkbox-marked-circle";
@@ -1,3 +1,4 @@
1
1
  import { HassEntity } from "home-assistant-js-websocket";
2
2
  import { LocalizeFunc } from "./translations/localize";
3
- export declare function computeStateDisplay(localize: LocalizeFunc, stateObj: HassEntity, language: string): string;
3
+ import { FrontendLocaleData } from "./types";
4
+ export declare const computeStateDisplay: (localize: LocalizeFunc, stateObj: HassEntity, locale: FrontendLocaleData, state?: string | undefined) => string;
package/dist/const.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /** Constants to be used in the frontend. */
2
2
  /** Icon to use when no icon specified for domain. */
3
- export declare const DEFAULT_DOMAIN_ICON = "hass:bookmark";
3
+ export declare const DEFAULT_DOMAIN_ICON = "mdi:bookmark";
4
4
  /** Panel to show when no panel is picked. */
5
5
  export declare const DEFAULT_PANEL = "lovelace";
6
6
  /** Domains that have a state card. */