@zanichelli/albe-web-components 18.6.3 → 18.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/cjs/{index-c48948bf.js → index-0d3de93e.js} +2 -2
  3. package/dist/cjs/{index-c48948bf.js.map → index-0d3de93e.js.map} +1 -1
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/{utils-93961cb6.js → utils-3dc316f8.js} +56 -1
  7. package/dist/cjs/utils-3dc316f8.js.map +1 -0
  8. package/dist/cjs/web-components-library.cjs.js +1 -1
  9. package/dist/cjs/z-anchor-navigation.cjs.entry.js +1 -1
  10. package/dist/cjs/z-anchor-navigation.cjs.entry.js.map +1 -1
  11. package/dist/cjs/z-app-header_12.cjs.entry.js +2 -2
  12. package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
  13. package/dist/cjs/z-book-card-deprecated.cjs.entry.js +1 -1
  14. package/dist/cjs/z-breadcrumb.cjs.entry.js +1 -1
  15. package/dist/cjs/z-card.cjs.entry.js +1 -1
  16. package/dist/cjs/z-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/z-combobox.cjs.entry.js +1 -1
  18. package/dist/cjs/z-menu.cjs.entry.js +1 -1
  19. package/dist/cjs/z-myz-card-info.cjs.entry.js +1 -1
  20. package/dist/cjs/z-myz-list-item.cjs.entry.js +1 -1
  21. package/dist/cjs/z-popover.cjs.entry.js +232 -264
  22. package/dist/cjs/z-popover.cjs.entry.js.map +1 -1
  23. package/dist/cjs/z-select.cjs.entry.js +5 -7
  24. package/dist/cjs/z-select.cjs.entry.js.map +1 -1
  25. package/dist/cjs/z-skip-to-content.cjs.entry.js +1 -1
  26. package/dist/cjs/z-slideshow.cjs.entry.js +1 -1
  27. package/dist/cjs/z-table.cjs.entry.js +2 -2
  28. package/dist/cjs/z-toggle-switch.cjs.entry.js +1 -1
  29. package/dist/cjs/z-tr.cjs.entry.js +2 -2
  30. package/dist/collection/components/list/z-list-element/styles.css +2 -4
  31. package/dist/collection/components/z-anchor-navigation/index.js +1 -1
  32. package/dist/collection/components/z-anchor-navigation/index.js.map +1 -1
  33. package/dist/collection/components/z-card/styles.css +4 -0
  34. package/dist/collection/components/z-popover/index.js +236 -268
  35. package/dist/collection/components/z-popover/index.js.map +1 -1
  36. package/dist/collection/components/z-popover/index.stories.js +92 -45
  37. package/dist/collection/components/z-popover/index.stories.js.map +1 -1
  38. package/dist/collection/components/z-popover/styles.css +4 -14
  39. package/dist/collection/components/z-select/index.js +4 -6
  40. package/dist/collection/components/z-select/index.js.map +1 -1
  41. package/dist/collection/components/z-select/styles.css +2 -6
  42. package/dist/collection/utils/utils.js +53 -0
  43. package/dist/collection/utils/utils.js.map +1 -1
  44. package/dist/components/index14.js +1 -1
  45. package/dist/components/index14.js.map +1 -1
  46. package/dist/components/index23.js +234 -266
  47. package/dist/components/index23.js.map +1 -1
  48. package/dist/components/index24.js +1 -1
  49. package/dist/components/utils.js +55 -2
  50. package/dist/components/utils.js.map +1 -1
  51. package/dist/components/z-anchor-navigation.js +1 -1
  52. package/dist/components/z-anchor-navigation.js.map +1 -1
  53. package/dist/components/z-card.js +1 -1
  54. package/dist/components/z-card.js.map +1 -1
  55. package/dist/components/z-select.js +5 -7
  56. package/dist/components/z-select.js.map +1 -1
  57. package/dist/esm/{index-10473b87.js → index-328b69a7.js} +2 -2
  58. package/dist/esm/{index-10473b87.js.map → index-328b69a7.js.map} +1 -1
  59. package/dist/esm/index.js +1 -1
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/{utils-c8abef2f.js → utils-6e2be2b6.js} +55 -2
  62. package/dist/esm/utils-6e2be2b6.js.map +1 -0
  63. package/dist/esm/web-components-library.js +1 -1
  64. package/dist/esm/z-anchor-navigation.entry.js +1 -1
  65. package/dist/esm/z-anchor-navigation.entry.js.map +1 -1
  66. package/dist/esm/z-app-header_12.entry.js +2 -2
  67. package/dist/esm/z-app-header_12.entry.js.map +1 -1
  68. package/dist/esm/z-book-card-deprecated.entry.js +1 -1
  69. package/dist/esm/z-breadcrumb.entry.js +1 -1
  70. package/dist/esm/z-card.entry.js +1 -1
  71. package/dist/esm/z-card.entry.js.map +1 -1
  72. package/dist/esm/z-combobox.entry.js +1 -1
  73. package/dist/esm/z-menu.entry.js +1 -1
  74. package/dist/esm/z-myz-card-info.entry.js +1 -1
  75. package/dist/esm/z-myz-list-item.entry.js +1 -1
  76. package/dist/esm/z-popover.entry.js +233 -265
  77. package/dist/esm/z-popover.entry.js.map +1 -1
  78. package/dist/esm/z-select.entry.js +5 -7
  79. package/dist/esm/z-select.entry.js.map +1 -1
  80. package/dist/esm/z-skip-to-content.entry.js +1 -1
  81. package/dist/esm/z-slideshow.entry.js +1 -1
  82. package/dist/esm/z-table.entry.js +2 -2
  83. package/dist/esm/z-toggle-switch.entry.js +1 -1
  84. package/dist/esm/z-tr.entry.js +2 -2
  85. package/dist/types/components/z-popover/index.d.ts +47 -45
  86. package/dist/types/components/z-popover/index.stories.d.ts +18 -7
  87. package/dist/types/components.d.ts +13 -17
  88. package/dist/types/utils/utils.d.ts +17 -0
  89. package/dist/web-components-library/index.esm.js +1 -1
  90. package/dist/web-components-library/{p-8b93bc6d.entry.js → p-01302e57.entry.js} +2 -2
  91. package/dist/web-components-library/{p-14f0bdf4.entry.js → p-1ad8810a.entry.js} +2 -2
  92. package/{www/build/p-c2ba8a6c.entry.js → dist/web-components-library/p-2e0923bd.entry.js} +2 -2
  93. package/dist/web-components-library/p-3284e37b.entry.js +2 -0
  94. package/dist/web-components-library/{p-61f76cab.js → p-43bc482a.js} +2 -2
  95. package/{www/build/p-2fb52cd0.entry.js → dist/web-components-library/p-539f99db.entry.js} +2 -2
  96. package/dist/web-components-library/p-625e2cee.js +2 -0
  97. package/dist/web-components-library/p-625e2cee.js.map +1 -0
  98. package/dist/web-components-library/p-62e1d867.entry.js +2 -0
  99. package/dist/web-components-library/p-62e1d867.entry.js.map +1 -0
  100. package/dist/web-components-library/p-63d220da.entry.js +2 -0
  101. package/dist/web-components-library/{p-8d5e3396.entry.js.map → p-63d220da.entry.js.map} +1 -1
  102. package/dist/web-components-library/{p-25935be3.entry.js → p-6d0fa7c1.entry.js} +2 -2
  103. package/dist/web-components-library/{p-25935be3.entry.js.map → p-6d0fa7c1.entry.js.map} +1 -1
  104. package/dist/web-components-library/{p-c8814ae1.entry.js → p-7916e0f7.entry.js} +2 -2
  105. package/{www/build/p-f5efb3fc.entry.js → dist/web-components-library/p-8bd4a2aa.entry.js} +2 -2
  106. package/dist/web-components-library/{p-c962e854.entry.js → p-8dec332e.entry.js} +2 -2
  107. package/dist/web-components-library/{p-72a7eb26.entry.js → p-966cbf03.entry.js} +2 -2
  108. package/{www/build/p-30575221.entry.js → dist/web-components-library/p-a0ed0c63.entry.js} +2 -2
  109. package/{www/build/p-e41442e0.entry.js → dist/web-components-library/p-b7b972c0.entry.js} +2 -2
  110. package/{www/build/p-e41442e0.entry.js.map → dist/web-components-library/p-b7b972c0.entry.js.map} +1 -1
  111. package/dist/web-components-library/p-b96ca9a0.entry.js +2 -0
  112. package/dist/web-components-library/p-b96ca9a0.entry.js.map +1 -0
  113. package/dist/web-components-library/{p-57b8bd19.entry.js → p-db9b7eb5.entry.js} +2 -2
  114. package/dist/web-components-library/p-db9b7eb5.entry.js.map +1 -0
  115. package/dist/web-components-library/web-components-library.esm.js +1 -1
  116. package/dist/web-components-library/web-components-library.esm.js.map +1 -1
  117. package/package.json +1 -1
  118. package/www/build/index.esm.js +1 -1
  119. package/www/build/{p-8b93bc6d.entry.js → p-01302e57.entry.js} +2 -2
  120. package/www/build/{p-14f0bdf4.entry.js → p-1ad8810a.entry.js} +2 -2
  121. package/{dist/web-components-library/p-c2ba8a6c.entry.js → www/build/p-2e0923bd.entry.js} +2 -2
  122. package/www/build/p-3284e37b.entry.js +2 -0
  123. package/www/build/{p-61f76cab.js → p-43bc482a.js} +2 -2
  124. package/{dist/web-components-library/p-2fb52cd0.entry.js → www/build/p-539f99db.entry.js} +2 -2
  125. package/www/build/p-625e2cee.js +2 -0
  126. package/www/build/p-625e2cee.js.map +1 -0
  127. package/www/build/p-62e1d867.entry.js +2 -0
  128. package/www/build/p-62e1d867.entry.js.map +1 -0
  129. package/www/build/p-63d220da.entry.js +2 -0
  130. package/www/build/{p-8d5e3396.entry.js.map → p-63d220da.entry.js.map} +1 -1
  131. package/www/build/{p-2870add3.js → p-6c6208e6.js} +1 -1
  132. package/www/build/{p-25935be3.entry.js → p-6d0fa7c1.entry.js} +2 -2
  133. package/www/build/{p-25935be3.entry.js.map → p-6d0fa7c1.entry.js.map} +1 -1
  134. package/www/build/{p-c8814ae1.entry.js → p-7916e0f7.entry.js} +2 -2
  135. package/{dist/web-components-library/p-f5efb3fc.entry.js → www/build/p-8bd4a2aa.entry.js} +2 -2
  136. package/www/build/{p-c962e854.entry.js → p-8dec332e.entry.js} +2 -2
  137. package/www/build/{p-72a7eb26.entry.js → p-966cbf03.entry.js} +2 -2
  138. package/{dist/web-components-library/p-30575221.entry.js → www/build/p-a0ed0c63.entry.js} +2 -2
  139. package/{dist/web-components-library/p-e41442e0.entry.js → www/build/p-b7b972c0.entry.js} +2 -2
  140. package/{dist/web-components-library/p-e41442e0.entry.js.map → www/build/p-b7b972c0.entry.js.map} +1 -1
  141. package/www/build/p-b96ca9a0.entry.js +2 -0
  142. package/www/build/p-b96ca9a0.entry.js.map +1 -0
  143. package/www/build/{p-57b8bd19.entry.js → p-db9b7eb5.entry.js} +2 -2
  144. package/www/build/p-db9b7eb5.entry.js.map +1 -0
  145. package/www/build/web-components-library.esm.js +1 -1
  146. package/www/build/web-components-library.esm.js.map +1 -1
  147. package/www/index.html +1 -1
  148. package/dist/cjs/utils-93961cb6.js.map +0 -1
  149. package/dist/esm/utils-c8abef2f.js.map +0 -1
  150. package/dist/web-components-library/p-37f271c8.entry.js +0 -2
  151. package/dist/web-components-library/p-37f271c8.entry.js.map +0 -1
  152. package/dist/web-components-library/p-57b8bd19.entry.js.map +0 -1
  153. package/dist/web-components-library/p-69a1a67a.entry.js +0 -2
  154. package/dist/web-components-library/p-8d5e3396.entry.js +0 -2
  155. package/dist/web-components-library/p-a06fbbc0.js +0 -2
  156. package/dist/web-components-library/p-a06fbbc0.js.map +0 -1
  157. package/dist/web-components-library/p-da30a6cb.entry.js +0 -2
  158. package/dist/web-components-library/p-da30a6cb.entry.js.map +0 -1
  159. package/www/build/p-37f271c8.entry.js +0 -2
  160. package/www/build/p-37f271c8.entry.js.map +0 -1
  161. package/www/build/p-57b8bd19.entry.js.map +0 -1
  162. package/www/build/p-69a1a67a.entry.js +0 -2
  163. package/www/build/p-8d5e3396.entry.js +0 -2
  164. package/www/build/p-a06fbbc0.js +0 -2
  165. package/www/build/p-a06fbbc0.js.map +0 -1
  166. package/www/build/p-da30a6cb.entry.js +0 -2
  167. package/www/build/p-da30a6cb.entry.js.map +0 -1
  168. /package/dist/web-components-library/{p-8b93bc6d.entry.js.map → p-01302e57.entry.js.map} +0 -0
  169. /package/dist/web-components-library/{p-14f0bdf4.entry.js.map → p-1ad8810a.entry.js.map} +0 -0
  170. /package/dist/web-components-library/{p-c2ba8a6c.entry.js.map → p-2e0923bd.entry.js.map} +0 -0
  171. /package/dist/web-components-library/{p-69a1a67a.entry.js.map → p-3284e37b.entry.js.map} +0 -0
  172. /package/dist/web-components-library/{p-61f76cab.js.map → p-43bc482a.js.map} +0 -0
  173. /package/dist/web-components-library/{p-2fb52cd0.entry.js.map → p-539f99db.entry.js.map} +0 -0
  174. /package/dist/web-components-library/{p-c8814ae1.entry.js.map → p-7916e0f7.entry.js.map} +0 -0
  175. /package/dist/web-components-library/{p-f5efb3fc.entry.js.map → p-8bd4a2aa.entry.js.map} +0 -0
  176. /package/dist/web-components-library/{p-c962e854.entry.js.map → p-8dec332e.entry.js.map} +0 -0
  177. /package/dist/web-components-library/{p-72a7eb26.entry.js.map → p-966cbf03.entry.js.map} +0 -0
  178. /package/dist/web-components-library/{p-30575221.entry.js.map → p-a0ed0c63.entry.js.map} +0 -0
  179. /package/www/build/{p-8b93bc6d.entry.js.map → p-01302e57.entry.js.map} +0 -0
  180. /package/www/build/{p-14f0bdf4.entry.js.map → p-1ad8810a.entry.js.map} +0 -0
  181. /package/www/build/{p-c2ba8a6c.entry.js.map → p-2e0923bd.entry.js.map} +0 -0
  182. /package/www/build/{p-69a1a67a.entry.js.map → p-3284e37b.entry.js.map} +0 -0
  183. /package/www/build/{p-61f76cab.js.map → p-43bc482a.js.map} +0 -0
  184. /package/www/build/{p-2fb52cd0.entry.js.map → p-539f99db.entry.js.map} +0 -0
  185. /package/www/build/{p-c8814ae1.entry.js.map → p-7916e0f7.entry.js.map} +0 -0
  186. /package/www/build/{p-f5efb3fc.entry.js.map → p-8bd4a2aa.entry.js.map} +0 -0
  187. /package/www/build/{p-c962e854.entry.js.map → p-8dec332e.entry.js.map} +0 -0
  188. /package/www/build/{p-72a7eb26.entry.js.map → p-966cbf03.entry.js.map} +0 -0
  189. /package/www/build/{p-30575221.entry.js.map → p-a0ed0c63.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"z-popover.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,8yGAA8yG,CAAC;AACj0G,uBAAe,SAAS;;ACExB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,eAAe,CAAC;AAOlD,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAAE;QAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,aAAa,CAAC;AAC/B,CAAC;AAED;;;;;AAKA,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO,MAAM,IAAI,MAAM,KAAK,gBAAgB,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;;QAG/C,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC7E,OAAO,MAAM,CAAC;SACf;;QAGD,MAAM,oBAAoB,GAAG,QAAQ,KAAK,SAAS,CAAC;QACpD,MAAM,qBAAqB,GAAG,SAAS,KAAK,SAAS,CAAC;QACtD,MAAM,qBAAqB,GAAG,SAAS,KAAK,SAAS,CAAC;QAEtD,IACE,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,IAAI,qBAAqB;aAC1F,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,oBAAoB,IAAI,qBAAqB,CAAC,EAC1F;YACA,OAAO,MAAM,CAAC;SACf;QAED,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACnC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;AAMA,SAAS,aAAa,CAAC,OAAoB,EAAE,kBAAgC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC;IAE7B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,OAAO,YAAY,IAAI,YAAY,KAAK,kBAAkB,EAAE;QAC1D,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC;;QAGhC,IAAI,YAAY,KAAK,QAAQ,CAAC,IAAI,EAAE;YAClC,GAAG,IAAI,YAAY,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;SAClE;aAAM;YACL,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC;SAC/B;;QAGD,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACpD,MAAM,EAAC,SAAS,EAAC,GAAG,KAAK,CAAC;YAE1B,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE;gBACrC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC;gBACtB,IAAI,YAAY,KAAK,QAAQ,CAAC,IAAI,EAAE;oBAClC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC;iBACtB;aACF;SACF;QAED,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YAC9B,MAAM;SACP;QAED,YAAY,GAAG,YAAY,CAAC,YAA2B,CAAC;KACzD;IAED,IAAI,WAAmB,CAAC;IACxB,IAAI,YAAoB,CAAC;IACzB,IAAI,YAAY,KAAK,QAAQ,CAAC,IAAI,EAAE;QAClC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;KACnC;SAAM;QACL,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QACvC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;KAC1C;IAED,MAAM,KAAK,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC;IAE3C,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;AACnD,CAAC;MAqBY,QAAQ;;;;;QAgEF,mBAAc,GAAG,CAAC,CAAC;wBAzDPA,uBAAe,CAAC,GAAG;oBAMzC,KAAK;;yBAaA,KAAK;sBAMR,KAAK;wBAOH,IAAI;;;IA4Bf,wBAAwB,CAAC,CAAgB;QACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAKC,oBAAY,CAAC,GAAG,EAAE;YAC/C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACnB;KACF;;;;;;;IASD,kBAAkB,CAAC,CAAa;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAChC,OAAO;SACR;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;YACvC,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAE/B,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACnC,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpD;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBACtB,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACnD;YAED,IAAI,kBAAkB,EAAE;;gBAEtB,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;YAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,CAAC;SAC5D;KACF;IAGD,gBAAgB,CAAC,QAAyB;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAACD,uBAAe,CAAC,CAAC,QAAQ,CAAC,QAA2B,CAAC,IAAI,QAAQ,KAAKA,uBAAe,CAAC,IAAI,EAAE;YAC9G,QAAQ,GAAGA,uBAAe,CAAC,GAAG,CAAC;SAChC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;;IAMD,MAAM;QACJ,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,WAAW,GAAG;gBAClB,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;iBACnE;aACF,CAAC;;YAGF,UAAU,CAAC;gBACT,WAAW,EAAE,CAAC;aACf,EAAE,CAAC,CAAC,CAAC;SACP;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;KACzC;;;;IAqBO,0BAA0B,CAChC,aAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,UAAkB,EAClB,cAA8B;QAE9B,MAAM,aAAa,GAAG,CAAC,SAAS,GAAG,UAAU,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;QAEtE,QACE,aAAa,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,EAC7G;KACH;IAEO,wBAAwB,CAC9B,YAAoB,EACpB,eAAuB,EACvB,UAAkB,EAClB,WAAmB,EACnB,cAA8B;QAE9B,MAAM,aAAa,GAAG,CAAC,UAAU,GAAG,WAAW,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;QAExE,QACE,YAAY,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,eAAe,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,EAC7G;KACH;IAEO,cAAc,CACpB,cAAsB,EACtB,QAAgB,EAChB,SAAiB,EACjB,cAA8B;QAE9B,OAAO,cAAc,IAAI,QAAQ,GAAG,SAAS,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;KAC5F;;;;;;;;;;IAWO,yBAAyB,CAC/B,eAAgC,EAChC,cAAuB,EACvB,cAA4B,EAC5B,cAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;QAG1C,MAAM,IAAI,GAAG,CAAC,GAAoB;YAChC,QAAQ,GAAG;gBACT,KAAKA,uBAAe,CAAC,GAAG;oBACtB,QACE,cAAc,CAAC,GAAG,IAAI,UAAU;wBAChC,IAAI,CAAC,0BAA0B,CAC7B,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,KAAK,EACpB,SAAS,EACT,cAAc,CAAC,KAAK,EACpB,cAAc,CACf,EACD;gBAEJ,KAAKA,uBAAe,CAAC,SAAS;oBAC5B,QACE,cAAc,CAAC,GAAG,IAAI,UAAU;wBAChC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,EAC1F;gBAEJ,KAAKA,uBAAe,CAAC,QAAQ;oBAC3B,QACE,cAAc,CAAC,GAAG,IAAI,UAAU;wBAChC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,EACzF;gBAEJ,KAAKA,uBAAe,CAAC,KAAK;oBACxB,QACE,cAAc,CAAC,KAAK,IAAI,SAAS;wBACjC,IAAI,CAAC,wBAAwB,CAC3B,cAAc,CAAC,GAAG,EAClB,cAAc,CAAC,MAAM,EACrB,UAAU,EACV,cAAc,CAAC,MAAM,EACrB,cAAc,CACf,EACD;gBAEJ,KAAKA,uBAAe,CAAC,YAAY;oBAC/B,QACE,cAAc,CAAC,KAAK,IAAI,SAAS;wBACjC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,EAC7F;gBAEJ,KAAKA,uBAAe,CAAC,SAAS;oBAC5B,QACE,cAAc,CAAC,KAAK,IAAI,SAAS;wBACjC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1F;gBAEJ,KAAKA,uBAAe,CAAC,MAAM;oBACzB,QACE,cAAc,CAAC,MAAM,IAAI,UAAU;wBACnC,IAAI,CAAC,0BAA0B,CAC7B,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,KAAK,EACpB,SAAS,EACT,cAAc,CAAC,KAAK,EACpB,cAAc,CACf,EACD;gBAEJ,KAAKA,uBAAe,CAAC,WAAW;oBAC9B,QACE,cAAc,CAAC,MAAM,IAAI,UAAU;wBACnC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,EACzF;gBAEJ,KAAKA,uBAAe,CAAC,YAAY;oBAC/B,QACE,cAAc,CAAC,MAAM,IAAI,UAAU;wBACnC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,EAC1F;gBAEJ,KAAKA,uBAAe,CAAC,IAAI;oBACvB,QACE,cAAc,CAAC,IAAI,IAAI,SAAS;wBAChC,IAAI,CAAC,wBAAwB,CAC3B,cAAc,CAAC,GAAG,EAClB,cAAc,CAAC,MAAM,EACrB,UAAU,EACV,cAAc,CAAC,MAAM,EACrB,cAAc,CACf,EACD;gBAEJ,KAAKA,uBAAe,CAAC,QAAQ;oBAC3B,QACE,cAAc,CAAC,IAAI,IAAI,SAAS;wBAChC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1F;gBAEJ,KAAKA,uBAAe,CAAC,WAAW;oBAC9B,QACE,cAAc,CAAC,IAAI,IAAI,SAAS;wBAChC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,EAC7F;gBAEJ;oBACE,OAAO,KAAK,CAAC;aAChB;SACF,CAAC;;QAGF,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE;YACzB,OAAO,eAAe,CAAC;SACxB;;QAGD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC;QACzC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEtD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;YACrB,OAAO,eAAe,CAAC;SACxB;;QAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;YACrD,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACb,OAAO,GAAG,CAAC;aACZ;SACF;;QAGD,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;KACtD;;;;IAKO,wBAAwB,CAAC,cAAuB;;QAEtD,MAAM,uBAAuB,GAC3B,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,IAAI,GAAGA,uBAAe,CAAC,KAAK,GAAGA,uBAAe,CAAC,IAAI,CAAC;QAE7F,MAAM,qBAAqB,GACzB,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,GAAGA,uBAAe,CAAC,MAAM,GAAGA,uBAAe,CAAC,GAAG,CAAC;;QAG7F,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAE7E,MAAM,aAAa,GAAG,gBAAgB,IAAI,kBAAkB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;;;QAI/G,IAAI,uBAAuB,GAAG,KAAK,CAAC;QAEpC,IAAI,aAAa,KAAK,qBAAqB,EAAE;;YAE3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;YAC/E,uBAAuB,GAAG,kBAAkB,IAAI,kBAAkB,GAAG,CAAC,CAAC;SACxE;aAAM;;YAEL,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YAC7E,uBAAuB,GAAG,gBAAgB,IAAI,gBAAgB,GAAG,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,uBAAuB,EAAE;YAC5B,OAAO,aAAa,CAAC;SACtB;QAED,MAAM,kBAAkB,GACtB,aAAa,KAAK,qBAAqB,GAAG,uBAAuB,GAAG,qBAAqB,CAAC;;QAG5F,OAAO,GAAG,aAAa,IAAI,kBAAkB,EAAqB,CAAC;KACpE;;;;IAKO,uBAAuB,CAC7B,gBAAwC,EACxC,eAA4B,EAC5B,qBAA8B;QAE9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC;QAC7D,MAAM,MAAM,GACV,qBAAqB,CAAC,MAAM,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC;QAC9G,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC;QAChE,MAAM,KAAK,GACT,qBAAqB,CAAC,KAAK,IAAI,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC;QAE9G,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAClH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,IAAI,GAAG,qBAAqB,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhH,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC;SAC9C,CAAC;KACH;;;;IAKO,wBAAwB,CAC9B,gBAAyB,EACzB,oBAA6B;QAE7B,OAAO;YACL,GAAG,EAAE,gBAAgB,CAAC,GAAG,GAAG,oBAAoB,CAAC,GAAG;YACpD,KAAK,EAAE,gBAAgB,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK;YAC1D,MAAM,EAAE,gBAAgB,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM;YAC7D,IAAI,EAAE,gBAAgB,CAAC,IAAI,GAAG,oBAAoB,CAAC,IAAI;SACxD,CAAC;KACH;;;;IAKO,mBAAmB,CACzB,QAAyB,EACzB,KAA0B,EAC1B,OAAgB,EAChB,iBAA+B,EAC/B,cAAuB,EACvB,cAA8B,EAC9B,aAAqB;QAErB,MAAM,iBAAiB,GAAG,CAAC,CAAC;;QAE5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;QACnB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAErB,QAAQ,QAAQ;YACd,KAAKA,uBAAe,CAAC,GAAG,CAAC;YACzB,KAAKA,uBAAe,CAAC,SAAS;gBAC5B,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC;gBAChE,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,KAAKA,uBAAe,CAAC,SAAS,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC3I,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,GAAG,GAAG,iBAAiB,IAAI,CAAC;gBAChE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,SAAS,EAAE;oBAC1C,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,IAAI,CAAC;iBACzF;gBACD,MAAM;YAER,KAAKA,uBAAe,CAAC,QAAQ;gBAC3B,KAAK,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,GAAG,aAAa,IAAI,CAAC;gBAC9F,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC;gBAChE,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,IAAI,IAAI,CAAC;gBAC5C,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,GAAG,GAAG,iBAAiB,IAAI,CAAC;gBAChE,MAAM;YAER,KAAKA,uBAAe,CAAC,MAAM,CAAC;YAC5B,KAAKA,uBAAe,CAAC,YAAY;gBAC/B,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC;gBAC1D,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,KAAKA,uBAAe,CAAC,YAAY,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC9I,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,IAAI,CAAC;gBACnE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,YAAY,EAAE;oBAC7C,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,IAAI,CAAC;iBACzF;gBACD,MAAM;YAER,KAAKA,uBAAe,CAAC,WAAW;gBAC9B,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,IAAI,CAAC;gBAC1D,KAAK,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,GAAG,cAAc,GAAG,aAAa,IAAI,CAAC;gBAC9F,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,IAAI,IAAI,CAAC;gBAC5C,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,IAAI,CAAC;gBACnE,MAAM;YAER,KAAKA,uBAAe,CAAC,KAAK,CAAC;YAC3B,KAAKA,uBAAe,CAAC,YAAY;gBAC/B,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,QAAQ,KAAKA,uBAAe,CAAC,YAAY,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC7I,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBAC3D,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,KAAK,GAAG,iBAAiB,IAAI,CAAC;gBACjE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,KAAK,EAAE;oBACtC,KAAK,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC;iBACnI;qBAAM;oBACL,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC;iBAC5F;gBACD,MAAM;YAER,KAAKA,uBAAe,CAAC,SAAS;gBAC5B,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,GAAG,aAAa,IAAI,CAAC;gBACjG,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBAC3D,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,KAAK,GAAG,iBAAiB,IAAI,CAAC;gBACjE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,SAAS,EAAE;oBAC1C,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC;iBACzF;gBACD,MAAM;YAER,KAAKA,uBAAe,CAAC,IAAI,CAAC;YAC1B,KAAKA,uBAAe,CAAC,WAAW;gBAC9B,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,QAAQ,KAAKA,uBAAe,CAAC,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5I,KAAK,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBAC7D,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,IAAI,GAAG,iBAAiB,IAAI,CAAC;gBAChE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,WAAW,EAAE;oBAC5C,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC;iBAC5F;gBACD,MAAM;YAER,KAAKA,uBAAe,CAAC,QAAQ;gBAC3B,KAAK,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;gBAC7D,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,GAAG,aAAa,IAAI,CAAC;gBACjG,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,CAAC,IAAI,GAAG,iBAAiB,IAAI,CAAC;gBAChE,IAAI,QAAQ,KAAKA,uBAAe,CAAC,QAAQ,EAAE;oBACzC,KAAK,CAAC,SAAS,GAAG,GAAG,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC;iBACzF;gBACD,MAAM;SACT;KACF;;;;IAKO,WAAW;QACjB,IAAI,YAAyB,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YACnC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC;SAClF;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;SAC5B;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAA4B,CAAC;SACvD;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,YAAY,CAAgB,CAAC;QAC1E,MAAM,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAA2B,CAAC;QAE9D,MAAM,oBAAoB,GAAG,eAAe;cACxC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;cAC/C,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAEtE,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAC9G,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,IAAI,CAAC,QAAQ,EACb,cAAc,EACd,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAC,EAChE,cAAc,CACf,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAEpH,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;KACjC;IAED,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,oBAAoB;QAClB,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACpD;IAED,MAAM;QACJ,QACEE,QAACC,UAAI,yEAAmB,IAAI,CAAC,eAAe,IAC1CD,oEAAa,CACR,EACP;KACH;;;;;;;AAhcD;AACwB,sBAAa,GAAsB;IACzDF,uBAAe,CAAC,SAAS;IACzBA,uBAAe,CAAC,GAAG;IACnBA,uBAAe,CAAC,QAAQ;IACxBA,uBAAe,CAAC,YAAY;IAC5BA,uBAAe,CAAC,KAAK;IACrBA,uBAAe,CAAC,SAAS;IACzBA,uBAAe,CAAC,WAAW;IAC3BA,uBAAe,CAAC,MAAM;IACtBA,uBAAe,CAAC,YAAY;IAC5BA,uBAAe,CAAC,QAAQ;IACxBA,uBAAe,CAAC,IAAI;IACpBA,uBAAe,CAAC,WAAW;CAZQ,CAa1B;;;;;","names":["PopoverPosition","KeyboardCode","h","Host"],"sources":["src/components/z-popover/styles.css?tag=z-popover&encapsulation=shadow","src/components/z-popover/index.tsx"],"sourcesContent":[":host {\n --z-popover-theme--surface: ;\n --z-popover-theme--text: ;\n --z-popover-padding: ;\n --z-popover-shadow-filter: ;\n\n position: absolute;\n display: none;\n min-width: calc(var(--space-unit) * 8);\n max-width: 100%;\n min-height: calc(var(--space-unit) * 4);\n max-height: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--z-popover-padding, 0);\n background: var(--z-popover-theme--surface, var(--color-surface01));\n border-radius: var(--border-radius-small);\n color: var(--z-popover-theme--text, var(--color-default-text));\n fill: currentcolor;\n filter: var(--z-popover-shadow-filter, drop-shadow(0 1px 2px var(--shadow-color-base)));\n font-family: var(--font-family-sans);\n text-align: center;\n}\n\n:host([open]:not([current-position])) {\n visibility: hidden;\n}\n\n:host([open][current-position]),\n:host([open=\"true\"][current-position]) {\n display: flex;\n}\n\n:host([center][current-position=\"top\"]),\n:host([center][current-position=\"bottom\"]) {\n transform: translateX(-50%);\n}\n\n:host([center][current-position=\"right\"]),\n:host([center][current-position=\"left\"]) {\n transform: translateY(-50%);\n}\n\n:host([current-position^=\"top\"]) {\n margin: 0 0 var(--space-unit);\n}\n\n:host([current-position^=\"bottom\"]) {\n margin: var(--space-unit) 0 0;\n}\n\n:host([current-position^=\"left\"]) {\n margin: 0 var(--space-unit) 0 0;\n}\n\n:host([current-position^=\"right\"]) {\n margin: 0 0 0 var(--space-unit);\n}\n\n/* Arrow style */\n\n:host([current-position])::before {\n --arrow-size: 6px;\n --arrow-edge-offset: calc(100% - var(--space-unit) - (var(--arrow-size) / 2));\n --arrow-center-x-offset: calc(50% - (var(--arrow-size) / 2));\n --arrow-center-y-offset: calc(100% - (var(--arrow-size) / 2));\n\n position: absolute;\n display: block;\n width: var(--arrow-size);\n height: var(--arrow-size);\n background: var(--z-popover-theme--surface, var(--color-surface01));\n content: \"\";\n transform: rotate(45deg);\n}\n\n:host([show-arrow=\"false\"])::before,\n:host(:not([show-arrow]))::before {\n display: none;\n}\n\n:host([current-position^=\"top\"])::before {\n top: var(--arrow-center-y-offset);\n}\n\n:host([current-position^=\"bottom\"])::before {\n bottom: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"top\"])::before,\n:host([current-position=\"bottom\"])::before {\n right: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right\"])::before,\n:host([current-position=\"left\"])::before {\n bottom: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right\"])::before {\n right: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"left\"])::before {\n left: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"top_right\"])::before,\n:host([current-position=\"bottom_right\"])::before {\n right: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"top_left\"])::before,\n:host([current-position=\"bottom_left\"])::before {\n left: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right_top\"])::before,\n:host([current-position=\"left_top\"])::before {\n top: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right_top\"])::before,\n:host([current-position=\"right_bottom\"])::before {\n right: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"left_top\"])::before,\n:host([current-position=\"left_bottom\"])::before {\n left: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"right_bottom\"])::before,\n:host([current-position=\"left_bottom\"])::before {\n bottom: var(--arrow-edge-offset);\n}\n\n:host([center][current-position=\"top\"])::before,\n:host([center][current-position=\"bottom\"])::before {\n right: auto;\n left: var(--arrow-center-x-offset);\n}\n\n:host([center][current-position=\"right\"])::before,\n:host([center][current-position=\"left\"])::before {\n top: var(--arrow-center-x-offset);\n bottom: auto;\n}\n\n::slotted(*) {\n overflow: auto;\n flex: 1 auto;\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {KeyboardCode, PopoverPosition} from \"../../beans\";\n\nconst DOCUMENT_ELEMENT = document.documentElement;\n\ntype Offsets = {top: number; right: number; bottom: number; left: number};\ntype ElementSizes = {width: number; height: number};\n/** Centering offset modifier. 0 for no offset, 0.5 for centering. */\ntype OffsetModifier = 0 | 0.5;\n\nfunction getParentElement(element: Element): Element {\n if (element.parentNode === element.shadowRoot) {\n return element.shadowRoot.host;\n }\n\n return element.parentElement;\n}\n\n/**\n * Find the closest scrollable parent of a node.\n *\n * @param {Element} element The node\n */\nfunction findScrollableParent(element: Element): Element {\n let parent = getParentElement(element);\n\n while (parent && parent !== DOCUMENT_ELEMENT) {\n const style = window.getComputedStyle(parent);\n const {overflow, overflowX, overflowY} = style;\n\n // Check for hidden overflow first (early return)\n if (overflow === \"hidden\" || overflowY === \"hidden\" || overflowX === \"hidden\") {\n return parent;\n }\n\n // Only check scrollable if overflow is not visible\n const isOverflowNotVisible = overflow !== \"visible\";\n const isOverflowYNotVisible = overflowY !== \"visible\";\n const isOverflowXNotVisible = overflowX !== \"visible\";\n\n if (\n (parent.scrollHeight > parent.clientHeight && isOverflowNotVisible && isOverflowYNotVisible) ||\n (parent.scrollWidth > parent.clientWidth && isOverflowNotVisible && isOverflowXNotVisible)\n ) {\n return parent;\n }\n\n parent = getParentElement(parent);\n }\n\n return DOCUMENT_ELEMENT;\n}\n\n/**\n * Calculate computed offset.\n * It includes matrix transformations.\n * @param element The target element.\n * @param targetParentOffset The relative offset parent.\n */\nfunction computeOffset(element: HTMLElement, targetParentOffset?: HTMLElement): Offsets & ElementSizes {\n const rect = element.getBoundingClientRect();\n const {width, height} = rect;\n\n let top = 0;\n let left = 0;\n let offsetParent = element;\n\n while (offsetParent && offsetParent !== targetParentOffset) {\n left += offsetParent.offsetLeft;\n\n // document.body sometimes has offsetTop == 0 but still has an offset because of children margins!\n if (offsetParent === document.body) {\n top += offsetParent.getBoundingClientRect().top + window.scrollY;\n } else {\n top += offsetParent.offsetTop;\n }\n\n // Handle CSS transforms only when DOMMatrix is available\n if (window.DOMMatrix) {\n const style = window.getComputedStyle(offsetParent);\n const {transform} = style;\n\n if (transform && transform !== \"none\") {\n const domMatrix = new DOMMatrix(transform);\n left += domMatrix.m41;\n if (offsetParent !== document.body) {\n top += domMatrix.m42;\n }\n }\n }\n\n if (!offsetParent.offsetParent) {\n break;\n }\n\n offsetParent = offsetParent.offsetParent as HTMLElement;\n }\n\n let parentWidth: number;\n let parentHeight: number;\n if (offsetParent === document.body) {\n parentWidth = window.innerWidth;\n parentHeight = window.innerHeight;\n } else {\n parentWidth = offsetParent.offsetWidth;\n parentHeight = offsetParent.offsetHeight;\n }\n\n const right = parentWidth - left - width;\n const bottom = parentHeight - top - height;\n\n return {top, right, bottom, left, width, height};\n}\n\n/**\n * Popover component.\n * This component displays a popover that can be bound to an element.\n * It supports various positions and can automatically adjust its position based on available space.\n *\n * Notes:\n * - To ensure the positioning algorithm finds the right container when calculating the position, set its container's `position` to `relative`.\n * - Consider manually adjusting the size of the slotted element (using `max-width`, `max-height`, etc...) when its content is \"fluid\" (like a big text), because it can interfere with the position calculation (for example a long text on one single line can be bigger than the available space, letting the algorithm think that the popover doesn't fit in the available space).\n *\n * @cssprop --z-popover-theme--surface - background color of the popover.\n * @cssprop --z-popover-theme--text - foreground color of the popover.\n * @cssprop --z-popover-padding - padding of the popover.\n * @cssprop --z-popover-shadow-filter - drop-shadow filter of the popover. Defaults to `drop-shadow(0 1px 2px var(--shadow-color-base))`.\n */\n@Component({\n tag: \"z-popover\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZPopover {\n /**\n * The preferred position to render the popover.\n * The popover will automatically search another position if not enough space is available for the preferred position.\n * If the preferred position is not available, it will try to find the best position starting from `TOP` and going clockwise.\n */\n @Prop({reflect: true, mutable: true})\n position?: PopoverPosition = PopoverPosition.TOP;\n\n /**\n * The open state of the popover.\n */\n @Prop({reflect: true, mutable: true})\n open = false;\n\n /**\n * The selector or the element bound with the popover.\n * If string css selector is provided make sure to use a valid selector.\n */\n @Prop()\n bindTo?: string | HTMLElement;\n\n /**\n * Whether to show popover's arrow.\n */\n @Prop({reflect: true})\n showArrow = false;\n\n /**\n * Whether to center the popup on the main side (according to \"position\").\n */\n @Prop({reflect: true})\n center = false;\n\n /**\n * If true, the popover can be closed by clicking outside of it or pressing the escape key.\n * Otherwise, it will be closed only programmatically (by setting `open` to `false`).\n */\n @Prop()\n closable = true;\n\n /**\n * The current position of the popover.\n * It differs from `position` only when calculated automatically (position=auto) or when the position is recalculated for space reasons.\n */\n @State()\n currentPosition?: PopoverPosition;\n\n /**\n * Position change event.\n */\n @Event()\n positionChange: EventEmitter;\n\n /**\n * Open change event.\n */\n @Event()\n openChange: EventEmitter;\n\n @Element() host: HTMLZPopoverElement;\n\n private animationFrameRequestId?: number;\n\n private readonly spaceTolerance = 3; // 3px tolerance for space calculations\n\n @Listen(\"keyup\", {target: \"window\"})\n closePopoverWithKeyboard(e: KeyboardEvent): void {\n if (this.closable && e.key === KeyboardCode.ESC) {\n this.open = false;\n }\n }\n\n /**\n * Close the popover when clicking outside of its content.\n * Stop event propagation if the click was fired by popover's trigger element,\n * to prevent close and reopen glitches.\n * @param {MouseEvent} e\n */\n @Listen(\"click\", {target: \"body\", capture: true})\n handleOutsideClick(e: MouseEvent): void {\n if (!this.closable || !this.open) {\n return;\n }\n\n const eventPath = e.composedPath();\n if (!eventPath.includes(this.host)) {\n const target = e.target as HTMLElement;\n let triggerElemClicked = false;\n\n if (typeof this.bindTo === \"string\") {\n triggerElemClicked = !!target.closest(this.bindTo);\n } else if (this.bindTo) {\n triggerElemClicked = this.bindTo.contains(target);\n }\n\n if (triggerElemClicked) {\n // stop propagation if the click was on the trigger element to prevent close and reopen glitches\n e.stopPropagation();\n }\n\n this.open = false;\n this.positionChange.emit({position: this.currentPosition});\n }\n }\n\n @Watch(\"position\")\n validatePosition(newValue: PopoverPosition): void {\n if (!Object.values(PopoverPosition).includes(newValue as PopoverPosition) || newValue === PopoverPosition.AUTO) {\n newValue = PopoverPosition.TOP;\n }\n\n this.position = newValue;\n this.currentPosition = newValue;\n this.positionChange.emit({position: this.currentPosition});\n this.setPosition();\n }\n\n /**\n * Setup popover behaviors on opening.\n */\n @Watch(\"open\")\n onOpen(): void {\n cancelAnimationFrame(this.animationFrameRequestId);\n\n if (this.open) {\n const setPosition = (): void => {\n if (this.open) {\n this.setPosition();\n this.animationFrameRequestId = requestAnimationFrame(setPosition);\n }\n };\n\n // call `setPosition` after a tick to ensure the DOM is ready and sizes are available\n setTimeout(() => {\n setPosition();\n }, 0);\n }\n\n this.openChange.emit({open: this.open});\n }\n\n // Clockwise order of positions.\n private static readonly positionOrder: PopoverPosition[] = [\n PopoverPosition.TOP_RIGHT,\n PopoverPosition.TOP,\n PopoverPosition.TOP_LEFT,\n PopoverPosition.RIGHT_BOTTOM,\n PopoverPosition.RIGHT,\n PopoverPosition.RIGHT_TOP,\n PopoverPosition.BOTTOM_LEFT,\n PopoverPosition.BOTTOM,\n PopoverPosition.BOTTOM_RIGHT,\n PopoverPosition.LEFT_TOP,\n PopoverPosition.LEFT,\n PopoverPosition.LEFT_BOTTOM,\n ] as const;\n\n /**\n * Helper functions for space calculation\n */\n private hasCenteredHorizontalSpace(\n availableLeft: number,\n availableRight: number,\n hostWidth: number,\n boundWidth: number,\n offsetModifier: OffsetModifier\n ): boolean {\n const requiredSpace = (hostWidth - boundWidth) * (1 - offsetModifier);\n\n return (\n availableLeft >= requiredSpace - this.spaceTolerance && availableRight >= requiredSpace - this.spaceTolerance\n );\n }\n\n private hasCenteredVerticalSpace(\n availableTop: number,\n availableBottom: number,\n hostHeight: number,\n boundHeight: number,\n offsetModifier: OffsetModifier\n ): boolean {\n const requiredSpace = (hostHeight - boundHeight) * (1 - offsetModifier);\n\n return (\n availableTop >= requiredSpace - this.spaceTolerance && availableBottom >= requiredSpace - this.spaceTolerance\n );\n }\n\n private hasOffsetSpace(\n availableSpace: number,\n hostSize: number,\n boundSize: number,\n offsetModifier: OffsetModifier\n ): boolean {\n return availableSpace >= hostSize - boundSize * (1 - offsetModifier) - this.spaceTolerance;\n }\n\n /**\n * Given a desired position and available space around the bound element, returns the best position\n * that fits the popover, trying all positions if needed.\n * Takes into account offsetModifier for centering.\n * @param desiredPosition The desired position of the popover.\n * @param availableSpace The available space around the bound element.\n * @param boundElemSizes The sizes of the bound element.\n * @param offsetModifier The modifier to apply to the offset for centering.\n */\n private getOptimalPopoverPosition(\n desiredPosition: PopoverPosition,\n availableSpace: Offsets,\n boundElemSizes: ElementSizes,\n offsetModifier: OffsetModifier\n ): PopoverPosition {\n const hostWidth = this.host.offsetWidth;\n const hostHeight = this.host.offsetHeight;\n\n // Check if the desired position has enough space\n const fits = (pos: PopoverPosition): boolean => {\n switch (pos) {\n case PopoverPosition.TOP:\n return (\n availableSpace.top >= hostHeight &&\n this.hasCenteredHorizontalSpace(\n availableSpace.left,\n availableSpace.right,\n hostWidth,\n boundElemSizes.width,\n offsetModifier\n )\n );\n\n case PopoverPosition.TOP_RIGHT:\n return (\n availableSpace.top >= hostHeight &&\n this.hasOffsetSpace(availableSpace.right, hostWidth, boundElemSizes.width, offsetModifier)\n );\n\n case PopoverPosition.TOP_LEFT:\n return (\n availableSpace.top >= hostHeight &&\n this.hasOffsetSpace(availableSpace.left, hostWidth, boundElemSizes.width, offsetModifier)\n );\n\n case PopoverPosition.RIGHT:\n return (\n availableSpace.right >= hostWidth &&\n this.hasCenteredVerticalSpace(\n availableSpace.top,\n availableSpace.bottom,\n hostHeight,\n boundElemSizes.height,\n offsetModifier\n )\n );\n\n case PopoverPosition.RIGHT_BOTTOM:\n return (\n availableSpace.right >= hostWidth &&\n this.hasOffsetSpace(availableSpace.bottom, hostHeight, boundElemSizes.height, offsetModifier)\n );\n\n case PopoverPosition.RIGHT_TOP:\n return (\n availableSpace.right >= hostWidth &&\n this.hasOffsetSpace(availableSpace.top, hostHeight, boundElemSizes.height, offsetModifier)\n );\n\n case PopoverPosition.BOTTOM:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasCenteredHorizontalSpace(\n availableSpace.left,\n availableSpace.right,\n hostWidth,\n boundElemSizes.width,\n offsetModifier\n )\n );\n\n case PopoverPosition.BOTTOM_LEFT:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasOffsetSpace(availableSpace.left, hostWidth, boundElemSizes.width, offsetModifier)\n );\n\n case PopoverPosition.BOTTOM_RIGHT:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasOffsetSpace(availableSpace.right, hostWidth, boundElemSizes.width, offsetModifier)\n );\n\n case PopoverPosition.LEFT:\n return (\n availableSpace.left >= hostWidth &&\n this.hasCenteredVerticalSpace(\n availableSpace.top,\n availableSpace.bottom,\n hostHeight,\n boundElemSizes.height,\n offsetModifier\n )\n );\n\n case PopoverPosition.LEFT_TOP:\n return (\n availableSpace.left >= hostWidth &&\n this.hasOffsetSpace(availableSpace.top, hostHeight, boundElemSizes.height, offsetModifier)\n );\n\n case PopoverPosition.LEFT_BOTTOM:\n return (\n availableSpace.left >= hostWidth &&\n this.hasOffsetSpace(availableSpace.bottom, hostHeight, boundElemSizes.height, offsetModifier)\n );\n\n default:\n return false;\n }\n };\n\n // Check desired position first\n if (fits(desiredPosition)) {\n return desiredPosition;\n }\n\n // Find position index and create rotation starting from next position\n const positions = ZPopover.positionOrder;\n const startIndex = positions.indexOf(desiredPosition);\n\n if (startIndex === -1) {\n return desiredPosition; // fallback if position not found\n }\n\n // Try all other positions starting from the next one\n for (let i = 1; i < positions.length; i++) {\n const posIndex = (startIndex + i) % positions.length;\n const pos = positions[posIndex];\n if (fits(pos)) {\n return pos;\n }\n }\n\n // If no position fits, find the best fallback based on available space\n return this.findBestFallbackPosition(availableSpace);\n }\n\n /**\n * Find the best fallback position based on available space when no position fits perfectly\n */\n private findBestFallbackPosition(availableSpace: Offsets): PopoverPosition {\n // Determine the directions with the most space\n const bestHorizontalDirection =\n availableSpace.right >= availableSpace.left ? PopoverPosition.RIGHT : PopoverPosition.LEFT;\n\n const bestVerticalDirection =\n availableSpace.bottom >= availableSpace.top ? PopoverPosition.BOTTOM : PopoverPosition.TOP;\n\n // Choose the main direction based on which has more space\n const maxHorizontalSpace = Math.max(availableSpace.right, availableSpace.left);\n const maxVerticalSpace = Math.max(availableSpace.bottom, availableSpace.top);\n\n const mainDirection = maxVerticalSpace >= maxHorizontalSpace ? bestVerticalDirection : bestHorizontalDirection;\n\n // Check if secondary direction is necessary\n // Only add secondary direction if the difference between min and max in that direction is at least double\n let needsSecondaryDirection = false;\n\n if (mainDirection === bestVerticalDirection) {\n // Main direction is vertical, check horizontal space difference\n const minHorizontalSpace = Math.min(availableSpace.right, availableSpace.left);\n needsSecondaryDirection = maxHorizontalSpace >= minHorizontalSpace * 2;\n } else {\n // Main direction is horizontal, check vertical space difference\n const minVerticalSpace = Math.min(availableSpace.bottom, availableSpace.top);\n needsSecondaryDirection = maxVerticalSpace >= minVerticalSpace * 2;\n }\n\n if (!needsSecondaryDirection) {\n return mainDirection;\n }\n\n const secondaryDirection =\n mainDirection === bestVerticalDirection ? bestHorizontalDirection : bestVerticalDirection;\n\n // Create a combined position (e.g., \"bottom_right\")\n return `${mainDirection}_${secondaryDirection}` as PopoverPosition;\n }\n\n /**\n * Calculate available space around the bound element\n */\n private calculateAvailableSpace(\n boundElementRect: Offsets & ElementSizes,\n scrollContainer: HTMLElement,\n scrollingBoundingRect: DOMRect\n ): {top: number; right: number; bottom: number; left: number} {\n const top = boundElementRect.top - scrollContainer.scrollTop;\n const bottom =\n scrollingBoundingRect.height - (boundElementRect.top + boundElementRect.height) + scrollContainer.scrollTop;\n const left = boundElementRect.left - scrollContainer.scrollLeft;\n const right =\n scrollingBoundingRect.width - (boundElementRect.left + boundElementRect.width) + scrollContainer.scrollLeft;\n\n const overflowBottom = Math.max(0, scrollingBoundingRect.top + scrollingBoundingRect.height - window.innerHeight);\n const overflowRight = Math.max(0, scrollingBoundingRect.left + scrollingBoundingRect.width - window.innerWidth);\n\n return {\n top: Math.min(top, top + scrollingBoundingRect.top),\n bottom: Math.min(bottom, bottom - overflowBottom),\n left: Math.min(left, left + scrollingBoundingRect.left),\n right: Math.min(right, right - overflowRight),\n };\n }\n\n /**\n * Calculate relative offsets for positioning\n */\n private calculateRelativeOffsets(\n boundElementRect: Offsets,\n relativeBoundingRect: Offsets\n ): {top: number; right: number; bottom: number; left: number} {\n return {\n top: boundElementRect.top - relativeBoundingRect.top,\n right: boundElementRect.right - relativeBoundingRect.right,\n bottom: boundElementRect.bottom - relativeBoundingRect.bottom,\n left: boundElementRect.left - relativeBoundingRect.left,\n };\n }\n\n /**\n * Apply positioning styles based on position\n */\n private applyPositionStyles(\n position: PopoverPosition,\n style: CSSStyleDeclaration,\n offsets: Offsets,\n boundElementSizes: ElementSizes,\n availableSpace: Offsets,\n offsetModifier: OffsetModifier,\n arrowModifier: number\n ): void {\n const distanceFromBound = 8; // 8px is the distance of the popover from the bound element\n // Reset all positioning properties\n style.top = \"auto\";\n style.right = \"auto\";\n style.bottom = \"auto\";\n style.left = \"auto\";\n style.maxWidth = \"\";\n style.maxHeight = \"\";\n\n switch (position) {\n case PopoverPosition.TOP:\n case PopoverPosition.TOP_RIGHT:\n style.bottom = `${offsets.bottom + boundElementSizes.height}px`;\n style.left = `${offsets.left + boundElementSizes.width * offsetModifier - (position === PopoverPosition.TOP_RIGHT ? arrowModifier : 0)}px`;\n style.maxHeight = `${availableSpace.top - distanceFromBound}px`;\n if (position === PopoverPosition.TOP_RIGHT) {\n style.maxWidth = `${availableSpace.right + boundElementSizes.width * offsetModifier}px`;\n }\n break;\n\n case PopoverPosition.TOP_LEFT:\n style.right = `${offsets.right + boundElementSizes.width * offsetModifier - arrowModifier}px`;\n style.bottom = `${offsets.bottom + boundElementSizes.height}px`;\n style.maxWidth = `${availableSpace.left}px`;\n style.maxHeight = `${availableSpace.top - distanceFromBound}px`;\n break;\n\n case PopoverPosition.BOTTOM:\n case PopoverPosition.BOTTOM_RIGHT:\n style.top = `${offsets.top + boundElementSizes.height}px`;\n style.left = `${offsets.left + boundElementSizes.width * offsetModifier - (position === PopoverPosition.BOTTOM_RIGHT ? arrowModifier : 0)}px`;\n style.maxHeight = `${availableSpace.bottom - distanceFromBound}px`;\n if (position === PopoverPosition.BOTTOM_RIGHT) {\n style.maxWidth = `${availableSpace.right + boundElementSizes.width * offsetModifier}px`;\n }\n break;\n\n case PopoverPosition.BOTTOM_LEFT:\n style.top = `${offsets.top + boundElementSizes.height}px`;\n style.right = `${offsets.right + boundElementSizes.width * offsetModifier - arrowModifier}px`;\n style.maxWidth = `${availableSpace.left}px`;\n style.maxHeight = `${availableSpace.bottom - distanceFromBound}px`;\n break;\n\n case PopoverPosition.RIGHT:\n case PopoverPosition.RIGHT_BOTTOM:\n style.top = `${offsets.top + boundElementSizes.height * offsetModifier - (position === PopoverPosition.RIGHT_BOTTOM ? arrowModifier : 0)}px`;\n style.left = `${offsets.left + boundElementSizes.width}px`;\n style.maxWidth = `${availableSpace.right - distanceFromBound}px`;\n if (position === PopoverPosition.RIGHT) {\n style.maxHeight = `${Math.min(availableSpace.top + availableSpace.bottom + boundElementSizes.height, window.innerHeight - 20)}px`;\n } else {\n style.maxHeight = `${availableSpace.bottom + boundElementSizes.height * offsetModifier}px`;\n }\n break;\n\n case PopoverPosition.RIGHT_TOP:\n style.bottom = `${offsets.bottom + boundElementSizes.height * offsetModifier - arrowModifier}px`;\n style.left = `${offsets.left + boundElementSizes.width}px`;\n style.maxWidth = `${availableSpace.right - distanceFromBound}px`;\n if (position === PopoverPosition.RIGHT_TOP) {\n style.maxHeight = `${availableSpace.top + boundElementSizes.height * offsetModifier}px`;\n }\n break;\n\n case PopoverPosition.LEFT:\n case PopoverPosition.LEFT_BOTTOM:\n style.top = `${offsets.top + boundElementSizes.height * offsetModifier - (position === PopoverPosition.LEFT_BOTTOM ? arrowModifier : 0)}px`;\n style.right = `${offsets.right + boundElementSizes.width}px`;\n style.maxWidth = `${availableSpace.left - distanceFromBound}px`;\n if (position === PopoverPosition.LEFT_BOTTOM) {\n style.maxHeight = `${availableSpace.bottom + boundElementSizes.height * offsetModifier}px`;\n }\n break;\n\n case PopoverPosition.LEFT_TOP:\n style.right = `${offsets.right + boundElementSizes.width}px`;\n style.bottom = `${offsets.bottom + boundElementSizes.height * offsetModifier - arrowModifier}px`;\n style.maxWidth = `${availableSpace.left - distanceFromBound}px`;\n if (position === PopoverPosition.LEFT_TOP) {\n style.maxHeight = `${availableSpace.top + boundElementSizes.height * offsetModifier}px`;\n }\n break;\n }\n }\n\n /**\n * Set the position of the popover.\n */\n private setPosition(): void {\n let boundElement: HTMLElement;\n if (typeof this.bindTo === \"string\") {\n boundElement = this.host.ownerDocument.querySelector(this.bindTo) as HTMLElement;\n } else if (this.bindTo) {\n boundElement = this.bindTo;\n } else {\n boundElement = this.host.parentElement as HTMLElement;\n }\n\n if (!boundElement) {\n return;\n }\n\n const scrollContainer = findScrollableParent(boundElement) as HTMLElement;\n const scrollingBoundingRect = scrollContainer.getBoundingClientRect();\n const offsetContainer = this.host.offsetParent as HTMLElement;\n\n const relativeBoundingRect = offsetContainer\n ? computeOffset(offsetContainer, scrollContainer)\n : {top: 0, right: 0, bottom: 0, left: 0};\n const boundElementRect = computeOffset(boundElement, scrollContainer);\n\n const availableSpace = this.calculateAvailableSpace(boundElementRect, scrollContainer, scrollingBoundingRect);\n const offsets = this.calculateRelativeOffsets(boundElementRect, relativeBoundingRect);\n const offsetModifier = this.center ? 0.5 : 0;\n const arrowModifier = this.showArrow && this.center ? 8 : 0; // 8px is the distance of the arrow center from the edge of the popover\n\n const position = this.getOptimalPopoverPosition(\n this.position,\n availableSpace,\n {width: boundElementRect.width, height: boundElementRect.height},\n offsetModifier\n );\n\n const style = this.host.style;\n this.applyPositionStyles(position, style, offsets, boundElementRect, availableSpace, offsetModifier, arrowModifier);\n\n this.currentPosition = position;\n }\n\n componentWillLoad(): void {\n this.validatePosition(this.position);\n this.onOpen();\n }\n\n componentDidLoad(): void {\n this.setPosition();\n }\n\n disconnectedCallback(): void {\n cancelAnimationFrame(this.animationFrameRequestId);\n }\n\n render(): HTMLZPopoverElement {\n return (\n <Host current-position={this.currentPosition}>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"z-popover.entry.cjs.js","mappings":"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","names":["PopoverPosition","KeyboardCode","containsElement","findScrollableParent","getDevice","Device","isElementVisibleInContainer","h","Host"],"sources":["src/components/z-popover/styles.css?tag=z-popover&encapsulation=shadow","src/components/z-popover/index.tsx"],"sourcesContent":[":host {\n --z-popover-theme--surface: ;\n --z-popover-theme--text: ;\n --z-popover-padding: ;\n --z-popover-shadow-filter: ;\n\n position: fixed;\n display: none;\n max-width: calc(100% - var(--grid-margin) * 2);\n max-height: calc(100% - var(--grid-margin) * 2);\n padding: var(--z-popover-padding, 0);\n background: var(--z-popover-theme--surface, var(--color-surface01));\n border-radius: var(--border-radius-small);\n color: var(--z-popover-theme--text, var(--color-default-text));\n fill: currentcolor;\n filter: var(--z-popover-shadow-filter, drop-shadow(0 1px 2px var(--shadow-color-base)));\n text-align: center;\n}\n\n:host([open]:not([current-position])) {\n visibility: hidden;\n}\n\n:host([open][current-position]),\n:host([open=\"true\"][current-position]) {\n display: block;\n}\n\n:host([center][current-position=\"top\"]),\n:host([center][current-position=\"bottom\"]) {\n transform: translateX(-50%);\n}\n\n:host([center][current-position=\"right\"]),\n:host([center][current-position=\"left\"]) {\n transform: translateY(-50%);\n}\n\n:host([current-position^=\"top\"]) {\n margin: 0 0 var(--space-unit);\n}\n\n:host([current-position^=\"bottom\"]) {\n margin: var(--space-unit) 0 0;\n}\n\n:host([current-position^=\"left\"]) {\n margin: 0 var(--space-unit) 0 0;\n}\n\n:host([current-position^=\"right\"]) {\n margin: 0 0 0 var(--space-unit);\n}\n\n/* Arrow style */\n\n:host([current-position])::before {\n --arrow-size: 6px;\n --arrow-edge-offset: calc(100% - var(--space-unit) - (var(--arrow-size) / 2));\n --arrow-center-x-offset: calc(50% - (var(--arrow-size) / 2));\n --arrow-center-y-offset: calc(100% - (var(--arrow-size) / 2));\n\n position: absolute;\n display: block;\n width: var(--arrow-size);\n height: var(--arrow-size);\n background: var(--z-popover-theme--surface, var(--color-surface01));\n content: \"\";\n transform: rotate(45deg);\n}\n\n:host([show-arrow=\"false\"])::before,\n:host(:not([show-arrow]))::before {\n display: none;\n}\n\n:host([current-position^=\"top\"])::before {\n top: var(--arrow-center-y-offset);\n}\n\n:host([current-position^=\"bottom\"])::before {\n bottom: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"top\"])::before,\n:host([current-position=\"bottom\"])::before {\n right: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right\"])::before,\n:host([current-position=\"left\"])::before {\n bottom: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right\"])::before {\n right: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"left\"])::before {\n left: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"top_right\"])::before,\n:host([current-position=\"bottom_right\"])::before {\n right: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"top_left\"])::before,\n:host([current-position=\"bottom_left\"])::before {\n left: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right_top\"])::before,\n:host([current-position=\"left_top\"])::before {\n top: var(--arrow-edge-offset);\n}\n\n:host([current-position=\"right_top\"])::before,\n:host([current-position=\"right_bottom\"])::before {\n right: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"left_top\"])::before,\n:host([current-position=\"left_bottom\"])::before {\n left: var(--arrow-center-y-offset);\n}\n\n:host([current-position=\"right_bottom\"])::before,\n:host([current-position=\"left_bottom\"])::before {\n bottom: var(--arrow-edge-offset);\n}\n\n:host([center][current-position=\"top\"])::before,\n:host([center][current-position=\"bottom\"])::before {\n right: auto;\n left: var(--arrow-center-x-offset);\n}\n\n:host([center][current-position=\"right\"])::before,\n:host([center][current-position=\"left\"])::before {\n top: var(--arrow-center-x-offset);\n bottom: auto;\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {Device, KeyboardCode, PopoverPosition} from \"../../beans\";\nimport {containsElement, findScrollableParent, getDevice, isElementVisibleInContainer} from \"../../utils/utils\";\n\n/** Centering offset modifier. 0 for no offset, 0.5 for centering. */\ntype OffsetModifier = 0 | 0.5;\ntype Offsets = {top: number; right: number; bottom: number; left: number};\n\n/**\n * Popover component.\n * This component displays a popover bound to an element.\n * It supports various positions and can automatically adjust it based on available space, accounting for scrollable containers.\n *\n * Notes:\n * - If positioning has an odd behavior, consider manually adjusting the size of the slotted elements (using `width`, `height`, `max-width`, `max-height`, etc...) when its content is \"fluid\" (like text), because it can interfere with the position calculation (for example a long text on one single line can be bigger than the available space, letting the algorithm think the popover doesn't fits).\n *\n * @cssprop --z-popover-theme--surface - background color of the popover.\n * @cssprop --z-popover-theme--text - foreground color of the popover.\n * @cssprop --z-popover-padding - padding of the popover.\n * @cssprop --z-popover-shadow-filter - drop-shadow filter of the popover. Defaults to `drop-shadow(0 1px 2px var(--shadow-color-base))`.\n */\n@Component({\n tag: \"z-popover\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZPopover {\n /**\n * The preferred position to render the popover.\n * The popover will automatically search another position if not enough space is available for the preferred position.\n * If the preferred position is not available, it will try to find the best position starting from `TOP` and going clockwise.\n */\n @Prop({reflect: true, mutable: true})\n position?: PopoverPosition = PopoverPosition.TOP;\n\n /** The open state of the popover. */\n @Prop({reflect: true, mutable: true})\n open = false;\n\n /**\n * The selector or the element bound with the popover.\n * If string css selector is provided make sure to use a valid selector.\n */\n @Prop()\n bindTo?: string | HTMLElement;\n\n /** Whether to show popover's arrow. */\n @Prop({reflect: true})\n showArrow = false;\n\n /** Whether to center the popup on the main side (according to \"position\"). */\n @Prop({reflect: true})\n center = false;\n\n /**\n * If true, the popover can be closed by clicking outside of it or pressing the escape key.\n * Otherwise, it will be closed only programmatically (by setting `open` to `false`).\n */\n @Prop()\n closable = true;\n\n /**\n * The current position of the popover.\n * It differs from `position` only when calculated automatically for space reasons.\n */\n @State()\n currentPosition?: PopoverPosition;\n\n @Element() host: HTMLZPopoverElement;\n\n // Clockwise order of positions.\n private static readonly positionOrder: PopoverPosition[] = [\n PopoverPosition.TOP,\n PopoverPosition.TOP_RIGHT,\n PopoverPosition.TOP_LEFT,\n PopoverPosition.RIGHT,\n PopoverPosition.RIGHT_BOTTOM,\n PopoverPosition.RIGHT_TOP,\n PopoverPosition.BOTTOM,\n PopoverPosition.BOTTOM_LEFT,\n PopoverPosition.BOTTOM_RIGHT,\n PopoverPosition.LEFT,\n PopoverPosition.LEFT_TOP,\n PopoverPosition.LEFT_BOTTOM,\n ] as const;\n\n private animationFrameRequestId?: number;\n\n /** space tolerance for space calculations */\n private readonly spaceTolerance = 3;\n\n /** The element bound to the popover. */\n private boundElement?: HTMLElement;\n\n /** Cached available space around the bound element to avoid unnecessary recalculations */\n private cachedAvailableSpace?: Offsets;\n\n /** Last bounding rect of the bound element to detect changes and eventually invalidate the caches. */\n private lastBoundRect?: DOMRect;\n\n /** Fired when the position changes. */\n @Event()\n positionChange: EventEmitter;\n\n /** Open change event. */\n @Event()\n openChange: EventEmitter;\n\n @Listen(\"keyup\", {target: \"window\"})\n closePopoverWithKeyboard(e: KeyboardEvent): void {\n if (this.closable && e.key === KeyboardCode.ESC) {\n this.open = false;\n }\n }\n\n /**\n * Close the popover when clicking outside of its content.\n * Stop event propagation if the click was fired by popover's trigger element,\n * to prevent close and reopen glitches.\n */\n @Listen(\"click\", {target: \"body\", capture: true})\n handleOutsideClick(e: MouseEvent): void {\n const target = e.target as Element;\n if (!this.closable || !this.open || containsElement(this.host, target)) {\n return;\n }\n\n if (containsElement(this.boundElement, target)) {\n // stop propagation if the click was on the trigger element to prevent close and reopen glitches\n e.stopPropagation();\n }\n this.open = false;\n }\n\n @Watch(\"position\")\n validatePosition(newValue: PopoverPosition): void {\n if (!Object.values(PopoverPosition).includes(newValue as PopoverPosition) || newValue === PopoverPosition.AUTO) {\n newValue = PopoverPosition.TOP;\n this.position = newValue;\n }\n this.currentPosition = newValue;\n if (this.open) {\n this.setPosition();\n }\n }\n\n /** Setup popover behaviors when `open` changes. */\n @Watch(\"open\")\n onOpen(): void {\n cancelAnimationFrame(this.animationFrameRequestId);\n this.openChange.emit({open: this.open});\n if (!this.open) {\n return;\n }\n\n const updatePositionLoop = (): void => {\n if (!this.open) {\n return;\n }\n\n this.setPosition();\n this.animationFrameRequestId = requestAnimationFrame(updatePositionLoop);\n };\n\n // call `setPosition` after a tick to ensure the DOM is ready and sizes are available\n setTimeout(() => {\n updatePositionLoop();\n }, 0);\n }\n\n @Watch(\"bindTo\")\n onBindingChange(): void {\n this.findBoundElement();\n }\n\n /** Returns the offset modifier to use in calculations to align the popover with the bound element. */\n private get offsetModifier(): OffsetModifier {\n return this.center ? 0.5 : 0;\n }\n\n private findBoundElement(): void {\n if (typeof this.bindTo === \"string\") {\n this.boundElement = this.host.ownerDocument.querySelector(this.bindTo) as HTMLElement;\n } else if (this.bindTo) {\n this.boundElement = this.bindTo;\n } else {\n this.boundElement = this.host.parentElement as HTMLElement;\n }\n }\n\n /**\n * Check if element has enough space to the right and left to be centered.\n * Used for `TOP` and `BOTTOM` position.\n * When `center` is not enabled, only one side needs to be checked and `RIGHT` is the default.\n */\n private hasCenteredHorizontalSpace(\n availableLeft: number,\n availableRight: number,\n hostWidth: number,\n boundElementWidth: number\n ): boolean {\n const requiredSideSpace = (hostWidth - boundElementWidth) * (1 - this.offsetModifier);\n\n if (!this.center) {\n return availableRight >= requiredSideSpace - this.spaceTolerance;\n }\n\n return (\n availableRight >= requiredSideSpace - this.spaceTolerance &&\n availableLeft >= requiredSideSpace - this.spaceTolerance\n );\n }\n\n /**\n * Check if element has enough space to the top and bottom to be centered.\n * Used for `RIGHT` and `LEFT` position.\n * When `center` is not enabled, only one side needs to be checked and `BOTTOM` is the default.\n */\n private hasCenteredVerticalSpace(\n availableTop: number,\n availableBottom: number,\n hostHeight: number,\n boundElementHeight: number\n ): boolean {\n const requiredSideSpace = (hostHeight - boundElementHeight) * (1 - this.offsetModifier);\n\n if (!this.center) {\n return availableBottom >= requiredSideSpace - this.spaceTolerance;\n }\n\n return (\n availableTop >= requiredSideSpace - this.spaceTolerance &&\n availableBottom >= requiredSideSpace - this.spaceTolerance\n );\n }\n\n /**\n * Check if there is enough space in the given direction to fit the popover.\n * Used for composed positions like TOP_RIGHT, LEFT_BOTTOM, etc.\n */\n private hasEnoughSideSpace(\n availableSpace: number,\n hostSize: number,\n boundElementSize: number,\n offsetModifier: OffsetModifier\n ): boolean {\n return availableSpace >= hostSize - boundElementSize * (1 - offsetModifier) - this.spaceTolerance;\n }\n\n /**\n * Given a desired position and available space around the bound element, returns the best position\n * that fits the popover, trying all positions if needed.\n * Takes into account offsetModifier for centering.\n * @param desiredPosition The desired position of the popover.\n * @param availableSpace The available space around the bound element.\n */\n private getOptimalPopoverPosition(desiredPosition: PopoverPosition, availableSpace: Offsets): PopoverPosition {\n const hostWidth = this.host.offsetWidth;\n const hostHeight = this.host.offsetHeight;\n const boundElementWidth = this.boundElement.getBoundingClientRect().width;\n const boundElementHeight = this.boundElement.getBoundingClientRect().height;\n const offsetModifier = this.offsetModifier;\n\n /** Check if there is enough space to fit the popover in the desired position */\n const fits = (pos: PopoverPosition): boolean => {\n switch (pos) {\n case PopoverPosition.TOP:\n return (\n availableSpace.top >= hostHeight - this.spaceTolerance &&\n this.hasCenteredHorizontalSpace(availableSpace.left, availableSpace.right, hostWidth, boundElementWidth)\n );\n case PopoverPosition.TOP_RIGHT:\n return (\n availableSpace.top >= hostHeight &&\n this.hasEnoughSideSpace(availableSpace.right, hostWidth, boundElementWidth, offsetModifier)\n );\n case PopoverPosition.TOP_LEFT:\n return (\n availableSpace.top >= hostHeight &&\n this.hasEnoughSideSpace(availableSpace.left, hostWidth, boundElementWidth, offsetModifier)\n );\n case PopoverPosition.RIGHT:\n return (\n availableSpace.right >= hostWidth &&\n this.hasCenteredVerticalSpace(availableSpace.top, availableSpace.bottom, hostHeight, boundElementHeight)\n );\n case PopoverPosition.RIGHT_BOTTOM:\n return (\n availableSpace.right >= hostWidth &&\n this.hasEnoughSideSpace(availableSpace.bottom, hostHeight, boundElementHeight, offsetModifier)\n );\n case PopoverPosition.RIGHT_TOP:\n return (\n availableSpace.right >= hostWidth &&\n this.hasEnoughSideSpace(availableSpace.top, hostHeight, boundElementHeight, offsetModifier)\n );\n case PopoverPosition.BOTTOM:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasCenteredHorizontalSpace(availableSpace.left, availableSpace.right, hostWidth, boundElementWidth)\n );\n case PopoverPosition.BOTTOM_LEFT:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasEnoughSideSpace(availableSpace.left, hostWidth, boundElementWidth, offsetModifier)\n );\n case PopoverPosition.BOTTOM_RIGHT:\n return (\n availableSpace.bottom >= hostHeight &&\n this.hasEnoughSideSpace(availableSpace.right, hostWidth, boundElementWidth, offsetModifier)\n );\n case PopoverPosition.LEFT:\n return (\n availableSpace.left >= hostWidth &&\n this.hasCenteredVerticalSpace(availableSpace.top, availableSpace.bottom, hostHeight, boundElementHeight)\n );\n case PopoverPosition.LEFT_TOP:\n return (\n availableSpace.left >= hostWidth &&\n this.hasEnoughSideSpace(availableSpace.top, hostHeight, boundElementHeight, offsetModifier)\n );\n case PopoverPosition.LEFT_BOTTOM:\n return (\n availableSpace.left >= hostWidth &&\n this.hasEnoughSideSpace(availableSpace.bottom, hostHeight, boundElementHeight, offsetModifier)\n );\n\n default:\n return false;\n }\n };\n\n // Check desired position first\n if (fits(desiredPosition)) {\n return desiredPosition;\n }\n\n // Find position index and create rotation starting from next position\n const positions = ZPopover.positionOrder;\n const startIndex = positions.indexOf(desiredPosition);\n\n if (startIndex === -1) {\n return desiredPosition; // fallback if position not found\n }\n\n // Try all other positions starting from the next one\n for (let i = 1; i < positions.length; i++) {\n const posIndex = (startIndex + i) % positions.length;\n const pos = positions[posIndex];\n if (fits(pos)) {\n return pos;\n }\n }\n\n // If no position fits, find the best fallback based on available space\n return this.findBestFallbackPosition(availableSpace);\n }\n\n /** Find the best fallback position based on available space when no position fits perfectly. */\n private findBestFallbackPosition(availableSpace: Offsets): PopoverPosition {\n // Determine which horizontal and vertical direction has the most available space\n const bestHorizontalDirection =\n availableSpace.right >= availableSpace.left ? PopoverPosition.RIGHT : PopoverPosition.LEFT;\n\n const bestVerticalDirection =\n availableSpace.bottom >= availableSpace.top ? PopoverPosition.BOTTOM : PopoverPosition.TOP;\n\n // Choose the main direction based on which axis has more space overall\n const maxHorizontalSpace = Math.max(availableSpace.right, availableSpace.left);\n const maxVerticalSpace = Math.max(availableSpace.bottom, availableSpace.top);\n\n const mainDirection = maxVerticalSpace >= maxHorizontalSpace ? bestVerticalDirection : bestHorizontalDirection;\n\n // Decide if a secondary direction is needed\n // Only add a secondary direction if the difference between min and max in that axis is at least double\n let needsSecondaryDirection = false;\n\n if (mainDirection === bestVerticalDirection) {\n // If main direction is vertical, check horizontal space difference\n const minHorizontalSpace = Math.min(availableSpace.right, availableSpace.left);\n needsSecondaryDirection = maxHorizontalSpace >= minHorizontalSpace * 2;\n } else {\n // If main direction is horizontal, check vertical space difference\n const minVerticalSpace = Math.min(availableSpace.bottom, availableSpace.top);\n needsSecondaryDirection = maxVerticalSpace >= minVerticalSpace * 2;\n }\n\n if (!needsSecondaryDirection) {\n return mainDirection;\n }\n\n const secondaryDirection =\n mainDirection === bestVerticalDirection ? bestHorizontalDirection : bestVerticalDirection;\n\n // Return a combined position (e.g., \"bottom_right\")\n return `${mainDirection}_${secondaryDirection}` as PopoverPosition;\n }\n\n /**\n * Calculate available space around the element bound with the popover, based on its nearest scrollable ancestor.\n *\n * Calculations for `right` and `bottom` can be a little bit confusing because `boundingRect.right` and `bottom` may not be what you expect...\n * For more information see the explanation in the docs.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#return_value\n */\n private calculateAvailableSpace(): Offsets {\n const boundElementRect = this.boundElement.getBoundingClientRect();\n\n if (\n this.lastBoundRect &&\n this.lastBoundRect.x === boundElementRect.x &&\n this.lastBoundRect.y === boundElementRect.y &&\n this.lastBoundRect.width === boundElementRect.width &&\n this.lastBoundRect.height === boundElementRect.height &&\n this.cachedAvailableSpace\n ) {\n // If the bound element's rect hasn't changed, return the cached rect\n return this.cachedAvailableSpace;\n }\n\n this.lastBoundRect = boundElementRect;\n const scrollableParent = findScrollableParent(this.boundElement);\n const scrollableParentRect = scrollableParent.getBoundingClientRect();\n const hasNestedScrollableParent = scrollableParent !== this.boundElement.ownerDocument.documentElement;\n const documentWidth = this.boundElement.ownerDocument.documentElement.clientWidth;\n const documentHeight = this.boundElement.ownerDocument.documentElement.clientHeight;\n const safeSpace = 8; // extra space to avoid popover being too close to the edges\n\n // These deltas represent the offset between the scrollable parent and the viewport.\n // They are used to adjust the available space calculations when the scrollable parent is not the document or body,\n // to try to fit the popover inside the scrollable parent.\n const deltaTop = hasNestedScrollableParent ? scrollableParentRect.top : 0;\n const deltaRight = hasNestedScrollableParent ? documentWidth - scrollableParentRect.right : 0;\n const deltaBottom = hasNestedScrollableParent ? documentHeight - scrollableParentRect.bottom : 0;\n const deltaLeft = hasNestedScrollableParent ? scrollableParentRect.left : 0;\n\n this.cachedAvailableSpace = {\n top: boundElementRect.top - deltaTop - safeSpace,\n right: documentWidth - boundElementRect.right - deltaRight - safeSpace,\n bottom: documentHeight - boundElementRect.bottom - deltaBottom - safeSpace,\n left: boundElementRect.left - deltaLeft - safeSpace,\n };\n\n return this.cachedAvailableSpace;\n }\n\n /** Calculate the space around an element relative to the viewport. */\n private calculateElementOffsets(element: HTMLElement): Offsets {\n const elementRect = element.getBoundingClientRect();\n const viewportWidth = element.ownerDocument.documentElement.clientWidth;\n const viewportHeight = element.ownerDocument.documentElement.clientHeight;\n\n return {\n top: elementRect.top,\n right: viewportWidth - elementRect.right,\n bottom: viewportHeight - elementRect.bottom,\n left: elementRect.left,\n };\n }\n\n /** Apply positioning styles based on passed position. */\n private applyPositionStyles(position: PopoverPosition, availableSpace: Offsets): void {\n const boundElementWidth = this.boundElement.offsetWidth;\n const boundElementHeight = this.boundElement.offsetHeight;\n /** Distance between the popover and the bound element */\n const distanceFromBound = 8;\n const offsetModifier = this.offsetModifier;\n /** Distance between the arrow center and the popover edge. Needed to align the center of the arrow with the center of the bound element when `showArrow` and `center` are enabled. */\n const arrowModifier = this.showArrow && this.center ? 8 : 0;\n const hostStyle = this.host.style;\n const boundElementOffsets = this.calculateElementOffsets(this.boundElement);\n\n let maxWidth: number;\n let maxHeight: number;\n\n switch (position) {\n case PopoverPosition.TOP:\n case PopoverPosition.TOP_RIGHT:\n hostStyle.bottom = `${boundElementOffsets.bottom + boundElementHeight}px`;\n hostStyle.left = `${boundElementOffsets.left + boundElementWidth * offsetModifier - (position === PopoverPosition.TOP_RIGHT ? arrowModifier : 0)}px`;\n maxHeight = availableSpace.top - distanceFromBound;\n if (position === PopoverPosition.TOP_RIGHT) {\n maxWidth = availableSpace.right + boundElementWidth * offsetModifier;\n }\n break;\n\n case PopoverPosition.TOP_LEFT:\n hostStyle.right = `${boundElementOffsets.right + boundElementWidth * offsetModifier - arrowModifier}px`;\n hostStyle.bottom = `${boundElementOffsets.bottom + boundElementHeight}px`;\n maxWidth = availableSpace.left + boundElementWidth * offsetModifier;\n maxHeight = availableSpace.top - distanceFromBound;\n break;\n\n case PopoverPosition.BOTTOM:\n case PopoverPosition.BOTTOM_RIGHT:\n hostStyle.top = `${boundElementOffsets.top + boundElementHeight}px`;\n hostStyle.left = `${boundElementOffsets.left + boundElementWidth * offsetModifier - (position === PopoverPosition.BOTTOM_RIGHT ? arrowModifier : 0)}px`;\n maxHeight = availableSpace.bottom - distanceFromBound;\n if (position === PopoverPosition.BOTTOM_RIGHT) {\n maxWidth = availableSpace.right + boundElementWidth * offsetModifier;\n }\n break;\n\n case PopoverPosition.BOTTOM_LEFT:\n hostStyle.top = `${boundElementOffsets.top + boundElementHeight}px`;\n hostStyle.right = `${boundElementOffsets.right + boundElementWidth * offsetModifier - arrowModifier}px`;\n maxWidth = availableSpace.left + boundElementWidth * offsetModifier;\n maxHeight = availableSpace.bottom - distanceFromBound;\n break;\n\n case PopoverPosition.RIGHT:\n case PopoverPosition.RIGHT_BOTTOM:\n hostStyle.top = `${boundElementOffsets.top + boundElementHeight * offsetModifier - (position === PopoverPosition.RIGHT_BOTTOM ? arrowModifier : 0)}px`;\n hostStyle.left = `${boundElementOffsets.left + boundElementWidth}px`;\n maxWidth = availableSpace.right - distanceFromBound;\n if (position === PopoverPosition.RIGHT) {\n maxHeight = availableSpace.top + availableSpace.bottom + boundElementHeight;\n } else {\n maxHeight = availableSpace.bottom + boundElementHeight * offsetModifier;\n }\n break;\n\n case PopoverPosition.RIGHT_TOP:\n hostStyle.bottom = `${boundElementOffsets.bottom + boundElementHeight * offsetModifier - arrowModifier}px`;\n hostStyle.left = `${boundElementOffsets.left + boundElementWidth}px`;\n maxWidth = availableSpace.right - distanceFromBound;\n maxHeight = availableSpace.top + boundElementHeight * offsetModifier;\n break;\n\n case PopoverPosition.LEFT:\n case PopoverPosition.LEFT_BOTTOM:\n hostStyle.top = `${boundElementOffsets.top + boundElementHeight * offsetModifier - (position === PopoverPosition.LEFT_BOTTOM ? arrowModifier : 0)}px`;\n hostStyle.right = `${boundElementOffsets.right + boundElementWidth}px`;\n maxWidth = availableSpace.left - distanceFromBound;\n if (position === PopoverPosition.LEFT_BOTTOM) {\n maxHeight = availableSpace.bottom + boundElementHeight * offsetModifier;\n }\n break;\n\n case PopoverPosition.LEFT_TOP:\n hostStyle.right = `${boundElementOffsets.right + boundElementWidth}px`;\n hostStyle.bottom = `${boundElementOffsets.bottom + boundElementHeight * offsetModifier - arrowModifier}px`;\n maxWidth = availableSpace.left - distanceFromBound;\n maxHeight = availableSpace.top + boundElementHeight * offsetModifier;\n break;\n }\n\n if (getDevice() !== Device.MOBILE) {\n // Only force max sizes on non-mobile viewports\n hostStyle.maxWidth = maxWidth ? `${maxWidth}px` : \"\";\n hostStyle.maxHeight = maxHeight ? `${maxHeight}px` : \"\";\n }\n }\n\n /** Set the position of the popover. */\n private setPosition(): void {\n if (!this.boundElement) {\n return;\n }\n\n if (!isElementVisibleInContainer(this.boundElement, findScrollableParent(this.boundElement))) {\n // If the bound element is not visible, hide the popover too\n this.open = false;\n\n return;\n }\n\n Object.assign(this.host.style, {\n // Reset all positioning properties\n top: \"auto\",\n right: \"auto\",\n bottom: \"auto\",\n left: \"auto\",\n maxWidth: \"\",\n maxHeight: \"\",\n // Set initial visibility to hidden while calculating position...\n visibility: \"hidden\",\n });\n\n const availableSpace = this.calculateAvailableSpace();\n const position = this.getOptimalPopoverPosition(this.position, availableSpace);\n\n this.applyPositionStyles(position, availableSpace);\n this.currentPosition = position;\n this.positionChange.emit({position: this.currentPosition});\n\n // ...then restore the visibility\n this.host.style.visibility = \"visible\";\n }\n\n componentWillLoad(): void {\n this.validatePosition(this.position);\n }\n\n componentDidLoad(): void {\n this.findBoundElement();\n if (this.open) {\n this.onOpen();\n }\n }\n\n disconnectedCallback(): void {\n cancelAnimationFrame(this.animationFrameRequestId);\n }\n\n render(): HTMLZPopoverElement {\n return (\n <Host current-position={this.currentPosition}>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-96af6326.js');
6
6
  const index$1 = require('./index-97a4c18d.js');
7
- const utils = require('./utils-93961cb6.js');
7
+ const utils = require('./utils-3dc316f8.js');
8
8
  require('./breakpoints-8a1e87e0.js');
9
9
 
10
- const stylesCss = ".sc-z-select-h{display:inline-block;width:inherit;color:var(--color-form-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg)}[size=\"small\"].sc-z-select-h,[size=\"x-small\"].sc-z-select-h{font-size:var(--font-size-2)}.select-wrapper.sc-z-select>z-input.sc-z-select{width:100%}.select-wrapper.sc-z-select>z-input.sc-z-select .input-icon.sc-z-select{cursor:pointer}.select-wrapper.sc-z-select>div.sc-z-select{position:relative}.select-wrapper.sc-z-select>div.closed.sc-z-select{overflow:hidden;height:0}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select{position:absolute;width:100%;box-sizing:border-box;border-top:none;background:var(--color-form-background);box-shadow:var(--shadow-2);outline:none}.select-wrapper.sc-z-select .closed.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:10}.select-wrapper.sc-z-select .open.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:20}.select-wrapper.sc-z-select .ul-scroll-wrapper.fixed.sc-z-select{position:static}.select-wrapper.sc-z-select z-list.sc-z-select{--background-color-list-element:var(--color-form-background);--background-hover-color-list-element:var(--color-form-surface03);--background-active-color-list-element:var(--color-form-surface03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select{position:relative;overflow:auto;max-height:240px;padding:0 calc(var(--space-unit) * 1.5);outline:none}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element[disabled].sc-z-select{color:var(--color-form-disabled03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select{display:flex;align-items:center;padding:calc(var(--space-unit) / 2) var(--space-unit);column-gap:var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{margin-right:auto}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:calc(var(--space-unit) * 0.5) var(--space-unit)}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{padding:0}[size=\"small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:16px;--z-icon-height:16px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:14px;--z-icon-height:14px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:0 var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.selected.sc-z-select{font-weight:var(--font-sb)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select .no-results.sc-z-select z-icon.sc-z-select{margin-right:var(--space-unit)}.z-list-group-title.sc-z-select{color:var(--color-form-default-text)}.reset-item.sc-z-select{color:var(--color-form-active-primary);fill:var(--color-form-active-primary)}.reset-item-content.sc-z-select{display:flex;align-items:center}.reset-item.reset-item-margin.sc-z-select .reset-item-content.sc-z-select{margin-left:var(--space-unit)}.reset-item.sc-z-select .reset-item-content.sc-z-select>z-icon.sc-z-select{margin-right:var(--space-unit)}.reset-item.hide.sc-z-select{display:none}.tree-list-reset-item.sc-z-select{padding:var(--space-unit) 0}z-list-element.sc-z-select{position:relative;display:block}z-list.sc-z-select z-list-element.sc-z-select::before{position:absolute;z-index:100;top:3px;left:-15px;width:8px;height:1em;border-bottom:1px solid var(--color-form-disabled01-icon);border-left:1px solid var(--color-form-disabled01-icon);content:\"\";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select::after{position:absolute;z-index:100;top:5px;left:-15px;width:8px;height:100%;border-left:1px solid var(--color-form-disabled01-icon);content:\"\";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select:last-child::after{display:none}z-list.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-element.sc-z-select::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::after{display:none}z-list.sc-z-select>div.children-node.sc-z-select{padding-left:calc(var(--space-unit) * 2)}z-list-element.grouped-tree-parent-node.sc-z-select{padding-top:0;padding-left:calc(var(--space-unit) * 2)}z-list-element.sc-z-select>.list-element.sc-z-select{display:flex;justify-content:space-between;padding:calc(var(--space-unit) * 1.25) 0;cursor:pointer}z-list-element.sc-z-select>.list-element.sc-z-select:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}z-list-element.sc-z-select>.list-element.sc-z-select .item.ellipsis.sc-z-select{overflow:hidden}z-list-element.sc-z-select .list-element.sc-z-select::after{position:absolute;top:0;right:-1px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.tree-search-item.sc-z-select{padding-top:0}z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select::after{position:absolute;top:8px;right:-25px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.grouped-tree-parent-node.sc-z-select .list-element.sc-z-select::after{position:absolute;top:8px;right:-25px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover,z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover::after{z-index:-1;background-color:var(--color-form-surface03);cursor:pointer}.item-label.selected.sc-z-select{font-weight:bold}z-list-element.sc-z-select:focus{box-shadow:var(--shadow-focus-primary);outline:none}.item.ellipsis.sc-z-select{display:inline-block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}z-list.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after,z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select:hover::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;top:8px;right:-18px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;top:0;right:0;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}.children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select z-list-element.sc-z-select::after{left:-15px}.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::after{left:-15px}.children-node.sc-z-select>z-list-element.sc-z-select{padding:0}";
10
+ const stylesCss = ".sc-z-select-h{display:inline-block;width:inherit;color:var(--color-form-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg)}[size=\"small\"].sc-z-select-h,[size=\"x-small\"].sc-z-select-h{font-size:var(--font-size-2)}.select-wrapper.sc-z-select>z-input.sc-z-select{width:100%}.select-wrapper.sc-z-select>z-input.sc-z-select .input-icon.sc-z-select{cursor:pointer}.select-wrapper.sc-z-select>div.sc-z-select{position:relative}.select-wrapper.sc-z-select>div.closed.sc-z-select{overflow:hidden;height:0}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select{position:absolute;width:100%;box-sizing:border-box;border-top:none;background:var(--color-form-background);box-shadow:var(--shadow-2);outline:none}.select-wrapper.sc-z-select .closed.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:10}.select-wrapper.sc-z-select .open.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:20}.select-wrapper.sc-z-select .ul-scroll-wrapper.fixed.sc-z-select{position:static}.select-wrapper.sc-z-select z-list.sc-z-select{--background-color-list-element:var(--color-form-background);--background-hover-color-list-element:var(--color-form-surface03);--background-active-color-list-element:var(--color-form-surface03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select{position:relative;overflow:auto;max-height:240px;padding:var(--space-unit) calc(var(--space-unit) * 1.5);margin:calc(var(--space-unit) * -1) 0;outline:none}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element[disabled].sc-z-select{color:var(--color-form-disabled03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select{display:flex;align-items:center;padding:calc(var(--space-unit) / 2) var(--space-unit);column-gap:var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{margin-right:auto}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:calc(var(--space-unit) * 0.5) var(--space-unit)}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{padding:0}[size=\"small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:16px;--z-icon-height:16px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:14px;--z-icon-height:14px}[size=\"x-small\"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:0 var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.selected.sc-z-select{font-weight:var(--font-sb)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select .no-results.sc-z-select z-icon.sc-z-select{margin-right:var(--space-unit)}.z-list-group-title.sc-z-select{color:var(--color-form-default-text)}.reset-item.sc-z-select{color:var(--color-form-active-primary);fill:var(--color-form-active-primary)}.reset-item-content.sc-z-select{display:flex;align-items:center}.reset-item.reset-item-margin.sc-z-select .reset-item-content.sc-z-select{margin-left:var(--space-unit)}.reset-item.sc-z-select .reset-item-content.sc-z-select>z-icon.sc-z-select{margin-right:var(--space-unit)}.reset-item.hide.sc-z-select{display:none}.tree-list-reset-item.sc-z-select{padding:var(--space-unit) 0}z-list-element.sc-z-select{position:relative;display:block}z-list.sc-z-select z-list-element.sc-z-select::before{position:absolute;z-index:100;top:3px;left:-15px;width:8px;height:1em;border-bottom:1px solid var(--color-form-disabled01-icon);border-left:1px solid var(--color-form-disabled01-icon);content:\"\";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select::after{position:absolute;z-index:100;top:5px;left:-15px;width:8px;height:100%;border-left:1px solid var(--color-form-disabled01-icon);content:\"\";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select:last-child::after{display:none}z-list.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-element.sc-z-select::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::after{display:none}z-list.sc-z-select>div.children-node.sc-z-select{padding-left:calc(var(--space-unit) * 2)}z-list-element.grouped-tree-parent-node.sc-z-select{padding-top:0;padding-left:calc(var(--space-unit) * 2)}z-list-element.sc-z-select>.list-element.sc-z-select{display:flex;justify-content:space-between;padding:calc(var(--space-unit) * 1.25) 0;cursor:pointer}z-list-element.sc-z-select>.list-element.sc-z-select:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}z-list-element.sc-z-select>.list-element.sc-z-select .item.ellipsis.sc-z-select{overflow:hidden}z-list-element.sc-z-select .list-element.sc-z-select::after{position:absolute;top:0;right:-1px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.tree-search-item.sc-z-select{padding-top:0}z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select::after{position:absolute;top:8px;right:-25px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.grouped-tree-parent-node.sc-z-select .list-element.sc-z-select::after{position:absolute;top:8px;right:-25px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover,z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover::after{z-index:-1;background-color:var(--color-form-surface03);cursor:pointer}.item-label.selected.sc-z-select{font-weight:bold}.item.ellipsis.sc-z-select{display:inline-block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}z-list.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after,z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select:hover::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;top:8px;right:-18px;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}z-list-element.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;top:0;right:0;display:block;width:100%;height:40px;content:\"\";transform:translateX(-100%)}.children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select z-list-element.sc-z-select::after{left:-15px}.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::after{left:-15px}.children-node.sc-z-select>z-list-element.sc-z-select{padding:0}";
11
11
  const ZSelectStyle0 = stylesCss;
12
12
 
13
13
  const ZSelect = class {
@@ -336,10 +336,8 @@ const ZSelect = class {
336
336
  }, id: `${this.htmlid}_input`, htmlid: `${this.htmlid}_select_input`, placeholder: this.placeholder, value: !this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, "") : null, label: this.label, "aria-expanded": this.isOpen ? "true" : "false", "aria-label": this.ariaLabel, "aria-controls": `${this.htmlid}_list`, "aria-autocomplete": this.hasAutocomplete() ? "list" : "none", "aria-activedescendant": this.isOpen ? this.focusedItemId : "", icon: this.isOpen ? "caret-up" : "caret-down", hasclearicon: this.hasAutocomplete(), message: false, name: this.name, disabled: this.disabled, readonly: this.readonly || (!this.hasAutocomplete() && this.isOpen), status: this.isOpen ? undefined : this.status, role: "combobox", size: this.size, onClick: (e) => {
337
337
  this.handleInputClick(e);
338
338
  }, onKeyUp: (e) => {
339
- if (e.key !== index$1.KeyboardCode.ENTER) {
340
- e.preventDefault();
341
- }
342
- utils.handleKeyboardSubmit(e, this.toggleSelectUl);
339
+ e.preventDefault();
340
+ this.toggleSelectUl();
343
341
  }, onKeyDown: (e) => {
344
342
  const current = this.selectedItem
345
343
  ? this.itemIdKeyMap[this.selectedItem.id]
@@ -483,7 +481,7 @@ const ZSelect = class {
483
481
  return (index.h("z-input-message", { message: utils.boolean(this.message) === true ? undefined : this.message, status: this.status, class: this.size, disabled: this.disabled }));
484
482
  }
485
483
  render() {
486
- return (index.h("div", { key: '175046b438342ee0b6bae38a35a0c70f47cdc0f8', class: "select-wrapper" }, this.renderInput(), this.renderSelectUl(), this.renderMessage()));
484
+ return (index.h("div", { key: 'c3edf9b0bcf842deb48b5c62f994be9d5025d34f', class: "select-wrapper" }, this.renderInput(), this.renderSelectUl(), this.renderMessage()));
487
485
  }
488
486
  get host() { return index.getElement(this); }
489
487
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"z-select.entry.cjs.js","mappings":"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","names":["randomId","ControlSize","boolean","KeyboardCode","getClickedElement","getElementTree","h","handleKeyboardSubmit","ListDividerType","ListSize","index"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-form-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n}\n\n:host([size=\"small\"]),\n:host([size=\"x-small\"]) {\n font-size: var(--font-size-2);\n}\n\n.select-wrapper > z-input {\n width: 100%;\n}\n\n.select-wrapper > z-input .input-icon {\n cursor: pointer;\n}\n\n.select-wrapper > div {\n position: relative;\n}\n\n.select-wrapper > div.closed {\n overflow: hidden;\n height: 0;\n}\n\n.select-wrapper .ul-scroll-wrapper {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n border-top: none;\n background: var(--color-form-background);\n box-shadow: var(--shadow-2);\n outline: none;\n}\n\n.select-wrapper .closed .ul-scroll-wrapper {\n z-index: 10;\n}\n\n.select-wrapper .open .ul-scroll-wrapper {\n z-index: 20;\n}\n\n.select-wrapper .ul-scroll-wrapper.fixed {\n position: static;\n}\n\n.select-wrapper z-list {\n --background-color-list-element: var(--color-form-background);\n --background-hover-color-list-element: var(--color-form-surface03);\n --background-active-color-list-element: var(--color-form-surface03);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: 0 calc(var(--space-unit) * 1.5);\n outline: none;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element[disabled] {\n color: var(--color-form-disabled03);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container {\n display: flex;\n align-items: center;\n padding: calc(var(--space-unit) / 2) var(--space-unit);\n column-gap: var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n margin-right: auto;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n .list-element-content {\n padding: 0;\n}\n\n:host([size=\"small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host([size=\"x-small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n > z-icon\n + .list-element-content {\n padding: 0 var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content.selected {\n font-weight: var(--font-sb);\n}\n\n.select-wrapper .ul-scroll-wrapper .no-results z-icon {\n margin-right: var(--space-unit);\n}\n\n.z-list-group-title {\n color: var(--color-form-default-text);\n}\n\n.reset-item {\n color: var(--color-form-active-primary);\n fill: var(--color-form-active-primary);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: var(--space-unit);\n}\n\n.reset-item .reset-item-content > z-icon {\n margin-right: var(--space-unit);\n}\n\n.reset-item.hide {\n display: none;\n}\n\n.tree-list-reset-item {\n padding: var(--space-unit) 0;\n}\n\nz-list-element {\n position: relative;\n display: block;\n}\n\nz-list z-list-element::before {\n position: absolute;\n z-index: 100;\n top: 3px;\n left: -15px;\n width: 8px;\n height: 1em;\n border-bottom: 1px solid var(--color-form-disabled01-icon);\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element::after {\n position: absolute;\n z-index: 100;\n top: 5px;\n left: -15px;\n width: 8px;\n height: 100%;\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element:last-child::after {\n display: none;\n}\n\nz-list > z-list-element::before,\nz-list > z-list-element::after,\nz-list > z-list-group > z-list-element::before,\nz-list > z-list-group > z-list-element::after {\n display: none;\n}\n\nz-list > div.children-node {\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element.grouped-tree-parent-node {\n padding-top: 0;\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element > .list-element {\n display: flex;\n justify-content: space-between;\n padding: calc(var(--space-unit) * 1.25) 0;\n cursor: pointer;\n}\n\nz-list-element > .list-element:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\nz-list-element > .list-element .item.ellipsis {\n overflow: hidden;\n}\n\nz-list-element .list-element::after {\n position: absolute;\n top: 0;\n right: -1px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.tree-search-item {\n padding-top: 0;\n}\n\nz-list-element.tree-search-item .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.grouped-tree-parent-node .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element:not([disabled]) > .list-element:hover,\nz-list-element:not([disabled]) > .list-element:hover::after {\n z-index: -1;\n background-color: var(--color-form-surface03);\n cursor: pointer;\n}\n\n.item-label.selected {\n font-weight: bold;\n}\n\nz-list-element:focus {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.item.ellipsis {\n display: inline-block;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nz-list > z-list-element.grouped-tree-parent-node > .list-element:hover::after,\nz-list-element.tree-search-item .list-element:hover::after,\nz-list > z-list-group > z-list-element.grouped-tree-parent-node > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 8px;\n right: -18px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 0;\n right: 0;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.children-node z-list-element::before,\n.children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node .children-node z-list-element::before,\n.children-node .children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node > z-list-element {\n padding: 0;\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, handleKeyboardSubmit, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string;\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** */\n @Prop()\n hasTreeItems?: boolean;\n\n /** If true and an item matches the search string, children of matching item are shown even if they don't match the search string */\n @Prop()\n showChildrenOfMatchingParent?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n @State()\n private flattenedList: {item: SelectItem; key: number}[] = [];\n\n private itemsList: SelectItem[] = [];\n\n private itemIdKeyMap: Record<string, number> = {};\n\n private readonly resetKey = -1;\n\n constructor() {\n this.toggleSelectUl = this.toggleSelectUl.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.itemsList = this.getInitialItemsArray();\n if (values.length) {\n this.updateSelection(this.itemsList, values[0]);\n }\n this.selectedItem = this.findSelectedItem(this.itemsList);\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n\n if (!searchString?.length) {\n this.itemsList = prevList;\n\n return;\n }\n\n if (this.hasTreeItems) {\n this.itemsList = this.filterTree(prevList, searchString, false);\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => item.name.toUpperCase().includes(searchString.toUpperCase()))\n .map((item: SelectItem) => {\n item.name = this.getHighlightedText(item.name, searchString);\n\n return item;\n });\n }\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n private filterTree(items: SelectItem[], searchString: string, matchingParent: boolean): SelectItem[] {\n if (!items) {\n return [];\n }\n\n return items\n .map((item) => {\n const match = item.name.toUpperCase().includes(searchString.toUpperCase());\n\n const newItem: SelectItem = {...item};\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(newItem.children, searchString, match);\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n if (\n match ||\n (newItem.children && newItem.children.length > 0) ||\n (this.showChildrenOfMatchingParent && matchingParent)\n ) {\n return newItem;\n }\n\n return null;\n })\n .filter((item) => item !== null) as SelectItem[];\n }\n\n private getHighlightedText(text: string, search: string): string {\n const upperText = text.toUpperCase();\n const upperSearch = search.toUpperCase();\n const start = upperText.indexOf(upperSearch);\n\n if (start === -1) {\n return text;\n }\n\n const end = start + search.length;\n\n return text.substring(0, start) + `<strong>${text.substring(start, end)}</strong>` + text.substring(end);\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private updateSelection(items: SelectItem[], selectedId: string): void {\n if (items) {\n items.forEach((item) => {\n item.selected = item.id === selectedId;\n if (item.children && item.children.length > 0) {\n this.updateSelection(item.children, selectedId);\n }\n });\n }\n }\n\n private findSelectedItem(items: SelectItem[]): SelectItem | null {\n if (items) {\n for (const item of items) {\n if (item.selected) {\n return item;\n }\n if (item.children && item.children.length > 0) {\n const found = this.findSelectedItem(item.children);\n if (found) {\n return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.getInitialItemsArray();\n\n if (selected) {\n this.updateSelection(this.itemsList, selected.id);\n }\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n this.emitOptionSelect();\n this.toggleSelectUl(true);\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private flattenTreeItems(items: SelectItem[]): {item: SelectItem; key: number}[] {\n const flatItems: {item: SelectItem; key: number}[] = [];\n let index = 0;\n\n const flatten = (subItems: SelectItem[]): void => {\n subItems.forEach((itm) => {\n flatItems.push({item: itm, key: index++});\n if (itm.children && itm.children.length > 0) {\n flatten(itm.children);\n }\n });\n };\n\n if (items) {\n flatten(items);\n }\n\n return flatItems;\n }\n\n private arrowsSelectNav(e: KeyboardEvent, idOrReset: string | number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const flatItems = [...this.flattenedList].filter((f) => !f.item.disabled);\n\n if (this.resetItem && showResetIcon) {\n flatItems.unshift({\n item: {id: \"__RESET_ITEM__\"} as SelectItem,\n key: this.resetKey,\n });\n }\n\n let currentIndex: number;\n if (typeof idOrReset === \"number\") {\n currentIndex = flatItems.findIndex((f) => f.key === idOrReset);\n } else {\n const k = this.itemIdKeyMap[idOrReset];\n currentIndex = flatItems.findIndex((f) => f.key === k);\n }\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n\n if (currentIndex === -1) {\n currentIndex = -1;\n }\n }\n\n const lastIndex = flatItems.length - 1;\n\n let newIndex = currentIndex;\n\n if (e.key === KeyboardCode.ARROW_DOWN) {\n do {\n newIndex = newIndex === lastIndex ? 0 : newIndex + 1;\n } while (flatItems[newIndex].item.disabled);\n } else {\n do {\n newIndex = newIndex <= 0 ? lastIndex : newIndex - 1;\n } while (flatItems[newIndex].item.disabled);\n }\n\n this.focusSelectItem(flatItems[newIndex].key);\n }\n\n private focusSelectItem(key: number): void {\n this.host.querySelector<HTMLDivElement>(`#${this.htmlid}_key_${key}`)?.focus();\n }\n\n private toggleSelectUl(selfFocusOnClose = false): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (!this.isOpen) {\n document.addEventListener(\"click\", this.handleSelectFocus);\n document.addEventListener(\"keyup\", this.handleSelectFocus);\n } else {\n document.removeEventListener(\"click\", this.handleSelectFocus);\n document.removeEventListener(\"keyup\", this.handleSelectFocus);\n if (selfFocusOnClose) {\n (this.host.querySelector(`#${this.htmlid}_input`) as HTMLInputElement)?.focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n if ((e.target as HTMLElement).closest(\".reset-icon\")) {\n e.stopPropagation();\n\n return;\n }\n\n this.toggleSelectUl();\n }\n\n private handleSelectFocus(e: MouseEvent | KeyboardEvent): void {\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\n return;\n }\n\n if (e instanceof KeyboardEvent && e.key === KeyboardCode.ESC) {\n e.stopPropagation();\n\n return this.toggleSelectUl(true);\n }\n\n if (e instanceof KeyboardEvent && (e.key === KeyboardCode.ENTER || e.key !== KeyboardCode.TAB)) {\n return;\n }\n\n if (\n !getElementTree(clickedElement).find(\n (elem: HTMLElement) => elem.nodeName.toLowerCase() === \"z-input\" && elem.id === `${this.htmlid}_input`\n )\n ) {\n this.toggleSelectUl(e instanceof MouseEvent);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.findIndex((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem > -1) {\n this.focusSelectItem(this.itemIdKeyMap[this.itemsList[foundItem].id]);\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n if (e.key !== KeyboardCode.ENTER) {\n e.preventDefault();\n }\n handleKeyboardSubmit(e, this.toggleSelectUl);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n const current = this.selectedItem\n ? this.itemIdKeyMap[this.selectedItem.id]\n : this.resetItem\n ? this.resetKey\n : \"\";\n\n return this.arrowsSelectNav(e, current);\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div class={this.isOpen ? \"open\" : \"closed\"}>\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n >\n <z-list\n role=\"listbox\"\n aria-label={this.ariaLabel || this.label}\n tabindex={this.disabled || this.readonly || !this.isOpen ? -1 : 0}\n id={`${this.htmlid}_list`}\n aria-multiselectable={false}\n size={this.listSizeType()}\n class={{\n \"disabled\": this.disabled,\n \"readonly\": this.readonly,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n \"z-scrollbar\": true,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_key_${this.resetKey}`}\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, this.resetKey)}\n >\n <div\n class={{\n \"reset-item-content\": true,\n \"tree-list-reset-item\": this.hasTreeItems,\n }}\n >\n <z-icon name=\"multiply-circled\" />\n <span>{this.resetItem}</span>\n </div>\n </z-list-element>\n );\n }\n\n private renderItem(item: SelectItem, lastItem: boolean): HTMLZListElementElement {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_key_${thisItemKey}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, thisItemKey)}\n >\n <div class=\"list-element-container\">\n <div\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\n if (this.hasTreeItems) {\n return ListSize.NONE;\n }\n\n if (this.size === ControlSize.SMALL || this.size === ControlSize.X_SMALL) {\n return ListSize.SMALL;\n }\n\n return ListSize.MEDIUM;\n }\n\n //eslint-disable-next-line\n private renderSelectUlItems(): any {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems && !this.hasTreeItems) {\n return this.renderSelectGroupItems();\n } else if (this.hasGroupItems && this.hasTreeItems) {\n return this.renderGroupedTree();\n }\n\n return this.itemsList.map((item: SelectItem, index, array) => {\n const isLastItem = index === array.length - 1;\n const parentHasSiblings = array.length > 1;\n\n if (this.hasTreeItems) {\n return this.renderTreeItems(item, isLastItem, parentHasSiblings, true);\n }\n\n return this.renderItem(item, isLastItem);\n });\n }\n\n private renderTreeItems(\n item: SelectItem,\n isLastChild: boolean,\n parentHasSiblings: boolean,\n isTopLevel?: boolean\n ): HTMLZListElementElement[] {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n const hasDivider = this.hasGroupItems\n ? undefined\n : this.hasGroupItems\n ? isLastChild && !parentHasSiblings\n ? ListDividerType.ELEMENT\n : undefined\n : isTopLevel && parentHasSiblings && !isLastChild\n ? ListDividerType.ELEMENT\n : undefined;\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n class={{\n \"grouped-tree-parent-node\": this.hasGroupItems && !!item.children?.length,\n \"tree-search-item\": this.hasGroupItems && isTopLevel && !item.children?.length && !!this.searchString,\n }}\n size={this.listSizeType()}\n dividerType={hasDivider}\n hasTreeItems={this.hasTreeItems}\n >\n <div\n id={`${this.htmlid}_key_${thisItemKey}`}\n role=\"option\"\n class=\"list-element\"\n tabIndex={0}\n onClick={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => {\n this.arrowsSelectNav(e, thisItemKey);\n if (e.key === KeyboardCode.ENTER) {\n this.selectItem(item);\n }\n }}\n >\n <span class=\"item ellipsis\">\n <span\n class={{\n \"item-label\": true,\n \"selected\": !!item.selected,\n }}\n title={item.name}\n innerHTML={item.selected ? `<strong>${item.name}</strong>` : item.name}\n />\n </span>\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n {item.children && item.children.length > 0 ? (\n <z-list>\n <div class=\"children-node\">\n {item.children.map((child, index, arr) =>\n this.renderTreeItems(\n child,\n index === arr.length - 1,\n arr.length > 1,\n false // isTopLevel = false for children\n )\n )}\n </div>\n </z-list>\n ) : null}\n </z-list-element>\n );\n }\n\n private renderGroupedTree(): HTMLZListGroupElement[] {\n const grouped = this.itemsList.reduce(\n (acc, item) => {\n const category = item.category || \"Altra categoria\";\n acc[category] = acc[category] || [];\n acc[category].push(item);\n\n return acc;\n },\n {} as Record<string, SelectItem[]>\n );\n\n return Object.entries(grouped).map(([category, items], index, entries) => {\n const parentHasSiblings = Object.values(grouped).some((groupItems) => groupItems.length > 1);\n // const parentHasSiblings = items.length > 1;\n\n return (\n <z-list-group\n divider-type={index === entries.length - 1 ? undefined : ListDividerType.ELEMENT}\n hasTreeItems={true}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {category}\n </span>\n <z-list>\n {items.map((item, i, arr) => [\n this.renderTreeItems(item, i === arr.length - 1, parentHasSiblings, true),\n i < arr.length - 1 ? (\n <z-divider\n key={`divider-${i}`}\n style={{zIndex: \"100\", height: \"var(--border-size-small)\"}}\n />\n ) : null,\n ])}\n </z-list>\n {index !== entries.length - 1 && <z-divider style={{zIndex: \"100\", height: \"var(--border-size-small)\"}} />}\n </z-list-group>\n );\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement[] {\n const newData = this.itemsList.reduce(\n (group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const zListItem = this.renderItem(item, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n },\n {} as Record<string, HTMLZListElementElement[]>\n );\n\n return Object.entries(newData).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"color-primary01\"\n class=\"no-results\"\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"color-primary01-icon\"\n />\n {this.noresultslabel}\n </z-list-element>\n );\n }\n\n private renderMessage(): HTMLZInputMessageElement {\n if (boolean(this.message) === false) {\n return;\n }\n\n return (\n <z-input-message\n message={boolean(this.message) === true ? undefined : (this.message as string)}\n status={this.status}\n class={this.size}\n disabled={this.disabled}\n />\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div class=\"select-wrapper\">\n {this.renderInput()}\n {this.renderSelectUl()}\n {this.renderMessage()}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"z-select.entry.cjs.js","mappings":"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","names":["randomId","ControlSize","boolean","KeyboardCode","getClickedElement","getElementTree","h","ListDividerType","ListSize","index"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-form-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n}\n\n:host([size=\"small\"]),\n:host([size=\"x-small\"]) {\n font-size: var(--font-size-2);\n}\n\n.select-wrapper > z-input {\n width: 100%;\n}\n\n.select-wrapper > z-input .input-icon {\n cursor: pointer;\n}\n\n.select-wrapper > div {\n position: relative;\n}\n\n.select-wrapper > div.closed {\n overflow: hidden;\n height: 0;\n}\n\n.select-wrapper .ul-scroll-wrapper {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n border-top: none;\n background: var(--color-form-background);\n box-shadow: var(--shadow-2);\n outline: none;\n}\n\n.select-wrapper .closed .ul-scroll-wrapper {\n z-index: 10;\n}\n\n.select-wrapper .open .ul-scroll-wrapper {\n z-index: 20;\n}\n\n.select-wrapper .ul-scroll-wrapper.fixed {\n position: static;\n}\n\n.select-wrapper z-list {\n --background-color-list-element: var(--color-form-background);\n --background-hover-color-list-element: var(--color-form-surface03);\n --background-active-color-list-element: var(--color-form-surface03);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: var(--space-unit) calc(var(--space-unit) * 1.5);\n margin: calc(var(--space-unit) * -1) 0;\n outline: none;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element[disabled] {\n color: var(--color-form-disabled03);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container {\n display: flex;\n align-items: center;\n padding: calc(var(--space-unit) / 2) var(--space-unit);\n column-gap: var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n margin-right: auto;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n .list-element-content {\n padding: 0;\n}\n\n:host([size=\"small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host([size=\"x-small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n > z-icon\n + .list-element-content {\n padding: 0 var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content.selected {\n font-weight: var(--font-sb);\n}\n\n.select-wrapper .ul-scroll-wrapper .no-results z-icon {\n margin-right: var(--space-unit);\n}\n\n.z-list-group-title {\n color: var(--color-form-default-text);\n}\n\n.reset-item {\n color: var(--color-form-active-primary);\n fill: var(--color-form-active-primary);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: var(--space-unit);\n}\n\n.reset-item .reset-item-content > z-icon {\n margin-right: var(--space-unit);\n}\n\n.reset-item.hide {\n display: none;\n}\n\n.tree-list-reset-item {\n padding: var(--space-unit) 0;\n}\n\nz-list-element {\n position: relative;\n display: block;\n}\n\nz-list z-list-element::before {\n position: absolute;\n z-index: 100;\n top: 3px;\n left: -15px;\n width: 8px;\n height: 1em;\n border-bottom: 1px solid var(--color-form-disabled01-icon);\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element::after {\n position: absolute;\n z-index: 100;\n top: 5px;\n left: -15px;\n width: 8px;\n height: 100%;\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element:last-child::after {\n display: none;\n}\n\nz-list > z-list-element::before,\nz-list > z-list-element::after,\nz-list > z-list-group > z-list-element::before,\nz-list > z-list-group > z-list-element::after {\n display: none;\n}\n\nz-list > div.children-node {\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element.grouped-tree-parent-node {\n padding-top: 0;\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element > .list-element {\n display: flex;\n justify-content: space-between;\n padding: calc(var(--space-unit) * 1.25) 0;\n cursor: pointer;\n}\n\nz-list-element > .list-element:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\nz-list-element > .list-element .item.ellipsis {\n overflow: hidden;\n}\n\nz-list-element .list-element::after {\n position: absolute;\n top: 0;\n right: -1px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.tree-search-item {\n padding-top: 0;\n}\n\nz-list-element.tree-search-item .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.grouped-tree-parent-node .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element:not([disabled]) > .list-element:hover,\nz-list-element:not([disabled]) > .list-element:hover::after {\n z-index: -1;\n background-color: var(--color-form-surface03);\n cursor: pointer;\n}\n\n.item-label.selected {\n font-weight: bold;\n}\n\n.item.ellipsis {\n display: inline-block;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nz-list > z-list-element.grouped-tree-parent-node > .list-element:hover::after,\nz-list-element.tree-search-item .list-element:hover::after,\nz-list > z-list-group > z-list-element.grouped-tree-parent-node > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 8px;\n right: -18px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 0;\n right: 0;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.children-node z-list-element::before,\n.children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node .children-node z-list-element::before,\n.children-node .children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node > z-list-element {\n padding: 0;\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string;\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** */\n @Prop()\n hasTreeItems?: boolean;\n\n /** If true and an item matches the search string, children of matching item are shown even if they don't match the search string */\n @Prop()\n showChildrenOfMatchingParent?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n @State()\n private flattenedList: {item: SelectItem; key: number}[] = [];\n\n private itemsList: SelectItem[] = [];\n\n private itemIdKeyMap: Record<string, number> = {};\n\n private readonly resetKey = -1;\n\n constructor() {\n this.toggleSelectUl = this.toggleSelectUl.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.itemsList = this.getInitialItemsArray();\n if (values.length) {\n this.updateSelection(this.itemsList, values[0]);\n }\n this.selectedItem = this.findSelectedItem(this.itemsList);\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n\n if (!searchString?.length) {\n this.itemsList = prevList;\n\n return;\n }\n\n if (this.hasTreeItems) {\n this.itemsList = this.filterTree(prevList, searchString, false);\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => item.name.toUpperCase().includes(searchString.toUpperCase()))\n .map((item: SelectItem) => {\n item.name = this.getHighlightedText(item.name, searchString);\n\n return item;\n });\n }\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n private filterTree(items: SelectItem[], searchString: string, matchingParent: boolean): SelectItem[] {\n if (!items) {\n return [];\n }\n\n return items\n .map((item) => {\n const match = item.name.toUpperCase().includes(searchString.toUpperCase());\n\n const newItem: SelectItem = {...item};\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(newItem.children, searchString, match);\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n if (\n match ||\n (newItem.children && newItem.children.length > 0) ||\n (this.showChildrenOfMatchingParent && matchingParent)\n ) {\n return newItem;\n }\n\n return null;\n })\n .filter((item) => item !== null) as SelectItem[];\n }\n\n private getHighlightedText(text: string, search: string): string {\n const upperText = text.toUpperCase();\n const upperSearch = search.toUpperCase();\n const start = upperText.indexOf(upperSearch);\n\n if (start === -1) {\n return text;\n }\n\n const end = start + search.length;\n\n return text.substring(0, start) + `<strong>${text.substring(start, end)}</strong>` + text.substring(end);\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private updateSelection(items: SelectItem[], selectedId: string): void {\n if (items) {\n items.forEach((item) => {\n item.selected = item.id === selectedId;\n if (item.children && item.children.length > 0) {\n this.updateSelection(item.children, selectedId);\n }\n });\n }\n }\n\n private findSelectedItem(items: SelectItem[]): SelectItem | null {\n if (items) {\n for (const item of items) {\n if (item.selected) {\n return item;\n }\n if (item.children && item.children.length > 0) {\n const found = this.findSelectedItem(item.children);\n if (found) {\n return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.getInitialItemsArray();\n\n if (selected) {\n this.updateSelection(this.itemsList, selected.id);\n }\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n this.emitOptionSelect();\n this.toggleSelectUl(true);\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private flattenTreeItems(items: SelectItem[]): {item: SelectItem; key: number}[] {\n const flatItems: {item: SelectItem; key: number}[] = [];\n let index = 0;\n\n const flatten = (subItems: SelectItem[]): void => {\n subItems.forEach((itm) => {\n flatItems.push({item: itm, key: index++});\n if (itm.children && itm.children.length > 0) {\n flatten(itm.children);\n }\n });\n };\n\n if (items) {\n flatten(items);\n }\n\n return flatItems;\n }\n\n private arrowsSelectNav(e: KeyboardEvent, idOrReset: string | number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const flatItems = [...this.flattenedList].filter((f) => !f.item.disabled);\n\n if (this.resetItem && showResetIcon) {\n flatItems.unshift({\n item: {id: \"__RESET_ITEM__\"} as SelectItem,\n key: this.resetKey,\n });\n }\n\n let currentIndex: number;\n if (typeof idOrReset === \"number\") {\n currentIndex = flatItems.findIndex((f) => f.key === idOrReset);\n } else {\n const k = this.itemIdKeyMap[idOrReset];\n currentIndex = flatItems.findIndex((f) => f.key === k);\n }\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n\n if (currentIndex === -1) {\n currentIndex = -1;\n }\n }\n\n const lastIndex = flatItems.length - 1;\n\n let newIndex = currentIndex;\n\n if (e.key === KeyboardCode.ARROW_DOWN) {\n do {\n newIndex = newIndex === lastIndex ? 0 : newIndex + 1;\n } while (flatItems[newIndex].item.disabled);\n } else {\n do {\n newIndex = newIndex <= 0 ? lastIndex : newIndex - 1;\n } while (flatItems[newIndex].item.disabled);\n }\n\n this.focusSelectItem(flatItems[newIndex].key);\n }\n\n private focusSelectItem(key: number): void {\n this.host.querySelector<HTMLDivElement>(`#${this.htmlid}_key_${key}`)?.focus();\n }\n\n private toggleSelectUl(selfFocusOnClose = false): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (!this.isOpen) {\n document.addEventListener(\"click\", this.handleSelectFocus);\n document.addEventListener(\"keyup\", this.handleSelectFocus);\n } else {\n document.removeEventListener(\"click\", this.handleSelectFocus);\n document.removeEventListener(\"keyup\", this.handleSelectFocus);\n if (selfFocusOnClose) {\n (this.host.querySelector(`#${this.htmlid}_input`) as HTMLInputElement)?.focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n if ((e.target as HTMLElement).closest(\".reset-icon\")) {\n e.stopPropagation();\n\n return;\n }\n\n this.toggleSelectUl();\n }\n\n private handleSelectFocus(e: MouseEvent | KeyboardEvent): void {\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\n return;\n }\n\n if (e instanceof KeyboardEvent && e.key === KeyboardCode.ESC) {\n e.stopPropagation();\n\n return this.toggleSelectUl(true);\n }\n\n if (e instanceof KeyboardEvent && (e.key === KeyboardCode.ENTER || e.key !== KeyboardCode.TAB)) {\n return;\n }\n\n if (\n !getElementTree(clickedElement).find(\n (elem: HTMLElement) => elem.nodeName.toLowerCase() === \"z-input\" && elem.id === `${this.htmlid}_input`\n )\n ) {\n this.toggleSelectUl(e instanceof MouseEvent);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.findIndex((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem > -1) {\n this.focusSelectItem(this.itemIdKeyMap[this.itemsList[foundItem].id]);\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n e.preventDefault();\n this.toggleSelectUl();\n }}\n onKeyDown={(e: KeyboardEvent) => {\n const current = this.selectedItem\n ? this.itemIdKeyMap[this.selectedItem.id]\n : this.resetItem\n ? this.resetKey\n : \"\";\n\n return this.arrowsSelectNav(e, current);\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div class={this.isOpen ? \"open\" : \"closed\"}>\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n >\n <z-list\n role=\"listbox\"\n aria-label={this.ariaLabel || this.label}\n tabindex={this.disabled || this.readonly || !this.isOpen ? -1 : 0}\n id={`${this.htmlid}_list`}\n aria-multiselectable={false}\n size={this.listSizeType()}\n class={{\n \"disabled\": this.disabled,\n \"readonly\": this.readonly,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n \"z-scrollbar\": true,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_key_${this.resetKey}`}\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, this.resetKey)}\n >\n <div\n class={{\n \"reset-item-content\": true,\n \"tree-list-reset-item\": this.hasTreeItems,\n }}\n >\n <z-icon name=\"multiply-circled\" />\n <span>{this.resetItem}</span>\n </div>\n </z-list-element>\n );\n }\n\n private renderItem(item: SelectItem, lastItem: boolean): HTMLZListElementElement {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_key_${thisItemKey}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, thisItemKey)}\n >\n <div class=\"list-element-container\">\n <div\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\n if (this.hasTreeItems) {\n return ListSize.NONE;\n }\n\n if (this.size === ControlSize.SMALL || this.size === ControlSize.X_SMALL) {\n return ListSize.SMALL;\n }\n\n return ListSize.MEDIUM;\n }\n\n //eslint-disable-next-line\n private renderSelectUlItems(): any {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems && !this.hasTreeItems) {\n return this.renderSelectGroupItems();\n } else if (this.hasGroupItems && this.hasTreeItems) {\n return this.renderGroupedTree();\n }\n\n return this.itemsList.map((item: SelectItem, index, array) => {\n const isLastItem = index === array.length - 1;\n const parentHasSiblings = array.length > 1;\n\n if (this.hasTreeItems) {\n return this.renderTreeItems(item, isLastItem, parentHasSiblings, true);\n }\n\n return this.renderItem(item, isLastItem);\n });\n }\n\n private renderTreeItems(\n item: SelectItem,\n isLastChild: boolean,\n parentHasSiblings: boolean,\n isTopLevel?: boolean\n ): HTMLZListElementElement[] {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n const hasDivider = this.hasGroupItems\n ? undefined\n : this.hasGroupItems\n ? isLastChild && !parentHasSiblings\n ? ListDividerType.ELEMENT\n : undefined\n : isTopLevel && parentHasSiblings && !isLastChild\n ? ListDividerType.ELEMENT\n : undefined;\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n class={{\n \"grouped-tree-parent-node\": this.hasGroupItems && !!item.children?.length,\n \"tree-search-item\": this.hasGroupItems && isTopLevel && !item.children?.length && !!this.searchString,\n }}\n size={this.listSizeType()}\n dividerType={hasDivider}\n hasTreeItems={this.hasTreeItems}\n >\n <div\n id={`${this.htmlid}_key_${thisItemKey}`}\n role=\"option\"\n class=\"list-element\"\n tabIndex={0}\n onClick={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => {\n this.arrowsSelectNav(e, thisItemKey);\n if (e.key === KeyboardCode.ENTER) {\n this.selectItem(item);\n }\n }}\n >\n <span class=\"item ellipsis\">\n <span\n class={{\n \"item-label\": true,\n \"selected\": !!item.selected,\n }}\n title={item.name}\n innerHTML={item.selected ? `<strong>${item.name}</strong>` : item.name}\n />\n </span>\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n {item.children && item.children.length > 0 ? (\n <z-list>\n <div class=\"children-node\">\n {item.children.map((child, index, arr) =>\n this.renderTreeItems(\n child,\n index === arr.length - 1,\n arr.length > 1,\n false // isTopLevel = false for children\n )\n )}\n </div>\n </z-list>\n ) : null}\n </z-list-element>\n );\n }\n\n private renderGroupedTree(): HTMLZListGroupElement[] {\n const grouped = this.itemsList.reduce(\n (acc, item) => {\n const category = item.category || \"Altra categoria\";\n acc[category] = acc[category] || [];\n acc[category].push(item);\n\n return acc;\n },\n {} as Record<string, SelectItem[]>\n );\n\n return Object.entries(grouped).map(([category, items], index, entries) => {\n const parentHasSiblings = Object.values(grouped).some((groupItems) => groupItems.length > 1);\n // const parentHasSiblings = items.length > 1;\n\n return (\n <z-list-group\n divider-type={index === entries.length - 1 ? undefined : ListDividerType.ELEMENT}\n hasTreeItems={true}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {category}\n </span>\n <z-list>\n {items.map((item, i, arr) => [\n this.renderTreeItems(item, i === arr.length - 1, parentHasSiblings, true),\n i < arr.length - 1 ? (\n <z-divider\n key={`divider-${i}`}\n style={{zIndex: \"100\", height: \"var(--border-size-small)\"}}\n />\n ) : null,\n ])}\n </z-list>\n {index !== entries.length - 1 && <z-divider style={{zIndex: \"100\", height: \"var(--border-size-small)\"}} />}\n </z-list-group>\n );\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement[] {\n const newData = this.itemsList.reduce(\n (group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const zListItem = this.renderItem(item, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n },\n {} as Record<string, HTMLZListElementElement[]>\n );\n\n return Object.entries(newData).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"color-primary01\"\n class=\"no-results\"\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"color-primary01-icon\"\n />\n {this.noresultslabel}\n </z-list-element>\n );\n }\n\n private renderMessage(): HTMLZInputMessageElement {\n if (boolean(this.message) === false) {\n return;\n }\n\n return (\n <z-input-message\n message={boolean(this.message) === true ? undefined : (this.message as string)}\n status={this.status}\n class={this.size}\n disabled={this.disabled}\n />\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div class=\"select-wrapper\">\n {this.renderInput()}\n {this.renderSelectUl()}\n {this.renderMessage()}\n </div>\n );\n }\n}\n"],"version":3}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-96af6326.js');
6
6
  const index$1 = require('./index-97a4c18d.js');
7
- const utils = require('./utils-93961cb6.js');
7
+ const utils = require('./utils-3dc316f8.js');
8
8
  require('./breakpoints-8a1e87e0.js');
9
9
 
10
10
  const stylesCss = ".sc-z-skip-to-content-h{position:absolute;left:-100%;height:60px;box-sizing:border-box;padding:calc(var(--space-unit) * 1.25) calc(var(--space-unit) * 3);background-color:#24f4ff;font-family:var(--font-family-sans);font-weight:var(--font-rg);text-align:center}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{display:inline-flex;height:100%;align-items:center}.skip-to-content-visible.sc-z-skip-to-content-h,.sc-z-skip-to-content-h:focus{position:static;display:block}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:hidden;width:0;height:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-visible.sc-z-skip-to-content{width:initial;height:initial}.dark.sc-z-skip-to-content-h{background-color:var(--color-surface05);color:var(--color-surface01)}.light.sc-z-skip-to-content-h{border:var(--border-size-medium) solid var(--color-surface05);background-color:var(--color-surface01);color:var(--color-default-text)}@media (min-width: 768px){.sc-z-skip-to-content-h{text-align:start}}@media (min-width: 1152px){.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{padding:0 calc(var(--space-unit) * 3);border-right:var(--border-size-small) solid var(--color-surface05)}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:initial;width:initial;height:initial}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:first-child{padding-left:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.light.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child{padding-right:0;border-right:none}.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{border-right:var(--border-size-small) solid var(--color-surface01)}}";
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-96af6326.js');
6
6
  const index$1 = require('./index-97a4c18d.js');
7
- const utils = require('./utils-93961cb6.js');
7
+ const utils = require('./utils-3dc316f8.js');
8
8
  require('./breakpoints-8a1e87e0.js');
9
9
 
10
10
  const stylesCss = ":host{display:block;width:inherit;font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>div{display:flex;width:inherit;flex-direction:column}main{position:relative;overflow:hidden;width:100%}main z-icon.scroll{position:absolute;z-index:10;top:50%;width:auto;margin:0 var(--space-unit);cursor:pointer;fill:var(--color-primary01);transition:0.6s ease}main .scroll.disabled{opacity:0.5;pointer-events:none}main .scroll.right{right:0}#slides{display:flex;flex-wrap:wrap;line-height:0px;overflow-y:hidden;transition:all 300ms}footer{display:grid;width:100%;height:56px;align-items:center;border-top:var(--border-size-medium) solid var(--color-background);grid-template:2 / 2;grid-template-areas:\"center center\" \"left right\"}footer>div{width:100%;align-items:center}footer .footer-center{grid-area:center}footer .footer-left{grid-area:left}footer .footer-right{grid-area:right}footer .bullet-container{display:flex;min-height:60px;align-items:center;justify-content:center;margin:0 auto}footer .bullet-container .bullet{width:8px;height:8px;margin:var(--space-unit) 2px;background-color:var(--gray200);border-radius:50%;pointer-events:none}footer .bullet-container .bullet.selected{background-color:var(--gray400)}main z-icon:focus,footer .bullet-container .bullet:focus{border-radius:50%;box-shadow:var(--shadow-focus-primary);outline:none !important}@media only screen and (min-width: 768px){footer{height:76px;border-top:var(--border-size-medium) solid var(--color-background);grid-template:1 / 1fr 2fr 1fr;grid-template-areas:\"left center right\"}footer .bullet-container .bullet{width:10px;height:10px;margin:var(--space-unit) 3px}}@media only screen and (min-width: 1025px){main z-icon.scroll{margin:0 10px}footer .bullet-container .bullet{width:16px;height:16px;margin:var(--space-unit) calc(var(--space-unit) * 0.5);cursor:pointer;pointer-events:auto}}";
@@ -6,8 +6,8 @@ const index = require('./index-96af6326.js');
6
6
  require('./index-62712250.js');
7
7
  require('./index-1c7cd5df.js');
8
8
  require('./index-f011b2e3.js');
9
- require('./index-c48948bf.js');
10
- require('./utils-93961cb6.js');
9
+ require('./index-0d3de93e.js');
10
+ require('./utils-3dc316f8.js');
11
11
  require('./index-97a4c18d.js');
12
12
  require('./breakpoints-8a1e87e0.js');
13
13
  require('./index-09238e31.js');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-96af6326.js');
6
6
  const index$1 = require('./index-97a4c18d.js');
7
- const utils = require('./utils-93961cb6.js');
7
+ const utils = require('./utils-3dc316f8.js');
8
8
  require('./breakpoints-8a1e87e0.js');
9
9
 
10
10
  const stylesCss = ".sc-z-toggle-switch-h{position:relative;display:inline-flex;font-family:var(--font-family-sans);font-weight:var(--font-rg)}label.sc-z-toggle-switch{display:flex;flex-direction:row;align-items:center;cursor:pointer}label.disabled.sc-z-toggle-switch{cursor:default}label.right.sc-z-toggle-switch{flex-direction:row-reverse}label.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{color:var(--color-default-text);letter-spacing:0}label.left.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{margin-right:var(--space-unit)}label.right.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{margin-left:var(--space-unit)}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch{position:relative;top:1px;left:1px;display:flex;width:calc(var(--space-unit) * 4);height:18px;align-items:center;background-color:var(--gray500);border-radius:var(--space-unit);color:var(--gray500);cursor:pointer}label.sc-z-toggle-switch>span.container.disabled.sc-z-toggle-switch,label.sc-z-toggle-switch>span.container.checked.disabled.sc-z-toggle-switch{background-color:var(--color-disabled01);cursor:default}label.sc-z-toggle-switch>span.container.checked.disabled.sc-z-toggle-switch>span.circle.sc-z-toggle-switch>z-icon.sc-z-toggle-switch{fill:var(--color-disabled01)}label.sc-z-toggle-switch>span.container.checked.sc-z-toggle-switch{background-color:var(--color-primary01);fill:var(--color-primary01)}input.sc-z-toggle-switch:focus:focus-visible+label.sc-z-toggle-switch>span.container.sc-z-toggle-switch:not(.disabled){box-shadow:var(--shadow-focus-primary);outline:none}input.sc-z-toggle-switch:focus:focus-visible+label.sc-z-toggle-switch>span.container.disabled.sc-z-toggle-switch{outline:none}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch:not(.disabled):hover{background-color:var(--color-hover-primary);fill:var(--color-hover-primary)}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch>span.circle.sc-z-toggle-switch{position:absolute;top:1px;left:1px;display:flex;width:calc(var(--space-unit) * 2);height:calc(var(--space-unit) * 2);align-items:center;justify-content:center;margin:0;background-color:var(--color-white);border-radius:7px;box-shadow:var(--shadow-1);transition:transform 0.3s ease}label.sc-z-toggle-switch>span.container.checked.sc-z-toggle-switch>span.circle.sc-z-toggle-switch{transform:translateX(calc(100% - 2px))}input[type=\"checkbox\"].sc-z-toggle-switch{position:absolute;z-index:-1;opacity:0;pointer-events:none}";