ids-enterprise-wc 1.15.9-patch.3 → 1.15.9-patch.5

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 (745) hide show
  1. package/chunks/{ids-chunk-IXIJ5F4V-full.js → ids-chunk-25RRMSCK-full.js} +2 -2
  2. package/chunks/{ids-chunk-S6TUVYGS-full.js → ids-chunk-273NHJXW-full.js} +3 -3
  3. package/chunks/{ids-chunk-IKLVKRXA-full.js → ids-chunk-27USWNVC-full.js} +2 -2
  4. package/chunks/{ids-chunk-33HZ4QQP-full.js → ids-chunk-2FFMS4BJ-full.js} +3 -3
  5. package/chunks/{ids-chunk-FJ426IAI-full.js → ids-chunk-2L5OCXXN-full.js} +2 -2
  6. package/chunks/{ids-chunk-PUPMVP4G-full.js → ids-chunk-2PD5NRM6-full.js} +17 -2
  7. package/chunks/ids-chunk-2PD5NRM6-full.js.map +7 -0
  8. package/chunks/{ids-chunk-A7EHWJXP-full.js → ids-chunk-2PWGRJAO-full.js} +3 -3
  9. package/chunks/{ids-chunk-762VHHJK-full.js → ids-chunk-2Q6JXAZA-full.js} +5 -5
  10. package/chunks/{ids-chunk-N2I47FB4-full.js → ids-chunk-33WAOHDF-full.js} +3 -3
  11. package/chunks/{ids-chunk-BVDCUDIL-full.js → ids-chunk-3DESR2WX-full.js} +3 -3
  12. package/chunks/{ids-chunk-MRSI7V2A-full.js → ids-chunk-3KDZ5BB2-full.js} +3 -3
  13. package/chunks/{ids-chunk-T4EBK6MA-full.js → ids-chunk-3ODALUF7-full.js} +2 -2
  14. package/chunks/{ids-chunk-FKTPSZFZ-full.js → ids-chunk-3YQIAWWH-full.js} +4 -4
  15. package/chunks/{ids-chunk-PLPR5GKJ-full.js → ids-chunk-43FZEBRS-full.js} +4 -4
  16. package/chunks/{ids-chunk-7RGILH7X-full.js → ids-chunk-43XJCARO-full.js} +2 -2
  17. package/chunks/{ids-chunk-WEFW3UUH-full.js → ids-chunk-45IBQAGT-full.js} +2 -2
  18. package/chunks/{ids-chunk-BA4CXSVR-full.js → ids-chunk-46JSMYS6-full.js} +2 -2
  19. package/chunks/{ids-chunk-GOUMT663-full.js → ids-chunk-4AIWNOFW-full.js} +2 -2
  20. package/chunks/{ids-chunk-CBW2SB64-full.js → ids-chunk-4CR43LQ6-full.js} +3 -3
  21. package/chunks/{ids-chunk-NH555S2Q-full.js → ids-chunk-4H7FD7HD-full.js} +3 -3
  22. package/chunks/{ids-chunk-2C76IRIB-full.js → ids-chunk-4TMKTJBO-full.js} +3 -3
  23. package/chunks/{ids-chunk-YMIG7Z77-full.js → ids-chunk-4WM6MCKF-full.js} +2 -2
  24. package/chunks/{ids-chunk-QOLKI5WQ-full.js → ids-chunk-4ZQUHJAI-full.js} +3 -3
  25. package/chunks/{ids-chunk-27QUBXND-full.js → ids-chunk-5F6DIBXR-full.js} +2 -2
  26. package/chunks/{ids-chunk-MG2QEZQZ-full.js → ids-chunk-5G3D7MNU-full.js} +2 -2
  27. package/chunks/{ids-chunk-LBYTB2ER-full.js → ids-chunk-5SHP2LBI-full.js} +2 -2
  28. package/chunks/{ids-chunk-FKK6PR5M-full.js → ids-chunk-6EE4TSYU-full.js} +3 -3
  29. package/chunks/{ids-chunk-4PJMOTV4-full.js → ids-chunk-6F2BOA5W-full.js} +2 -2
  30. package/chunks/{ids-chunk-53KABCRA-full.js → ids-chunk-6PUNABRB-full.js} +3 -3
  31. package/chunks/{ids-chunk-4AJJN5JV-full.js → ids-chunk-6VLETYCE-full.js} +2 -2
  32. package/chunks/{ids-chunk-Q5TJLGPW-full.js → ids-chunk-72OAZJNF-full.js} +3 -3
  33. package/chunks/{ids-chunk-57NGX6S3-full.js → ids-chunk-7FBLSXJN-full.js} +2 -2
  34. package/chunks/{ids-chunk-6OQFDDN7-full.js → ids-chunk-7I2IIEWD-full.js} +3 -3
  35. package/chunks/{ids-chunk-TISUUBCX-full.js → ids-chunk-7IXJYUZT-full.js} +2 -2
  36. package/chunks/{ids-chunk-TRT2DIVS-full.js → ids-chunk-7URDZKCS-full.js} +3 -3
  37. package/chunks/{ids-chunk-DCF2P6AI-full.js → ids-chunk-AANY6YVE-full.js} +2 -2
  38. package/chunks/{ids-chunk-2WZ3QAXR-full.js → ids-chunk-AIJROIVF-full.js} +3 -3
  39. package/chunks/{ids-chunk-ZGD24T5H-full.js → ids-chunk-ANW7SKIO-full.js} +3 -3
  40. package/chunks/{ids-chunk-N4ONCRVF-full.js → ids-chunk-AT54WC4C-full.js} +2 -2
  41. package/chunks/{ids-chunk-FKUM3V2P-full.js → ids-chunk-B3LKCUUG-full.js} +3 -3
  42. package/chunks/{ids-chunk-SKJIMXJU-full.js → ids-chunk-BSYWBPYF-full.js} +2 -2
  43. package/chunks/{ids-chunk-CE3ZRA7E-full.js → ids-chunk-C26R35PY-full.js} +2 -2
  44. package/chunks/{ids-chunk-UBQPRE4M-full.js → ids-chunk-C3LKMRPW-full.js} +4 -4
  45. package/chunks/{ids-chunk-ZYSJZGMO-full.js → ids-chunk-C3V7NTXW-full.js} +2 -2
  46. package/chunks/{ids-chunk-ULHGUV77-full.js → ids-chunk-C5SKQHKU-full.js} +3 -3
  47. package/chunks/{ids-chunk-ASS3XIAM-full.js → ids-chunk-CEOIJ55M-full.js} +2 -2
  48. package/chunks/{ids-chunk-2BHWDRNC-full.js → ids-chunk-CVRPO2NQ-full.js} +2 -2
  49. package/chunks/{ids-chunk-FEXVS7OU-full.js → ids-chunk-DB5SZYVU-full.js} +6 -6
  50. package/chunks/{ids-chunk-E3MSLUD3-full.js → ids-chunk-DIOYPHHO-full.js} +3 -3
  51. package/chunks/{ids-chunk-B4AUSRXA-full.js → ids-chunk-DJKOR4UI-full.js} +2 -2
  52. package/chunks/{ids-chunk-7OQW74N3-full.js → ids-chunk-DQP6DVJQ-full.js} +5 -5
  53. package/chunks/{ids-chunk-L4WBT3JH-full.js → ids-chunk-DQU676TD-full.js} +2 -2
  54. package/chunks/{ids-chunk-CVVQ3AVV-full.js → ids-chunk-DSPHYYDU-full.js} +2 -2
  55. package/chunks/{ids-chunk-ZYPPKSJD-full.js → ids-chunk-DUPQZY3E-full.js} +2 -2
  56. package/chunks/{ids-chunk-VD57DS2I-full.js → ids-chunk-DW7GFEK7-full.js} +2 -2
  57. package/chunks/{ids-chunk-OUKRBJJQ-full.js → ids-chunk-E3EYXCNH-full.js} +2 -2
  58. package/chunks/{ids-chunk-CHJ6KJ7Q-full.js → ids-chunk-EDVQRRHK-full.js} +3 -3
  59. package/chunks/{ids-chunk-N7X6RV6U-full.js → ids-chunk-EHUFTHUE-full.js} +2 -2
  60. package/chunks/{ids-chunk-RS3IXCRP-full.js → ids-chunk-EJUX67VI-full.js} +2 -2
  61. package/chunks/{ids-chunk-GRFPSD5U-full.js → ids-chunk-EN2OYTTK-full.js} +2 -2
  62. package/chunks/{ids-chunk-FBSXIEML-full.js → ids-chunk-EWMDZACP-full.js} +5 -5
  63. package/chunks/{ids-chunk-FBSXIEML-full.js.map → ids-chunk-EWMDZACP-full.js.map} +2 -2
  64. package/chunks/{ids-chunk-LNKZVKYB-full.js → ids-chunk-EWUZBMYJ-full.js} +3 -3
  65. package/chunks/{ids-chunk-74IQSDTV-full.js → ids-chunk-EY3GP66M-full.js} +2 -2
  66. package/chunks/{ids-chunk-IRVUX37Q-full.js → ids-chunk-FERRLPWB-full.js} +2 -2
  67. package/chunks/{ids-chunk-JAAKZXSM-full.js → ids-chunk-FFJ4B7T2-full.js} +2 -2
  68. package/chunks/{ids-chunk-EGAGXAMH-full.js → ids-chunk-FFNMMG2J-full.js} +4 -4
  69. package/chunks/{ids-chunk-F7DISVS3-full.js → ids-chunk-FMNCRYYA-full.js} +2 -2
  70. package/chunks/{ids-chunk-AESZBMJC-full.js → ids-chunk-FOKR7HAI-full.js} +2 -2
  71. package/chunks/{ids-chunk-Z57D6YIW-full.js → ids-chunk-FW4DOBQU-full.js} +2 -2
  72. package/chunks/{ids-chunk-5O5M3P3V-full.js → ids-chunk-G57OOG3H-full.js} +3 -3
  73. package/chunks/{ids-chunk-JHTBYNRI-full.js → ids-chunk-G6RUQIR7-full.js} +2 -2
  74. package/chunks/{ids-chunk-32CIJZMM-full.js → ids-chunk-GBFKIATO-full.js} +6 -6
  75. package/chunks/{ids-chunk-QCVXS5IA-full.js → ids-chunk-GIBGRDF6-full.js} +4 -4
  76. package/chunks/{ids-chunk-A46Y26T3-full.js → ids-chunk-GTGLEDC2-full.js} +2 -2
  77. package/chunks/{ids-chunk-KBL3UP5C-full.js → ids-chunk-GVVP7LQ3-full.js} +3 -3
  78. package/chunks/{ids-chunk-TUTTQTPT-full.js → ids-chunk-H2LEFJY7-full.js} +18 -7
  79. package/chunks/{ids-chunk-TUTTQTPT-full.js.map → ids-chunk-H2LEFJY7-full.js.map} +2 -2
  80. package/chunks/{ids-chunk-EZD76AYH-full.js → ids-chunk-HAZNBMNY-full.js} +2 -2
  81. package/chunks/{ids-chunk-LH4RYRSV-full.js → ids-chunk-HEIH73MS-full.js} +3 -3
  82. package/chunks/{ids-chunk-7NILEKHS-full.js → ids-chunk-HGKIZXDQ-full.js} +49 -3
  83. package/chunks/ids-chunk-HGKIZXDQ-full.js.map +7 -0
  84. package/chunks/{ids-chunk-XWRFO6SR-full.js → ids-chunk-HHC6K5OW-full.js} +3 -3
  85. package/chunks/{ids-chunk-6U6EGRD2-full.js → ids-chunk-HKVSCK5P-full.js} +3 -3
  86. package/chunks/{ids-chunk-UALPAFOA-full.js → ids-chunk-HM2QRPLG-full.js} +2 -2
  87. package/chunks/{ids-chunk-QNWQB575-full.js → ids-chunk-HN3TES6H-full.js} +2 -2
  88. package/chunks/{ids-chunk-SEJB4BB5-full.js → ids-chunk-HW2PKJ3C-full.js} +2 -2
  89. package/chunks/{ids-chunk-Y6FPKWOS-full.js → ids-chunk-HYRXNPHU-full.js} +3 -3
  90. package/chunks/{ids-chunk-RUGV5KEH-full.js → ids-chunk-IQULHGMJ-full.js} +3 -3
  91. package/chunks/{ids-chunk-FEM5UYC2-full.js → ids-chunk-IS4JU2PL-full.js} +3 -3
  92. package/chunks/{ids-chunk-4CE67XBY-full.js → ids-chunk-IZAPGCMG-full.js} +3 -3
  93. package/chunks/{ids-chunk-ZHLPJWPG-full.js → ids-chunk-J4TEQA7D-full.js} +2 -2
  94. package/chunks/{ids-chunk-YBC2KLV3-full.js → ids-chunk-JFJBVCWC-full.js} +2 -2
  95. package/chunks/{ids-chunk-3BAOFQA5-full.js → ids-chunk-JIMIQBLD-full.js} +3 -3
  96. package/chunks/{ids-chunk-DRORXLFL-full.js → ids-chunk-JRDABGQT-full.js} +4 -4
  97. package/chunks/{ids-chunk-MY4CROHL-full.js → ids-chunk-KLVCC44N-full.js} +2 -2
  98. package/chunks/{ids-chunk-DR2HOPGB-full.js → ids-chunk-KNJSIOMM-full.js} +2 -2
  99. package/chunks/{ids-chunk-OONTE23M-full.js → ids-chunk-KTJELTJ7-full.js} +3 -3
  100. package/chunks/{ids-chunk-JZHX2Z4K-full.js → ids-chunk-KWNWPOZR-full.js} +2 -2
  101. package/chunks/{ids-chunk-AD4WG4JR-full.js → ids-chunk-L4TK2KKO-full.js} +2 -2
  102. package/chunks/{ids-chunk-YAVXM4L4-full.js → ids-chunk-LGTL7FTZ-full.js} +3 -3
  103. package/chunks/{ids-chunk-OCWPX7KF-full.js → ids-chunk-LGWDPTQS-full.js} +2 -2
  104. package/chunks/{ids-chunk-UJYGBMKN-full.js → ids-chunk-LKDR3JLR-full.js} +3 -3
  105. package/chunks/{ids-chunk-6FUANLGN-full.js → ids-chunk-LMUN7P76-full.js} +3 -3
  106. package/chunks/{ids-chunk-KAFBSRSW-full.js → ids-chunk-LUII2ZV5-full.js} +3 -3
  107. package/chunks/{ids-chunk-VK4SCEAG-full.js → ids-chunk-LWPAGEOG-full.js} +3 -3
  108. package/chunks/{ids-chunk-Z6VCVVKE-full.js → ids-chunk-LZU34NYE-full.js} +3 -3
  109. package/chunks/{ids-chunk-JDQ3YLZX-full.js → ids-chunk-M4KFUMJI-full.js} +2 -2
  110. package/chunks/{ids-chunk-CLQ4GQXN-full.js → ids-chunk-MDW67Z3D-full.js} +3 -3
  111. package/chunks/{ids-chunk-ZFFGGSGL-full.js → ids-chunk-MF5KPEBP-full.js} +3 -3
  112. package/chunks/{ids-chunk-MK3PJUPX-full.js → ids-chunk-MH2FGZWA-full.js} +2 -2
  113. package/chunks/{ids-chunk-PE5E5PG7-full.js → ids-chunk-MJFOIQDW-full.js} +2 -2
  114. package/chunks/{ids-chunk-GHKBGDSI-full.js → ids-chunk-MUFSPELP-full.js} +2 -2
  115. package/chunks/{ids-chunk-AZMGB3K6-full.js → ids-chunk-MUHJAJLL-full.js} +2 -2
  116. package/chunks/{ids-chunk-FZGISXIH-full.js → ids-chunk-MW57OW32-full.js} +2 -2
  117. package/chunks/{ids-chunk-6QTKQSJF-full.js → ids-chunk-N5DD7SQY-full.js} +2 -2
  118. package/chunks/{ids-chunk-AFQ35IPE-full.js → ids-chunk-N5FVOLA3-full.js} +2 -2
  119. package/chunks/{ids-chunk-6ROHNCND-full.js → ids-chunk-NCZQCFZV-full.js} +2 -2
  120. package/chunks/{ids-chunk-HMZS3IWM-full.js → ids-chunk-NESX4V7F-full.js} +8 -5
  121. package/chunks/ids-chunk-NESX4V7F-full.js.map +7 -0
  122. package/chunks/ids-chunk-NSCVZENR-full.js +65 -0
  123. package/chunks/ids-chunk-NSCVZENR-full.js.map +7 -0
  124. package/chunks/{ids-chunk-5HHTYMIG-full.js → ids-chunk-NWK2E7UY-full.js} +3 -3
  125. package/chunks/{ids-chunk-M5ZDYQZO-full.js → ids-chunk-NWYKW7KX-full.js} +2 -2
  126. package/chunks/{ids-chunk-LKEW46TQ-full.js → ids-chunk-O6DE7LH4-full.js} +2 -2
  127. package/chunks/{ids-chunk-I4YABQIG-full.js → ids-chunk-OC3TQJHF-full.js} +3 -3
  128. package/chunks/{ids-chunk-IQL2BQKM-full.js → ids-chunk-OFMCZ2NH-full.js} +2 -2
  129. package/chunks/{ids-chunk-GLMW7DMU-full.js → ids-chunk-OFS4VIIB-full.js} +8 -7
  130. package/chunks/{ids-chunk-GLMW7DMU-full.js.map → ids-chunk-OFS4VIIB-full.js.map} +2 -2
  131. package/chunks/{ids-chunk-E5HCZ2KG-full.js → ids-chunk-PCFVPLIA-full.js} +2 -2
  132. package/chunks/{ids-chunk-ZIB23J5V-full.js → ids-chunk-PEMXZF3X-full.js} +3 -3
  133. package/chunks/{ids-chunk-XXMP4ISV-full.js → ids-chunk-PLIXQIXO-full.js} +2 -2
  134. package/chunks/{ids-chunk-ABRKWU7O-full.js → ids-chunk-PMQWWRKS-full.js} +2 -2
  135. package/chunks/{ids-chunk-2QRKR2QB-full.js → ids-chunk-PVE4VGOJ-full.js} +2 -2
  136. package/chunks/{ids-chunk-H3YJOVK5-full.js → ids-chunk-Q5A2D5XH-full.js} +2 -2
  137. package/chunks/{ids-chunk-M75TGITM-full.js → ids-chunk-QFSVWAR3-full.js} +2 -2
  138. package/chunks/{ids-chunk-5ZXPNSAT-full.js → ids-chunk-QY5BYBZC-full.js} +2 -2
  139. package/chunks/{ids-chunk-G4ZHZ42Z-full.js → ids-chunk-QZILOIB3-full.js} +2 -2
  140. package/chunks/{ids-chunk-F3M3OIVM-full.js → ids-chunk-R4BNH5OB-full.js} +2 -2
  141. package/chunks/{ids-chunk-D5GE7LEE-full.js → ids-chunk-R5XYM5JI-full.js} +2 -2
  142. package/chunks/{ids-chunk-MBRDC2SV-full.js → ids-chunk-R73SYGDF-full.js} +2 -2
  143. package/chunks/{ids-chunk-OJSVIXP4-full.js → ids-chunk-REIBWCM6-full.js} +2 -2
  144. package/chunks/{ids-chunk-FZRZVA5C-full.js → ids-chunk-RK7Y7HRD-full.js} +2 -2
  145. package/chunks/{ids-chunk-EWSQRQZO-full.js → ids-chunk-RRT4LM45-full.js} +3 -3
  146. package/chunks/{ids-chunk-CBNQQDDM-full.js → ids-chunk-RVHXRE42-full.js} +3 -3
  147. package/chunks/{ids-chunk-5OM3KWJK-full.js → ids-chunk-RWBBMAR3-full.js} +2 -2
  148. package/chunks/{ids-chunk-QQ72JD62-full.js → ids-chunk-RZBNUTFK-full.js} +4 -4
  149. package/chunks/{ids-chunk-OJFOEXUW-full.js → ids-chunk-S4URXSWZ-full.js} +2 -2
  150. package/chunks/{ids-chunk-6M6HEYAD-full.js → ids-chunk-SKC57F2T-full.js} +3 -3
  151. package/chunks/{ids-chunk-E3OFMO6S-full.js → ids-chunk-SN6LW7KC-full.js} +2 -2
  152. package/chunks/{ids-chunk-JXMYDC4T-full.js → ids-chunk-SSVFWV2T-full.js} +2 -2
  153. package/chunks/{ids-chunk-VVSSYJHM-full.js → ids-chunk-T7I2DBGE-full.js} +3 -3
  154. package/chunks/{ids-chunk-GVDVGE7C-full.js → ids-chunk-T7JECBI5-full.js} +2 -2
  155. package/chunks/{ids-chunk-ERPRR4T4-full.js → ids-chunk-TM4HNEL4-full.js} +3 -3
  156. package/chunks/{ids-chunk-FZKUR2JI-full.js → ids-chunk-TMCYBFJ5-full.js} +2 -2
  157. package/chunks/{ids-chunk-MPGWC6ST-full.js → ids-chunk-TYX2OEND-full.js} +2 -2
  158. package/chunks/{ids-chunk-6UXPYDGW-full.js → ids-chunk-UDNQYHA5-full.js} +2 -2
  159. package/chunks/{ids-chunk-YNW5W3PP-full.js → ids-chunk-UEVOEMEM-full.js} +54 -24
  160. package/chunks/ids-chunk-UEVOEMEM-full.js.map +7 -0
  161. package/chunks/{ids-chunk-6S4QSV5N-full.js → ids-chunk-UFMEG2Z7-full.js} +3 -3
  162. package/chunks/{ids-chunk-SNXRRD5T-full.js → ids-chunk-USLG2PTM-full.js} +3 -3
  163. package/chunks/{ids-chunk-FJ2JUSFH-full.js → ids-chunk-V2IQA7L3-full.js} +3 -3
  164. package/chunks/{ids-chunk-QHINKXYB-full.js → ids-chunk-VATX5XAY-full.js} +2 -2
  165. package/chunks/{ids-chunk-7JRTJDFA-full.js → ids-chunk-VPNJ4GG2-full.js} +2 -2
  166. package/chunks/{ids-chunk-PHUC5SK7-full.js → ids-chunk-VULIZCJD-full.js} +5 -5
  167. package/chunks/{ids-chunk-KEQHJ5G3-full.js → ids-chunk-W5OKLYTI-full.js} +3 -3
  168. package/chunks/{ids-chunk-6JBLWV3W-full.js → ids-chunk-WKEWZVYT-full.js} +2 -2
  169. package/chunks/{ids-chunk-HS5ONR6J-full.js → ids-chunk-WNBRICEB-full.js} +2 -2
  170. package/chunks/{ids-chunk-QPTZRSVW-full.js → ids-chunk-WNG7OERZ-full.js} +2 -2
  171. package/chunks/{ids-chunk-3CLJE3UT-full.js → ids-chunk-WNNGZOIF-full.js} +2 -2
  172. package/chunks/{ids-chunk-4ARZ2AAM-full.js → ids-chunk-X6QSQFGR-full.js} +3 -3
  173. package/chunks/{ids-chunk-D6U4XWPR-full.js → ids-chunk-XLD6LQQW-full.js} +2 -2
  174. package/chunks/{ids-chunk-Z3M64LU2-full.js → ids-chunk-XMNEN2UX-full.js} +3 -3
  175. package/chunks/{ids-chunk-ABTOY23D-full.js → ids-chunk-YF3PJT6E-full.js} +3 -3
  176. package/chunks/{ids-chunk-TIM3LTRG-full.js → ids-chunk-YL4L6HJK-full.js} +2 -2
  177. package/chunks/{ids-chunk-D5WII5AE-full.js → ids-chunk-YR3BXJZD-full.js} +3 -3
  178. package/chunks/{ids-chunk-AHFLTQXW-full.js → ids-chunk-ZB5VJXMR-full.js} +3 -3
  179. package/chunks/{ids-chunk-G7ZSOBX3-full.js → ids-chunk-ZD6QL4TP-full.js} +2 -2
  180. package/chunks/{ids-chunk-SVCSD76X-full.js → ids-chunk-ZFEFQ7ON-full.js} +3 -3
  181. package/chunks/{ids-chunk-SRHJCZSW-full.js → ids-chunk-ZL274STH-full.js} +2 -2
  182. package/chunks/{ids-chunk-NQWBNWF3-full.js → ids-chunk-ZSW7GSJP-full.js} +2 -2
  183. package/components/ids-about/ids-about.d.ts +2 -2
  184. package/components/ids-about/ids-about.js +18 -17
  185. package/components/ids-accordion/ids-accordion-header.d.ts +18 -18
  186. package/components/ids-accordion/ids-accordion-header.js +4 -3
  187. package/components/ids-accordion/ids-accordion-panel.d.ts +20 -20
  188. package/components/ids-accordion/ids-accordion-panel.js +5 -4
  189. package/components/ids-accordion/ids-accordion-section.d.ts +18 -18
  190. package/components/ids-accordion/ids-accordion-section.js +4 -3
  191. package/components/ids-accordion/ids-accordion.css +156 -8
  192. package/components/ids-accordion/ids-accordion.d.ts +22 -22
  193. package/components/ids-accordion/ids-accordion.js +8 -7
  194. package/components/ids-action-panel/ids-action-panel.js +31 -30
  195. package/components/ids-action-sheet/ids-action-sheet.d.ts +15 -15
  196. package/components/ids-action-sheet/ids-action-sheet.js +25 -24
  197. package/components/ids-alert/ids-alert.d.ts +17 -17
  198. package/components/ids-alert/ids-alert.js +9 -8
  199. package/components/ids-app-menu/ids-app-menu-container.js +4 -3
  200. package/components/ids-app-menu/ids-app-menu.d.ts +2 -2
  201. package/components/ids-app-menu/ids-app-menu.js +36 -35
  202. package/components/ids-area-chart/ids-area-chart.js +13 -12
  203. package/components/ids-avatar/ids-avatar.d.ts +17 -17
  204. package/components/ids-avatar/ids-avatar.js +4 -3
  205. package/components/ids-axis-chart/ids-axis-chart.d.ts +23 -23
  206. package/components/ids-axis-chart/ids-axis-chart.js +11 -10
  207. package/components/ids-badge/ids-badge.d.ts +15 -15
  208. package/components/ids-badge/ids-badge.js +4 -3
  209. package/components/ids-bar-chart/ids-bar-chart.js +12 -11
  210. package/components/ids-block-grid/ids-block-grid-item.d.ts +19 -19
  211. package/components/ids-block-grid/ids-block-grid-item.js +10 -9
  212. package/components/ids-block-grid/ids-block-grid.d.ts +20 -20
  213. package/components/ids-block-grid/ids-block-grid.js +37 -36
  214. package/components/ids-box/ids-box.js +4 -3
  215. package/components/ids-breadcrumb/ids-breadcrumb.d.ts +15 -15
  216. package/components/ids-breadcrumb/ids-breadcrumb.js +27 -26
  217. package/components/ids-button/ids-button-group-section.d.ts +17 -17
  218. package/components/ids-button/ids-button-group-section.js +7 -6
  219. package/components/ids-button/ids-button-group.d.ts +17 -17
  220. package/components/ids-button/ids-button-group.js +5 -4
  221. package/components/ids-button/ids-button.d.ts +40 -40
  222. package/components/ids-button/ids-button.js +14 -13
  223. package/components/ids-calendar/ids-calendar-event.d.ts +17 -17
  224. package/components/ids-calendar/ids-calendar-event.js +5 -4
  225. package/components/ids-calendar/ids-calendar.css +265 -190
  226. package/components/ids-calendar/ids-calendar.d.ts +27 -27
  227. package/components/ids-calendar/ids-calendar.js +54 -53
  228. package/components/ids-card/ids-card-action.js +4 -3
  229. package/components/ids-card/ids-card.d.ts +39 -39
  230. package/components/ids-card/ids-card.js +12 -11
  231. package/components/ids-checkbox/ids-checkbox-group.d.ts +15 -15
  232. package/components/ids-checkbox/ids-checkbox-group.js +4 -3
  233. package/components/ids-checkbox/ids-checkbox.css +580 -7
  234. package/components/ids-checkbox/ids-checkbox.d.ts +32 -32
  235. package/components/ids-checkbox/ids-checkbox.js +9 -8
  236. package/components/ids-color/ids-color.d.ts +17 -17
  237. package/components/ids-color/ids-color.js +9 -8
  238. package/components/ids-color-picker/ids-color-picker.d.ts +30 -30
  239. package/components/ids-color-picker/ids-color-picker.js +24 -23
  240. package/components/ids-container/ids-container.d.ts +20 -20
  241. package/components/ids-container/ids-container.js +5 -4
  242. package/components/ids-counts/ids-counts.d.ts +15 -15
  243. package/components/ids-counts/ids-counts.js +10 -9
  244. package/components/ids-data-grid/ids-data-grid-cell.d.ts +15 -15
  245. package/components/ids-data-grid/ids-data-grid-cell.js +4 -3
  246. package/components/ids-data-grid/ids-data-grid-editors.js +52 -51
  247. package/components/ids-data-grid/ids-data-grid-empty-message.js +10 -9
  248. package/components/ids-data-grid/ids-data-grid-filter-manager.d.ts +36 -0
  249. package/components/ids-data-grid/ids-data-grid-filter-manager.js +12 -0
  250. package/components/ids-data-grid/ids-data-grid-filter-manager.js.map +7 -0
  251. package/components/ids-data-grid/ids-data-grid-filters.d.ts +6 -0
  252. package/components/ids-data-grid/ids-data-grid-filters.js +48 -47
  253. package/components/ids-data-grid/ids-data-grid-formatters.js +30 -29
  254. package/components/ids-data-grid/ids-data-grid-header.d.ts +15 -15
  255. package/components/ids-data-grid/ids-data-grid-header.js +26 -25
  256. package/components/ids-data-grid/ids-data-grid-row.js +5 -4
  257. package/components/ids-data-grid/ids-data-grid-save-settings-mixin.d.ts +17 -17
  258. package/components/ids-data-grid/ids-data-grid-search-mixin.d.ts +8 -8
  259. package/components/ids-data-grid/ids-data-grid-toolbar-mixin.d.ts +3 -3
  260. package/components/ids-data-grid/ids-data-grid-tooltip-mixin.d.ts +16 -16
  261. package/components/ids-data-grid/ids-data-grid-tooltip-mixin.js +7 -6
  262. package/components/ids-data-grid/ids-data-grid.d.ts +69 -68
  263. package/components/ids-data-grid/ids-data-grid.js +82 -81
  264. package/components/ids-data-label/ids-data-label.d.ts +17 -17
  265. package/components/ids-data-label/ids-data-label.js +5 -4
  266. package/components/ids-date-picker/ids-date-picker-popup.d.ts +9 -9
  267. package/components/ids-date-picker/ids-date-picker-popup.js +46 -45
  268. package/components/ids-date-picker/ids-date-picker.css +389 -31
  269. package/components/ids-date-picker/ids-date-picker.d.ts +46 -41
  270. package/components/ids-date-picker/ids-date-picker.js +47 -46
  271. package/components/ids-date-picker/ids-month-year-picklist.d.ts +21 -21
  272. package/components/ids-date-picker/ids-month-year-picklist.js +9 -8
  273. package/components/ids-draggable/ids-draggable.d.ts +15 -15
  274. package/components/ids-draggable/ids-draggable.js +4 -3
  275. package/components/ids-drawer/ids-drawer.d.ts +22 -22
  276. package/components/ids-drawer/ids-drawer.js +5 -4
  277. package/components/ids-dropdown/ids-dropdown-attributes-mixin.d.ts +2 -2
  278. package/components/ids-dropdown/ids-dropdown-list.d.ts +12 -12
  279. package/components/ids-dropdown/ids-dropdown-list.js +6 -5
  280. package/components/ids-dropdown/ids-dropdown.d.ts +45 -45
  281. package/components/ids-dropdown/ids-dropdown.js +26 -25
  282. package/components/ids-editor/ids-editor.d.ts +34 -34
  283. package/components/ids-editor/ids-editor.js +42 -41
  284. package/components/ids-empty-message/ids-empty-message.d.ts +15 -15
  285. package/components/ids-empty-message/ids-empty-message.js +10 -9
  286. package/components/ids-error-page/ids-error-page.js +20 -19
  287. package/components/ids-expandable-area/ids-expandable-area.d.ts +15 -15
  288. package/components/ids-expandable-area/ids-expandable-area.js +4 -3
  289. package/components/ids-fieldset/ids-fieldset.d.ts +15 -15
  290. package/components/ids-fieldset/ids-fieldset.js +4 -3
  291. package/components/ids-filter-field/ids-filter-field.d.ts +18 -18
  292. package/components/ids-filter-field/ids-filter-field.js +3 -2
  293. package/components/ids-filter-field/ids-filter-field.js.map +1 -1
  294. package/components/ids-form/ids-form.d.ts +18 -18
  295. package/components/ids-form/ids-form.js +4 -3
  296. package/components/ids-global/ids-global.d.ts +8 -0
  297. package/components/ids-global/ids-global.js +2 -1
  298. package/components/ids-header/ids-header.d.ts +17 -17
  299. package/components/ids-header/ids-header.js +4 -3
  300. package/components/ids-hidden/ids-hidden.js +4 -3
  301. package/components/ids-hierarchy/ids-hierarchy-item.d.ts +18 -18
  302. package/components/ids-hierarchy/ids-hierarchy-item.js +4 -3
  303. package/components/ids-hierarchy/ids-hierarchy-legend-item.d.ts +3 -3
  304. package/components/ids-hierarchy/ids-hierarchy-legend-item.js +4 -3
  305. package/components/ids-hierarchy/ids-hierarchy-legend.js +4 -3
  306. package/components/ids-hierarchy/ids-hierarchy.css +117 -14
  307. package/components/ids-hierarchy/ids-hierarchy.d.ts +15 -15
  308. package/components/ids-hierarchy/ids-hierarchy.js +7 -6
  309. package/components/ids-home-page/ids-home-page.d.ts +17 -17
  310. package/components/ids-home-page/ids-home-page.js +31 -30
  311. package/components/ids-hyperlink/ids-hyperlink.d.ts +33 -33
  312. package/components/ids-hyperlink/ids-hyperlink.js +8 -7
  313. package/components/ids-hyperlink/ids-link-list.js +4 -3
  314. package/components/ids-icon/ids-icon.d.ts +20 -20
  315. package/components/ids-icon/ids-icon.js +5 -4
  316. package/components/ids-image/ids-image.d.ts +15 -15
  317. package/components/ids-image/ids-image.js +10 -9
  318. package/components/ids-input/ids-autocomplete.d.ts +11 -11
  319. package/components/ids-input/ids-autocomplete.js +12 -11
  320. package/components/ids-input/ids-input.d.ts +71 -71
  321. package/components/ids-input/ids-input.js +21 -20
  322. package/components/ids-input-group/ids-input-group.d.ts +15 -15
  323. package/components/ids-input-group/ids-input-group.js +3 -2
  324. package/components/ids-input-group/ids-input-group.js.map +1 -1
  325. package/components/ids-kpi/ids-kpi.d.ts +17 -17
  326. package/components/ids-kpi/ids-kpi.js +8 -7
  327. package/components/ids-layout-flex/ids-layout-flex-item.js +4 -3
  328. package/components/ids-layout-flex/ids-layout-flex.css +69 -6
  329. package/components/ids-layout-flex/ids-layout-flex.js +5 -4
  330. package/components/ids-layout-flex/ids-scroll-container.js +4 -3
  331. package/components/ids-layout-grid/ids-layout-grid-cell.d.ts +15 -15
  332. package/components/ids-layout-grid/ids-layout-grid-cell.js +4 -3
  333. package/components/ids-layout-grid/ids-layout-grid.js +4 -3
  334. package/components/ids-line-chart/ids-line-chart.js +12 -11
  335. package/components/ids-list-box/ids-list-box-option.d.ts +17 -17
  336. package/components/ids-list-box/ids-list-box-option.js +11 -10
  337. package/components/ids-list-box/ids-list-box.js +12 -11
  338. package/components/ids-list-builder/ids-list-builder.js +47 -46
  339. package/components/ids-list-view/ids-list-view-group-header.js +4 -3
  340. package/components/ids-list-view/ids-list-view-item.d.ts +17 -17
  341. package/components/ids-list-view/ids-list-view-item.js +35 -34
  342. package/components/ids-list-view/ids-list-view-search-mixin.d.ts +7 -7
  343. package/components/ids-list-view/ids-list-view.css +112 -15
  344. package/components/ids-list-view/ids-list-view.d.ts +33 -33
  345. package/components/ids-list-view/ids-list-view.js +43 -42
  346. package/components/ids-loading-indicator/ids-loading-indicator.d.ts +15 -15
  347. package/components/ids-loading-indicator/ids-loading-indicator.js +5 -4
  348. package/components/ids-lookup/ids-lookup.d.ts +33 -33
  349. package/components/ids-lookup/ids-lookup.js +35 -34
  350. package/components/ids-masthead/ids-masthead.d.ts +17 -17
  351. package/components/ids-masthead/ids-masthead.js +30 -29
  352. package/components/ids-media-gallery/ids-media-gallery.d.ts +17 -17
  353. package/components/ids-media-gallery/ids-media-gallery.js +34 -33
  354. package/components/ids-media-gallery/ids-media-viewer.d.ts +17 -17
  355. package/components/ids-media-gallery/ids-media-viewer.js +11 -10
  356. package/components/ids-menu/ids-menu-group.d.ts +17 -17
  357. package/components/ids-menu/ids-menu-group.js +6 -5
  358. package/components/ids-menu/ids-menu-header.d.ts +15 -15
  359. package/components/ids-menu/ids-menu-header.js +4 -3
  360. package/components/ids-menu/ids-menu-item.d.ts +20 -20
  361. package/components/ids-menu/ids-menu-item.js +6 -5
  362. package/components/ids-menu/ids-menu.css +13 -3
  363. package/components/ids-menu/ids-menu.d.ts +17 -17
  364. package/components/ids-menu/ids-menu.js +10 -9
  365. package/components/ids-menu-button/ids-menu-button.js +25 -24
  366. package/components/ids-message/ids-message.js +18 -17
  367. package/components/ids-modal/ids-modal-button.js +15 -14
  368. package/components/ids-modal/ids-modal.d.ts +41 -41
  369. package/components/ids-modal/ids-modal.js +16 -15
  370. package/components/ids-modal/ids-overlay.d.ts +15 -15
  371. package/components/ids-modal/ids-overlay.js +4 -3
  372. package/components/ids-module-nav/ids-module-nav-bar.d.ts +10 -10
  373. package/components/ids-module-nav/ids-module-nav-bar.js +36 -35
  374. package/components/ids-module-nav/ids-module-nav-button.d.ts +6 -6
  375. package/components/ids-module-nav/ids-module-nav-button.js +15 -14
  376. package/components/ids-module-nav/ids-module-nav-content.d.ts +3 -3
  377. package/components/ids-module-nav/ids-module-nav-content.js +5 -4
  378. package/components/ids-module-nav/ids-module-nav-display-mode-mixin.d.ts +3 -3
  379. package/components/ids-module-nav/ids-module-nav-item.d.ts +16 -16
  380. package/components/ids-module-nav/ids-module-nav-item.js +5 -4
  381. package/components/ids-module-nav/ids-module-nav-settings.d.ts +6 -6
  382. package/components/ids-module-nav/ids-module-nav-settings.js +26 -25
  383. package/components/ids-module-nav/ids-module-nav-switcher.d.ts +21 -21
  384. package/components/ids-module-nav/ids-module-nav-switcher.js +4 -3
  385. package/components/ids-module-nav/ids-module-nav-text-display-mixin.d.ts +3 -3
  386. package/components/ids-module-nav/ids-module-nav-user.d.ts +26 -26
  387. package/components/ids-module-nav/ids-module-nav-user.js +4 -3
  388. package/components/ids-module-nav/ids-module-nav-user.js.map +1 -1
  389. package/components/ids-module-nav/ids-module-nav.d.ts +28 -28
  390. package/components/ids-module-nav/ids-module-nav.js +48 -47
  391. package/components/ids-month-view/ids-month-view-attribute-mixin.d.ts +5 -5
  392. package/components/ids-month-view/ids-month-view.d.ts +27 -27
  393. package/components/ids-month-view/ids-month-view.js +19 -18
  394. package/components/ids-multiselect/ids-multiselect.js +38 -37
  395. package/components/ids-notification-banner/ids-notification-banner-service.js +19 -18
  396. package/components/ids-notification-banner/ids-notification-banner-service.js.map +1 -1
  397. package/components/ids-notification-banner/ids-notification-banner.d.ts +17 -17
  398. package/components/ids-notification-banner/ids-notification-banner.js +19 -18
  399. package/components/ids-pager/ids-pager-button.d.ts +19 -19
  400. package/components/ids-pager/ids-pager-button.js +16 -15
  401. package/components/ids-pager/ids-pager-dropdown.d.ts +17 -17
  402. package/components/ids-pager/ids-pager-dropdown.js +25 -24
  403. package/components/ids-pager/ids-pager-input.d.ts +19 -19
  404. package/components/ids-pager/ids-pager-input.js +22 -21
  405. package/components/ids-pager/ids-pager-number-list.d.ts +17 -17
  406. package/components/ids-pager/ids-pager-number-list.js +16 -15
  407. package/components/ids-pager/ids-pager.css +3 -37
  408. package/components/ids-pager/ids-pager.d.ts +15 -15
  409. package/components/ids-pager/ids-pager.js +26 -25
  410. package/components/ids-pie-chart/ids-pie-chart.d.ts +23 -23
  411. package/components/ids-pie-chart/ids-pie-chart.js +11 -10
  412. package/components/ids-popup/ids-picker-popup.d.ts +30 -30
  413. package/components/ids-popup/ids-picker-popup.js +4 -3
  414. package/components/ids-popup/ids-popup.d.ts +25 -25
  415. package/components/ids-popup/ids-popup.js +6 -5
  416. package/components/ids-popup-menu/ids-popup-menu.d.ts +8 -8
  417. package/components/ids-popup-menu/ids-popup-menu.js +24 -23
  418. package/components/ids-process-indicator/ids-process-indicator-step.d.ts +15 -15
  419. package/components/ids-process-indicator/ids-process-indicator-step.js +4 -3
  420. package/components/ids-process-indicator/ids-process-indicator.d.ts +15 -15
  421. package/components/ids-process-indicator/ids-process-indicator.js +11 -10
  422. package/components/ids-progress-bar/ids-progress-bar.d.ts +15 -15
  423. package/components/ids-progress-bar/ids-progress-bar.js +4 -3
  424. package/components/ids-progress-chart/ids-progress-chart.d.ts +15 -15
  425. package/components/ids-progress-chart/ids-progress-chart.js +4 -3
  426. package/components/ids-radio/ids-radio-group.d.ts +27 -27
  427. package/components/ids-radio/ids-radio-group.js +9 -8
  428. package/components/ids-radio/ids-radio.d.ts +27 -27
  429. package/components/ids-radio/ids-radio.js +10 -9
  430. package/components/ids-rating/ids-rating.d.ts +17 -17
  431. package/components/ids-rating/ids-rating.js +4 -3
  432. package/components/ids-scroll-view/ids-scroll-view.d.ts +19 -19
  433. package/components/ids-scroll-view/ids-scroll-view.js +15 -14
  434. package/components/ids-search-field/ids-search-field.js +32 -31
  435. package/components/ids-segmented-control/ids-segmented-control.d.ts +19 -19
  436. package/components/ids-segmented-control/ids-segmented-control.js +5 -4
  437. package/components/ids-separator/ids-separator.d.ts +18 -18
  438. package/components/ids-separator/ids-separator.js +4 -3
  439. package/components/ids-skip-link/ids-skip-link.d.ts +15 -15
  440. package/components/ids-skip-link/ids-skip-link.js +9 -8
  441. package/components/ids-slider/ids-slider.d.ts +17 -17
  442. package/components/ids-slider/ids-slider.js +5 -4
  443. package/components/ids-spinbox/ids-spinbox.js +23 -22
  444. package/components/ids-splitter/ids-splitter-local-storage.js +6 -5
  445. package/components/ids-splitter/ids-splitter-pane.d.ts +17 -17
  446. package/components/ids-splitter/ids-splitter-pane.js +5 -4
  447. package/components/ids-splitter/ids-splitter.d.ts +17 -17
  448. package/components/ids-splitter/ids-splitter.js +8 -7
  449. package/components/ids-stats/ids-stats.d.ts +17 -17
  450. package/components/ids-stats/ids-stats.js +9 -8
  451. package/components/ids-step-chart/ids-step-chart.d.ts +15 -15
  452. package/components/ids-step-chart/ids-step-chart.js +11 -10
  453. package/components/ids-swaplist/ids-swaplist.d.ts +19 -19
  454. package/components/ids-swaplist/ids-swaplist.js +47 -46
  455. package/components/ids-swappable/ids-swappable-item.d.ts +29 -29
  456. package/components/ids-swappable/ids-swappable-item.js +5 -4
  457. package/components/ids-swappable/ids-swappable.css +84 -19
  458. package/components/ids-swappable/ids-swappable.d.ts +28 -28
  459. package/components/ids-swappable/ids-swappable.js +34 -33
  460. package/components/ids-swipe-action/ids-swipe-action.d.ts +15 -15
  461. package/components/ids-swipe-action/ids-swipe-action.js +4 -3
  462. package/components/ids-switch/ids-switch.d.ts +23 -23
  463. package/components/ids-switch/ids-switch.js +9 -8
  464. package/components/ids-tabs/ids-sub-tab.d.ts +20 -20
  465. package/components/ids-tabs/ids-sub-tab.js +18 -17
  466. package/components/ids-tabs/ids-sub-tabs.d.ts +17 -17
  467. package/components/ids-tabs/ids-sub-tabs.js +21 -20
  468. package/components/ids-tabs/ids-tab-content.d.ts +17 -17
  469. package/components/ids-tabs/ids-tab-content.js +4 -3
  470. package/components/ids-tabs/ids-tab-divider.js +4 -3
  471. package/components/ids-tabs/ids-tab-more.d.ts +2 -2
  472. package/components/ids-tabs/ids-tab-more.js +28 -27
  473. package/components/ids-tabs/ids-tab.d.ts +31 -31
  474. package/components/ids-tabs/ids-tab.js +19 -18
  475. package/components/ids-tabs/ids-tabs-context.d.ts +18 -18
  476. package/components/ids-tabs/ids-tabs-context.js +5 -4
  477. package/components/ids-tabs/ids-tabs.css +542 -11
  478. package/components/ids-tabs/ids-tabs.d.ts +25 -25
  479. package/components/ids-tabs/ids-tabs.js +33 -32
  480. package/components/ids-tag/ids-tag-list.d.ts +15 -15
  481. package/components/ids-tag/ids-tag-list.js +4 -3
  482. package/components/ids-tag/ids-tag.d.ts +19 -19
  483. package/components/ids-tag/ids-tag.js +5 -4
  484. package/components/ids-text/ids-text.d.ts +22 -22
  485. package/components/ids-text/ids-text.js +8 -7
  486. package/components/ids-textarea/ids-textarea.d.ts +43 -43
  487. package/components/ids-textarea/ids-textarea.js +23 -22
  488. package/components/ids-theme-switcher/ids-theme-switcher.d.ts +20 -20
  489. package/components/ids-theme-switcher/ids-theme-switcher.js +26 -25
  490. package/components/ids-time-picker/ids-time-picker-popup.d.ts +6 -6
  491. package/components/ids-time-picker/ids-time-picker-popup.js +28 -27
  492. package/components/ids-time-picker/ids-time-picker.css +49 -67
  493. package/components/ids-time-picker/ids-time-picker.d.ts +34 -34
  494. package/components/ids-time-picker/ids-time-picker.js +29 -28
  495. package/components/ids-toast/ids-toast-message.d.ts +17 -17
  496. package/components/ids-toast/ids-toast-message.js +19 -18
  497. package/components/ids-toast/ids-toast.d.ts +19 -19
  498. package/components/ids-toast/ids-toast.js +21 -20
  499. package/components/ids-toggle-button/ids-toggle-button.js +16 -15
  500. package/components/ids-toolbar/ids-toolbar-more-actions.d.ts +20 -20
  501. package/components/ids-toolbar/ids-toolbar-more-actions.js +27 -26
  502. package/components/ids-toolbar/ids-toolbar-section.d.ts +15 -15
  503. package/components/ids-toolbar/ids-toolbar-section.js +4 -3
  504. package/components/ids-toolbar/ids-toolbar.d.ts +17 -17
  505. package/components/ids-toolbar/ids-toolbar.js +28 -27
  506. package/components/ids-tooltip/ids-tooltip.d.ts +19 -19
  507. package/components/ids-tooltip/ids-tooltip.js +7 -6
  508. package/components/ids-tree/ids-tree-node.d.ts +15 -15
  509. package/components/ids-tree/ids-tree-node.js +11 -10
  510. package/components/ids-tree/ids-tree.d.ts +17 -17
  511. package/components/ids-tree/ids-tree.js +13 -12
  512. package/components/ids-treemap/ids-treemap.d.ts +17 -17
  513. package/components/ids-treemap/ids-treemap.js +5 -4
  514. package/components/ids-trigger-field/ids-trigger-button.d.ts +3 -3
  515. package/components/ids-trigger-field/ids-trigger-button.js +15 -14
  516. package/components/ids-trigger-field/ids-trigger-field.js +22 -21
  517. package/components/ids-upload/ids-upload.d.ts +34 -34
  518. package/components/ids-upload/ids-upload.js +23 -22
  519. package/components/ids-upload-advanced/ids-upload-advanced-file.d.ts +17 -17
  520. package/components/ids-upload-advanced/ids-upload-advanced-file.js +19 -18
  521. package/components/ids-upload-advanced/ids-upload-advanced.d.ts +17 -17
  522. package/components/ids-upload-advanced/ids-upload-advanced.js +33 -32
  523. package/components/ids-virtual-scroll/ids-virtual-scroll.d.ts +15 -15
  524. package/components/ids-virtual-scroll/ids-virtual-scroll.js +4 -3
  525. package/components/ids-week-view/ids-week-view.d.ts +22 -22
  526. package/components/ids-week-view/ids-week-view.js +48 -47
  527. package/components/ids-widget/ids-widget.d.ts +17 -17
  528. package/components/ids-widget/ids-widget.js +30 -29
  529. package/components/ids-wizard/ids-wizard-step.js +4 -3
  530. package/components/ids-wizard/ids-wizard.d.ts +17 -17
  531. package/components/ids-wizard/ids-wizard.js +10 -9
  532. package/core/ids-element.js +3 -2
  533. package/custom-elements.json +728 -540
  534. package/enterprise-wc.all.iife.js +177 -21
  535. package/enterprise-wc.all.iife.js.map +4 -4
  536. package/enterprise-wc.js +177 -176
  537. package/mixins/ids-attachment-mixin/ids-attachment-mixin.d.ts +3 -3
  538. package/mixins/ids-breakpoint-mixin/ids-breakpoint-mixin.d.ts +10 -10
  539. package/mixins/ids-calendar-events-mixin/ids-calendar-events-mixin.d.ts +3 -3
  540. package/mixins/ids-chart-legend-mixin/ids-chart-legend-mixin.d.ts +2 -2
  541. package/mixins/ids-chart-selection-mixin/ids-chart-selection-mixin.d.ts +4 -4
  542. package/mixins/ids-clearable-mixin/ids-clearable-mixin.d.ts +3 -3
  543. package/mixins/ids-color-variant-mixin/ids-color-variant-mixin.d.ts +3 -3
  544. package/mixins/ids-date-attribute-mixin/ids-date-attribute-mixin.d.ts +2 -2
  545. package/mixins/ids-dirty-tracker-mixin/ids-dirty-tracker-mixin.d.ts +5 -5
  546. package/mixins/ids-draggable-mixin/ids-draggable-mixin.d.ts +12 -12
  547. package/mixins/ids-events-mixin/ids-events-mixin.d.ts +15 -15
  548. package/mixins/ids-field-height-mixin/ids-field-height-mixin.d.ts +3 -3
  549. package/mixins/ids-focus-capture-mixin/ids-focus-capture-mixin.d.ts +9 -9
  550. package/mixins/ids-form-input-mixin/ids-form-input-mixin.d.ts +6 -6
  551. package/mixins/ids-hide-focus-mixin/ids-hide-focus-mixin.d.ts +10 -10
  552. package/mixins/ids-hitbox-mixin/ids-hitbox-mixin.d.ts +3 -3
  553. package/mixins/ids-keyboard-mixin/ids-keyboard-mixin.d.ts +2 -2
  554. package/mixins/ids-label-state-mixin/ids-label-state-mixin.d.ts +7 -7
  555. package/mixins/ids-label-state-mixin/ids-label-state-parent-mixin.d.ts +2 -2
  556. package/mixins/ids-loading-indicator-mixin/ids-loading-indicator-mixin.d.ts +5 -5
  557. package/mixins/ids-loading-indicator-mixin/ids-loading-indicator-mixin.js +5 -4
  558. package/mixins/ids-locale-mixin/ids-locale-mixin.d.ts +2 -2
  559. package/mixins/ids-locale-mixin/ids-locale-mixin.js +3 -2
  560. package/mixins/ids-mask-mixin/ids-mask-mixin.d.ts +2 -2
  561. package/mixins/ids-orientation-mixin/ids-orientation-mixin.d.ts +3 -3
  562. package/mixins/ids-pager-mixin/ids-pager-mixin.d.ts +5 -5
  563. package/mixins/ids-pager-mixin/ids-pager-mixin.js +35 -34
  564. package/mixins/ids-popup-interactions-mixin/ids-popup-interactions-mixin.d.ts +3 -3
  565. package/mixins/ids-popup-open-events-mixin/ids-popup-open-events-mixin.d.ts +5 -5
  566. package/mixins/ids-scroll-effect-mixin/ids-scroll-effect-mixin.d.ts +2 -2
  567. package/mixins/ids-selection-mixin/ids-selection-mixin.d.ts +2 -2
  568. package/mixins/ids-tooltip-mixin/ids-tooltip-mixin.d.ts +2 -2
  569. package/mixins/ids-tooltip-mixin/ids-tooltip-mixin.js +7 -6
  570. package/mixins/ids-validation-mixin/ids-validation-input-mixin.d.ts +2 -2
  571. package/mixins/ids-validation-mixin/ids-validation-mixin.d.ts +5 -5
  572. package/mixins/ids-xss-mixin/ids-xss-mixin.d.ts +2 -2
  573. package/package.json +1 -1
  574. package/utils/ids-excel-exporter/ids-excel-exporter.js +2 -2
  575. package/vscode.html-custom-data.json +1 -1
  576. package/chunks/ids-chunk-7NILEKHS-full.js.map +0 -7
  577. package/chunks/ids-chunk-HMZS3IWM-full.js.map +0 -7
  578. package/chunks/ids-chunk-PUPMVP4G-full.js.map +0 -7
  579. package/chunks/ids-chunk-YNW5W3PP-full.js.map +0 -7
  580. /package/chunks/{ids-chunk-IXIJ5F4V-full.js.map → ids-chunk-25RRMSCK-full.js.map} +0 -0
  581. /package/chunks/{ids-chunk-S6TUVYGS-full.js.map → ids-chunk-273NHJXW-full.js.map} +0 -0
  582. /package/chunks/{ids-chunk-IKLVKRXA-full.js.map → ids-chunk-27USWNVC-full.js.map} +0 -0
  583. /package/chunks/{ids-chunk-33HZ4QQP-full.js.map → ids-chunk-2FFMS4BJ-full.js.map} +0 -0
  584. /package/chunks/{ids-chunk-FJ426IAI-full.js.map → ids-chunk-2L5OCXXN-full.js.map} +0 -0
  585. /package/chunks/{ids-chunk-A7EHWJXP-full.js.map → ids-chunk-2PWGRJAO-full.js.map} +0 -0
  586. /package/chunks/{ids-chunk-762VHHJK-full.js.map → ids-chunk-2Q6JXAZA-full.js.map} +0 -0
  587. /package/chunks/{ids-chunk-N2I47FB4-full.js.map → ids-chunk-33WAOHDF-full.js.map} +0 -0
  588. /package/chunks/{ids-chunk-BVDCUDIL-full.js.map → ids-chunk-3DESR2WX-full.js.map} +0 -0
  589. /package/chunks/{ids-chunk-MRSI7V2A-full.js.map → ids-chunk-3KDZ5BB2-full.js.map} +0 -0
  590. /package/chunks/{ids-chunk-T4EBK6MA-full.js.map → ids-chunk-3ODALUF7-full.js.map} +0 -0
  591. /package/chunks/{ids-chunk-FKTPSZFZ-full.js.map → ids-chunk-3YQIAWWH-full.js.map} +0 -0
  592. /package/chunks/{ids-chunk-PLPR5GKJ-full.js.map → ids-chunk-43FZEBRS-full.js.map} +0 -0
  593. /package/chunks/{ids-chunk-7RGILH7X-full.js.map → ids-chunk-43XJCARO-full.js.map} +0 -0
  594. /package/chunks/{ids-chunk-WEFW3UUH-full.js.map → ids-chunk-45IBQAGT-full.js.map} +0 -0
  595. /package/chunks/{ids-chunk-BA4CXSVR-full.js.map → ids-chunk-46JSMYS6-full.js.map} +0 -0
  596. /package/chunks/{ids-chunk-GOUMT663-full.js.map → ids-chunk-4AIWNOFW-full.js.map} +0 -0
  597. /package/chunks/{ids-chunk-CBW2SB64-full.js.map → ids-chunk-4CR43LQ6-full.js.map} +0 -0
  598. /package/chunks/{ids-chunk-NH555S2Q-full.js.map → ids-chunk-4H7FD7HD-full.js.map} +0 -0
  599. /package/chunks/{ids-chunk-2C76IRIB-full.js.map → ids-chunk-4TMKTJBO-full.js.map} +0 -0
  600. /package/chunks/{ids-chunk-YMIG7Z77-full.js.map → ids-chunk-4WM6MCKF-full.js.map} +0 -0
  601. /package/chunks/{ids-chunk-QOLKI5WQ-full.js.map → ids-chunk-4ZQUHJAI-full.js.map} +0 -0
  602. /package/chunks/{ids-chunk-27QUBXND-full.js.map → ids-chunk-5F6DIBXR-full.js.map} +0 -0
  603. /package/chunks/{ids-chunk-MG2QEZQZ-full.js.map → ids-chunk-5G3D7MNU-full.js.map} +0 -0
  604. /package/chunks/{ids-chunk-LBYTB2ER-full.js.map → ids-chunk-5SHP2LBI-full.js.map} +0 -0
  605. /package/chunks/{ids-chunk-FKK6PR5M-full.js.map → ids-chunk-6EE4TSYU-full.js.map} +0 -0
  606. /package/chunks/{ids-chunk-4PJMOTV4-full.js.map → ids-chunk-6F2BOA5W-full.js.map} +0 -0
  607. /package/chunks/{ids-chunk-53KABCRA-full.js.map → ids-chunk-6PUNABRB-full.js.map} +0 -0
  608. /package/chunks/{ids-chunk-4AJJN5JV-full.js.map → ids-chunk-6VLETYCE-full.js.map} +0 -0
  609. /package/chunks/{ids-chunk-Q5TJLGPW-full.js.map → ids-chunk-72OAZJNF-full.js.map} +0 -0
  610. /package/chunks/{ids-chunk-57NGX6S3-full.js.map → ids-chunk-7FBLSXJN-full.js.map} +0 -0
  611. /package/chunks/{ids-chunk-6OQFDDN7-full.js.map → ids-chunk-7I2IIEWD-full.js.map} +0 -0
  612. /package/chunks/{ids-chunk-TISUUBCX-full.js.map → ids-chunk-7IXJYUZT-full.js.map} +0 -0
  613. /package/chunks/{ids-chunk-TRT2DIVS-full.js.map → ids-chunk-7URDZKCS-full.js.map} +0 -0
  614. /package/chunks/{ids-chunk-DCF2P6AI-full.js.map → ids-chunk-AANY6YVE-full.js.map} +0 -0
  615. /package/chunks/{ids-chunk-2WZ3QAXR-full.js.map → ids-chunk-AIJROIVF-full.js.map} +0 -0
  616. /package/chunks/{ids-chunk-ZGD24T5H-full.js.map → ids-chunk-ANW7SKIO-full.js.map} +0 -0
  617. /package/chunks/{ids-chunk-N4ONCRVF-full.js.map → ids-chunk-AT54WC4C-full.js.map} +0 -0
  618. /package/chunks/{ids-chunk-FKUM3V2P-full.js.map → ids-chunk-B3LKCUUG-full.js.map} +0 -0
  619. /package/chunks/{ids-chunk-SKJIMXJU-full.js.map → ids-chunk-BSYWBPYF-full.js.map} +0 -0
  620. /package/chunks/{ids-chunk-CE3ZRA7E-full.js.map → ids-chunk-C26R35PY-full.js.map} +0 -0
  621. /package/chunks/{ids-chunk-UBQPRE4M-full.js.map → ids-chunk-C3LKMRPW-full.js.map} +0 -0
  622. /package/chunks/{ids-chunk-ZYSJZGMO-full.js.map → ids-chunk-C3V7NTXW-full.js.map} +0 -0
  623. /package/chunks/{ids-chunk-ULHGUV77-full.js.map → ids-chunk-C5SKQHKU-full.js.map} +0 -0
  624. /package/chunks/{ids-chunk-ASS3XIAM-full.js.map → ids-chunk-CEOIJ55M-full.js.map} +0 -0
  625. /package/chunks/{ids-chunk-2BHWDRNC-full.js.map → ids-chunk-CVRPO2NQ-full.js.map} +0 -0
  626. /package/chunks/{ids-chunk-FEXVS7OU-full.js.map → ids-chunk-DB5SZYVU-full.js.map} +0 -0
  627. /package/chunks/{ids-chunk-E3MSLUD3-full.js.map → ids-chunk-DIOYPHHO-full.js.map} +0 -0
  628. /package/chunks/{ids-chunk-B4AUSRXA-full.js.map → ids-chunk-DJKOR4UI-full.js.map} +0 -0
  629. /package/chunks/{ids-chunk-7OQW74N3-full.js.map → ids-chunk-DQP6DVJQ-full.js.map} +0 -0
  630. /package/chunks/{ids-chunk-L4WBT3JH-full.js.map → ids-chunk-DQU676TD-full.js.map} +0 -0
  631. /package/chunks/{ids-chunk-CVVQ3AVV-full.js.map → ids-chunk-DSPHYYDU-full.js.map} +0 -0
  632. /package/chunks/{ids-chunk-ZYPPKSJD-full.js.map → ids-chunk-DUPQZY3E-full.js.map} +0 -0
  633. /package/chunks/{ids-chunk-VD57DS2I-full.js.map → ids-chunk-DW7GFEK7-full.js.map} +0 -0
  634. /package/chunks/{ids-chunk-OUKRBJJQ-full.js.map → ids-chunk-E3EYXCNH-full.js.map} +0 -0
  635. /package/chunks/{ids-chunk-CHJ6KJ7Q-full.js.map → ids-chunk-EDVQRRHK-full.js.map} +0 -0
  636. /package/chunks/{ids-chunk-N7X6RV6U-full.js.map → ids-chunk-EHUFTHUE-full.js.map} +0 -0
  637. /package/chunks/{ids-chunk-RS3IXCRP-full.js.map → ids-chunk-EJUX67VI-full.js.map} +0 -0
  638. /package/chunks/{ids-chunk-GRFPSD5U-full.js.map → ids-chunk-EN2OYTTK-full.js.map} +0 -0
  639. /package/chunks/{ids-chunk-LNKZVKYB-full.js.map → ids-chunk-EWUZBMYJ-full.js.map} +0 -0
  640. /package/chunks/{ids-chunk-74IQSDTV-full.js.map → ids-chunk-EY3GP66M-full.js.map} +0 -0
  641. /package/chunks/{ids-chunk-IRVUX37Q-full.js.map → ids-chunk-FERRLPWB-full.js.map} +0 -0
  642. /package/chunks/{ids-chunk-JAAKZXSM-full.js.map → ids-chunk-FFJ4B7T2-full.js.map} +0 -0
  643. /package/chunks/{ids-chunk-EGAGXAMH-full.js.map → ids-chunk-FFNMMG2J-full.js.map} +0 -0
  644. /package/chunks/{ids-chunk-F7DISVS3-full.js.map → ids-chunk-FMNCRYYA-full.js.map} +0 -0
  645. /package/chunks/{ids-chunk-AESZBMJC-full.js.map → ids-chunk-FOKR7HAI-full.js.map} +0 -0
  646. /package/chunks/{ids-chunk-Z57D6YIW-full.js.map → ids-chunk-FW4DOBQU-full.js.map} +0 -0
  647. /package/chunks/{ids-chunk-5O5M3P3V-full.js.map → ids-chunk-G57OOG3H-full.js.map} +0 -0
  648. /package/chunks/{ids-chunk-JHTBYNRI-full.js.map → ids-chunk-G6RUQIR7-full.js.map} +0 -0
  649. /package/chunks/{ids-chunk-32CIJZMM-full.js.map → ids-chunk-GBFKIATO-full.js.map} +0 -0
  650. /package/chunks/{ids-chunk-QCVXS5IA-full.js.map → ids-chunk-GIBGRDF6-full.js.map} +0 -0
  651. /package/chunks/{ids-chunk-A46Y26T3-full.js.map → ids-chunk-GTGLEDC2-full.js.map} +0 -0
  652. /package/chunks/{ids-chunk-KBL3UP5C-full.js.map → ids-chunk-GVVP7LQ3-full.js.map} +0 -0
  653. /package/chunks/{ids-chunk-EZD76AYH-full.js.map → ids-chunk-HAZNBMNY-full.js.map} +0 -0
  654. /package/chunks/{ids-chunk-LH4RYRSV-full.js.map → ids-chunk-HEIH73MS-full.js.map} +0 -0
  655. /package/chunks/{ids-chunk-XWRFO6SR-full.js.map → ids-chunk-HHC6K5OW-full.js.map} +0 -0
  656. /package/chunks/{ids-chunk-6U6EGRD2-full.js.map → ids-chunk-HKVSCK5P-full.js.map} +0 -0
  657. /package/chunks/{ids-chunk-UALPAFOA-full.js.map → ids-chunk-HM2QRPLG-full.js.map} +0 -0
  658. /package/chunks/{ids-chunk-QNWQB575-full.js.map → ids-chunk-HN3TES6H-full.js.map} +0 -0
  659. /package/chunks/{ids-chunk-SEJB4BB5-full.js.map → ids-chunk-HW2PKJ3C-full.js.map} +0 -0
  660. /package/chunks/{ids-chunk-Y6FPKWOS-full.js.map → ids-chunk-HYRXNPHU-full.js.map} +0 -0
  661. /package/chunks/{ids-chunk-RUGV5KEH-full.js.map → ids-chunk-IQULHGMJ-full.js.map} +0 -0
  662. /package/chunks/{ids-chunk-FEM5UYC2-full.js.map → ids-chunk-IS4JU2PL-full.js.map} +0 -0
  663. /package/chunks/{ids-chunk-4CE67XBY-full.js.map → ids-chunk-IZAPGCMG-full.js.map} +0 -0
  664. /package/chunks/{ids-chunk-ZHLPJWPG-full.js.map → ids-chunk-J4TEQA7D-full.js.map} +0 -0
  665. /package/chunks/{ids-chunk-YBC2KLV3-full.js.map → ids-chunk-JFJBVCWC-full.js.map} +0 -0
  666. /package/chunks/{ids-chunk-3BAOFQA5-full.js.map → ids-chunk-JIMIQBLD-full.js.map} +0 -0
  667. /package/chunks/{ids-chunk-DRORXLFL-full.js.map → ids-chunk-JRDABGQT-full.js.map} +0 -0
  668. /package/chunks/{ids-chunk-MY4CROHL-full.js.map → ids-chunk-KLVCC44N-full.js.map} +0 -0
  669. /package/chunks/{ids-chunk-DR2HOPGB-full.js.map → ids-chunk-KNJSIOMM-full.js.map} +0 -0
  670. /package/chunks/{ids-chunk-OONTE23M-full.js.map → ids-chunk-KTJELTJ7-full.js.map} +0 -0
  671. /package/chunks/{ids-chunk-JZHX2Z4K-full.js.map → ids-chunk-KWNWPOZR-full.js.map} +0 -0
  672. /package/chunks/{ids-chunk-AD4WG4JR-full.js.map → ids-chunk-L4TK2KKO-full.js.map} +0 -0
  673. /package/chunks/{ids-chunk-YAVXM4L4-full.js.map → ids-chunk-LGTL7FTZ-full.js.map} +0 -0
  674. /package/chunks/{ids-chunk-OCWPX7KF-full.js.map → ids-chunk-LGWDPTQS-full.js.map} +0 -0
  675. /package/chunks/{ids-chunk-UJYGBMKN-full.js.map → ids-chunk-LKDR3JLR-full.js.map} +0 -0
  676. /package/chunks/{ids-chunk-6FUANLGN-full.js.map → ids-chunk-LMUN7P76-full.js.map} +0 -0
  677. /package/chunks/{ids-chunk-KAFBSRSW-full.js.map → ids-chunk-LUII2ZV5-full.js.map} +0 -0
  678. /package/chunks/{ids-chunk-VK4SCEAG-full.js.map → ids-chunk-LWPAGEOG-full.js.map} +0 -0
  679. /package/chunks/{ids-chunk-Z6VCVVKE-full.js.map → ids-chunk-LZU34NYE-full.js.map} +0 -0
  680. /package/chunks/{ids-chunk-JDQ3YLZX-full.js.map → ids-chunk-M4KFUMJI-full.js.map} +0 -0
  681. /package/chunks/{ids-chunk-CLQ4GQXN-full.js.map → ids-chunk-MDW67Z3D-full.js.map} +0 -0
  682. /package/chunks/{ids-chunk-ZFFGGSGL-full.js.map → ids-chunk-MF5KPEBP-full.js.map} +0 -0
  683. /package/chunks/{ids-chunk-MK3PJUPX-full.js.map → ids-chunk-MH2FGZWA-full.js.map} +0 -0
  684. /package/chunks/{ids-chunk-PE5E5PG7-full.js.map → ids-chunk-MJFOIQDW-full.js.map} +0 -0
  685. /package/chunks/{ids-chunk-GHKBGDSI-full.js.map → ids-chunk-MUFSPELP-full.js.map} +0 -0
  686. /package/chunks/{ids-chunk-AZMGB3K6-full.js.map → ids-chunk-MUHJAJLL-full.js.map} +0 -0
  687. /package/chunks/{ids-chunk-FZGISXIH-full.js.map → ids-chunk-MW57OW32-full.js.map} +0 -0
  688. /package/chunks/{ids-chunk-6QTKQSJF-full.js.map → ids-chunk-N5DD7SQY-full.js.map} +0 -0
  689. /package/chunks/{ids-chunk-AFQ35IPE-full.js.map → ids-chunk-N5FVOLA3-full.js.map} +0 -0
  690. /package/chunks/{ids-chunk-6ROHNCND-full.js.map → ids-chunk-NCZQCFZV-full.js.map} +0 -0
  691. /package/chunks/{ids-chunk-5HHTYMIG-full.js.map → ids-chunk-NWK2E7UY-full.js.map} +0 -0
  692. /package/chunks/{ids-chunk-M5ZDYQZO-full.js.map → ids-chunk-NWYKW7KX-full.js.map} +0 -0
  693. /package/chunks/{ids-chunk-LKEW46TQ-full.js.map → ids-chunk-O6DE7LH4-full.js.map} +0 -0
  694. /package/chunks/{ids-chunk-I4YABQIG-full.js.map → ids-chunk-OC3TQJHF-full.js.map} +0 -0
  695. /package/chunks/{ids-chunk-IQL2BQKM-full.js.map → ids-chunk-OFMCZ2NH-full.js.map} +0 -0
  696. /package/chunks/{ids-chunk-E5HCZ2KG-full.js.map → ids-chunk-PCFVPLIA-full.js.map} +0 -0
  697. /package/chunks/{ids-chunk-ZIB23J5V-full.js.map → ids-chunk-PEMXZF3X-full.js.map} +0 -0
  698. /package/chunks/{ids-chunk-XXMP4ISV-full.js.map → ids-chunk-PLIXQIXO-full.js.map} +0 -0
  699. /package/chunks/{ids-chunk-ABRKWU7O-full.js.map → ids-chunk-PMQWWRKS-full.js.map} +0 -0
  700. /package/chunks/{ids-chunk-2QRKR2QB-full.js.map → ids-chunk-PVE4VGOJ-full.js.map} +0 -0
  701. /package/chunks/{ids-chunk-H3YJOVK5-full.js.map → ids-chunk-Q5A2D5XH-full.js.map} +0 -0
  702. /package/chunks/{ids-chunk-M75TGITM-full.js.map → ids-chunk-QFSVWAR3-full.js.map} +0 -0
  703. /package/chunks/{ids-chunk-5ZXPNSAT-full.js.map → ids-chunk-QY5BYBZC-full.js.map} +0 -0
  704. /package/chunks/{ids-chunk-G4ZHZ42Z-full.js.map → ids-chunk-QZILOIB3-full.js.map} +0 -0
  705. /package/chunks/{ids-chunk-F3M3OIVM-full.js.map → ids-chunk-R4BNH5OB-full.js.map} +0 -0
  706. /package/chunks/{ids-chunk-D5GE7LEE-full.js.map → ids-chunk-R5XYM5JI-full.js.map} +0 -0
  707. /package/chunks/{ids-chunk-MBRDC2SV-full.js.map → ids-chunk-R73SYGDF-full.js.map} +0 -0
  708. /package/chunks/{ids-chunk-OJSVIXP4-full.js.map → ids-chunk-REIBWCM6-full.js.map} +0 -0
  709. /package/chunks/{ids-chunk-FZRZVA5C-full.js.map → ids-chunk-RK7Y7HRD-full.js.map} +0 -0
  710. /package/chunks/{ids-chunk-EWSQRQZO-full.js.map → ids-chunk-RRT4LM45-full.js.map} +0 -0
  711. /package/chunks/{ids-chunk-CBNQQDDM-full.js.map → ids-chunk-RVHXRE42-full.js.map} +0 -0
  712. /package/chunks/{ids-chunk-5OM3KWJK-full.js.map → ids-chunk-RWBBMAR3-full.js.map} +0 -0
  713. /package/chunks/{ids-chunk-QQ72JD62-full.js.map → ids-chunk-RZBNUTFK-full.js.map} +0 -0
  714. /package/chunks/{ids-chunk-OJFOEXUW-full.js.map → ids-chunk-S4URXSWZ-full.js.map} +0 -0
  715. /package/chunks/{ids-chunk-6M6HEYAD-full.js.map → ids-chunk-SKC57F2T-full.js.map} +0 -0
  716. /package/chunks/{ids-chunk-E3OFMO6S-full.js.map → ids-chunk-SN6LW7KC-full.js.map} +0 -0
  717. /package/chunks/{ids-chunk-JXMYDC4T-full.js.map → ids-chunk-SSVFWV2T-full.js.map} +0 -0
  718. /package/chunks/{ids-chunk-VVSSYJHM-full.js.map → ids-chunk-T7I2DBGE-full.js.map} +0 -0
  719. /package/chunks/{ids-chunk-GVDVGE7C-full.js.map → ids-chunk-T7JECBI5-full.js.map} +0 -0
  720. /package/chunks/{ids-chunk-ERPRR4T4-full.js.map → ids-chunk-TM4HNEL4-full.js.map} +0 -0
  721. /package/chunks/{ids-chunk-FZKUR2JI-full.js.map → ids-chunk-TMCYBFJ5-full.js.map} +0 -0
  722. /package/chunks/{ids-chunk-MPGWC6ST-full.js.map → ids-chunk-TYX2OEND-full.js.map} +0 -0
  723. /package/chunks/{ids-chunk-6UXPYDGW-full.js.map → ids-chunk-UDNQYHA5-full.js.map} +0 -0
  724. /package/chunks/{ids-chunk-6S4QSV5N-full.js.map → ids-chunk-UFMEG2Z7-full.js.map} +0 -0
  725. /package/chunks/{ids-chunk-SNXRRD5T-full.js.map → ids-chunk-USLG2PTM-full.js.map} +0 -0
  726. /package/chunks/{ids-chunk-FJ2JUSFH-full.js.map → ids-chunk-V2IQA7L3-full.js.map} +0 -0
  727. /package/chunks/{ids-chunk-QHINKXYB-full.js.map → ids-chunk-VATX5XAY-full.js.map} +0 -0
  728. /package/chunks/{ids-chunk-7JRTJDFA-full.js.map → ids-chunk-VPNJ4GG2-full.js.map} +0 -0
  729. /package/chunks/{ids-chunk-PHUC5SK7-full.js.map → ids-chunk-VULIZCJD-full.js.map} +0 -0
  730. /package/chunks/{ids-chunk-KEQHJ5G3-full.js.map → ids-chunk-W5OKLYTI-full.js.map} +0 -0
  731. /package/chunks/{ids-chunk-6JBLWV3W-full.js.map → ids-chunk-WKEWZVYT-full.js.map} +0 -0
  732. /package/chunks/{ids-chunk-HS5ONR6J-full.js.map → ids-chunk-WNBRICEB-full.js.map} +0 -0
  733. /package/chunks/{ids-chunk-QPTZRSVW-full.js.map → ids-chunk-WNG7OERZ-full.js.map} +0 -0
  734. /package/chunks/{ids-chunk-3CLJE3UT-full.js.map → ids-chunk-WNNGZOIF-full.js.map} +0 -0
  735. /package/chunks/{ids-chunk-4ARZ2AAM-full.js.map → ids-chunk-X6QSQFGR-full.js.map} +0 -0
  736. /package/chunks/{ids-chunk-D6U4XWPR-full.js.map → ids-chunk-XLD6LQQW-full.js.map} +0 -0
  737. /package/chunks/{ids-chunk-Z3M64LU2-full.js.map → ids-chunk-XMNEN2UX-full.js.map} +0 -0
  738. /package/chunks/{ids-chunk-ABTOY23D-full.js.map → ids-chunk-YF3PJT6E-full.js.map} +0 -0
  739. /package/chunks/{ids-chunk-TIM3LTRG-full.js.map → ids-chunk-YL4L6HJK-full.js.map} +0 -0
  740. /package/chunks/{ids-chunk-D5WII5AE-full.js.map → ids-chunk-YR3BXJZD-full.js.map} +0 -0
  741. /package/chunks/{ids-chunk-AHFLTQXW-full.js.map → ids-chunk-ZB5VJXMR-full.js.map} +0 -0
  742. /package/chunks/{ids-chunk-G7ZSOBX3-full.js.map → ids-chunk-ZD6QL4TP-full.js.map} +0 -0
  743. /package/chunks/{ids-chunk-SVCSD76X-full.js.map → ids-chunk-ZFEFQ7ON-full.js.map} +0 -0
  744. /package/chunks/{ids-chunk-SRHJCZSW-full.js.map → ids-chunk-ZL274STH-full.js.map} +0 -0
  745. /package/chunks/{ids-chunk-NQWBNWF3-full.js.map → ids-chunk-ZSW7GSJP-full.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ids-month-view/ids-month-view.scss", "../../../../src/components/ids-month-view/ids-month-view.ts"],
4
- "sourcesContent": ["export default `.ids-month-view {\n display: flex;\n background-color: var(--ids-calendar-month-view-color-background-default);\n width: 100%;\n box-sizing: border-box;\n flex-direction: column;\n overflow: auto;\n max-width: inherit;\n}\n.ids-month-view .month-view-container {\n background-color: var(--ids-calendar-month-view-color-background-default);\n flex-shrink: 0;\n}\n.ids-month-view .month-view-table-header th {\n background-clip: padding-box;\n height: 30px;\n line-height: 30px;\n text-align: center;\n width: 14.3%;\n}\n.ids-month-view .month-view-table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n}\n.ids-month-view .trigger-icon {\n color: var(--ids-color-blue-60);\n}\n.ids-month-view .month-view-legend {\n margin: 0 auto;\n padding: 10px 5px 0;\n}\n.ids-month-view .month-view-legend-swatch,\n.ids-month-view .month-view-legend-item,\n.ids-month-view .month-view-legend-text {\n display: inline-block;\n}\n.ids-month-view .month-view-legend-item {\n margin-bottom: 2px;\n}\n.ids-month-view .month-view-legend-swatch {\n background-color: var(--legend-color);\n opacity: 0.3;\n width: 16px;\n height: 16px;\n}\n.ids-month-view .month-view-legend-item.event-type .month-view-legend-swatch {\n border-radius: 10px;\n opacity: 1;\n width: 14px;\n height: 14px;\n}\n.ids-month-view .month-view-legend-text {\n position: relative;\n color: var(--ids-calendar-month-view-legend-color-text);\n padding: 0 10px 0 8px;\n top: -2px;\n}\n.ids-month-view .events-container {\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n}\n.ids-month-view .events-container .events-overflow {\n position: absolute;\n bottom: 0;\n cursor: pointer;\n text-indent: 12px;\n}\n.ids-month-view .events-container ids-text::part(text) {\n text-transform: capitalize;\n}\n\n.ids-month-view.is-compact {\n position: relative;\n}\n.ids-month-view.is-compact .month-view-table-header th {\n line-height: unset;\n vertical-align: top;\n height: 22px;\n}\n.ids-month-view.is-compact .month-view-table {\n margin-top: 13px;\n}\n.ids-month-view.is-compact .weekday-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact);\n}\n.ids-month-view.is-compact td {\n width: 44px;\n height: 44px;\n text-align: center;\n}\n.ids-month-view.is-compact td:not(.is-disabled):hover {\n cursor: pointer;\n}\n.ids-month-view.is-compact td .day-container {\n display: inline-block;\n position: relative;\n border-radius: 50%;\n border: 1px solid transparent;\n margin: 5px 0;\n}\n.ids-month-view.is-compact td .day-text {\n display: inline-block;\n position: relative;\n z-index: 2;\n border-radius: 50%;\n margin: 2px;\n color: var(--ids-calendar-month-view-color-text-default);\n white-space: nowrap;\n transition: 0.2s background-color ease;\n}\n.ids-month-view.is-compact td.alternate .day-text {\n color: var(--ids-calendar-month-view-color-text-compact);\n}\n.ids-month-view.is-compact td.is-disabled .day-text {\n background-color: var(--ids-color-neutral-10);\n color: var(--ids-color-neutral-30);\n}\n.ids-month-view.is-compact td.is-disabled.has-legend .day-container::after {\n opacity: 0.4;\n}\n.ids-month-view.is-compact td.is-disabled.has-legend .day-text {\n background-color: transparent;\n}\n.ids-month-view.is-compact td ids-text::part(text) {\n border-radius: 50%;\n box-sizing: border-box;\n width: 35px;\n height: 35px;\n line-height: 35px;\n text-align: center;\n display: inline-block;\n}\n.ids-month-view.is-compact td:hover .day-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact-hover);\n}\n.ids-month-view.is-compact td.ids-disabled:hover .day-text {\n color: var(--ids-color-gray-30);\n}\n.ids-month-view.is-compact td.is-selected .day-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact-selected-hover);\n background-color: var(--ids-calendar-month-view-day-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.is-selected:focus {\n outline: none;\n outline-style: none;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus ids-text::part(text) {\n width: 31px;\n height: 31px;\n line-height: 31px;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus ids-text {\n margin: 2px;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus .day-container {\n border-color: var(--ids-calendar-month-view-day-color-background-compact-selected);\n z-index: 2;\n box-shadow: 0 0 2px 0 var(--ids-calendar-month-view-day-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.is-today:not(.is-selected) .day-text::part(text) {\n border: 1px solid var(--ids-calendar-month-view-today-color-border-compact);\n}\n.ids-month-view.is-compact td:not(.is-disabled):not(.is-selected):not(.has-legend):not(.range-selection):hover .day-text, .ids-month-view.is-compact td:not(.is-disabled):not(.is-selected):not(.has-legend):not(.range-selection):active .day-text {\n background-color: var(--ids-calendar-month-view-day-color-background-compact-hover);\n}\n.ids-month-view.is-compact td.has-legend:not(.is-disabled):hover .day-container::after {\n opacity: 0.7;\n}\n.ids-month-view.is-compact td.has-legend .day-container::after {\n border-radius: 50%;\n position: absolute;\n content: \"\";\n background-color: var(--legend-color);\n display: inline-block;\n width: 35px;\n height: 35px;\n overflow: hidden;\n opacity: 0.3;\n transition: 0.2s opacity ease;\n inset: 0;\n margin: auto;\n}\n.ids-month-view.is-compact td.range-selection + .range-selection, .ids-month-view.is-compact td.range-next:not(:first-of-type), .ids-month-view.is-compact td.range-prev:not(:last-of-type) {\n position: relative;\n}\n.ids-month-view.is-compact td.range-selection + .range-selection::before, .ids-month-view.is-compact td.range-next:not(:first-of-type)::before, .ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n position: absolute;\n width: 100%;\n z-index: 1;\n content: \"\";\n display: inline-block;\n height: 35px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n}\n.ids-month-view.is-compact td.is-disabled.range-selection.not-included + .range-selection::before, .ids-month-view.is-compact td.is-disabled.range-prev.not-included::before {\n content: none;\n}\n.ids-month-view.is-compact td:not(.is-disabled.not-included).range-prev .day-text, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-next .day-text, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-next:not(:first-of-type)::before, .ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n background-color: var(--ids-calendar-month-view-range-color-background-compact);\n}\n.ids-month-view.is-compact td.range-selection:not(:first-of-type)::before, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-selection .day-text {\n background-color: var(--ids-calendar-month-view-range-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.range-selection:not(.alternate):not(.is-disabled.not-included) .day-text {\n color: var(--ids-calendar-month-view-range-color-text-compact-selected);\n}\n.ids-month-view.is-compact td.range-selection:not(:first-of-type)::before, .ids-month-view.is-compact td.range-next:not(:first-of-type)::before {\n inset-inline-end: 50%;\n}\n.ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n inset-inline-end: -50%;\n}\n.ids-month-view.is-compact td.range-selection .day-text, .ids-month-view.is-compact td.range-prev .day-text, .ids-month-view.is-compact td.range-next .day-text {\n border-radius: 50%;\n z-index: 2;\n transition: none;\n}\n.ids-month-view.is-compact th,\n.ids-month-view.is-compact td {\n padding: 0;\n}\n.ids-month-view.is-compact.range-select-week td .day-text {\n transition: none;\n}\n.ids-month-view.is-compact .btn-today {\n margin-right: -7px;\n}\n.ids-month-view.is-compact .btn-today::part(button) {\n padding-inline: 4px;\n padding-block: 2px;\n margin: 3px;\n}\n.ids-month-view.is-compact .btn-previous,\n.ids-month-view.is-compact .btn-next {\n padding-inline-start: 0;\n margin: 3px;\n}\n.ids-month-view.is-compact .btn-previous::part(button),\n.ids-month-view.is-compact .btn-next::part(button) {\n padding: 0;\n width: 38px;\n height: 38px;\n}\n.ids-month-view.is-compact .month-view-legend {\n padding-top: 27px;\n max-width: 300px;\n}\n.ids-month-view.is-compact .week-num-cell {\n border-inline-end: 1px solid var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-compact .week-num-cell ids-text {\n color: var(--ids-month-view-week-number-text-color);\n cursor: default;\n}\n\n.ids-month-view.is-fullsize {\n border-style: solid;\n border-width: 1px 1px 0;\n border-color: var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-fullsize .weekday-text {\n color: var(--ids-calendar-month-view-weekday-color-text);\n}\n.ids-month-view.is-fullsize.is-disabled.has-legend {\n opacity: 0.4;\n background-color: transparent;\n}\n.ids-month-view.is-fullsize .day-text {\n color: var(--ids-calendar-month-view-color-text-default);\n}\n.ids-month-view.is-fullsize td {\n border-style: solid;\n border-width: 0 1px 1px;\n position: relative;\n transition: 0.1s background-color ease-out;\n height: 99px;\n width: 14.3%;\n overflow: hidden;\n user-select: none;\n}\n.ids-month-view.is-fullsize td:last-child {\n border-right: 0;\n}\n.ids-month-view.is-fullsize td:first-child {\n border-left: 0;\n}\n.ids-month-view.is-fullsize td:not(.is-selected):not(.has-legend):not(.is-disabled):hover, .ids-month-view.is-fullsize td:not(.is-selected):not(.has-legend):not(.is-disabled):active {\n background-color: var(--ids-calendar-month-view-color-background-hover);\n}\n.ids-month-view.is-fullsize td.is-disabled {\n opacity: 0.5;\n background-color: var(--ids-calendar-month-view-color-background-disabled);\n}\n.ids-month-view.is-fullsize td.is-disabled.has-legend::after {\n opacity: 0.4;\n}\n.ids-month-view.is-fullsize td.is-selected:not(.has-legend) {\n background-color: var(--ids-calendar-month-view-color-background-selected);\n}\n.ids-month-view.is-fullsize td.is-selected {\n box-shadow: inset 0 5px 0 0 var(--ids-calendar-month-view-color-selected);\n}\n.ids-month-view.is-fullsize td.is-selected:focus {\n outline: none;\n}\n.ids-month-view.is-fullsize td.has-legend::after {\n position: absolute;\n width: 100%;\n background-color: var(--legend-color);\n content: \"\";\n inset: 0;\n opacity: 0.3;\n}\n.ids-month-view.is-fullsize td.has-legend.is-selected::after {\n top: 5px;\n}\n.ids-month-view.is-fullsize td.has-legend:hover::after {\n opacity: 0.7;\n}\n.ids-month-view.is-fullsize td.alternate .day-text {\n color: var(--ids-calendar-month-view-color-text-alternate);\n}\n.ids-month-view.is-fullsize td .day-text {\n position: absolute;\n cursor: pointer;\n z-index: 1;\n left: calc(100% - 25px);\n top: var(--ids-month-view-day-text-top, 13px);\n width: 10px;\n text-align: center;\n}\n.ids-month-view.is-fullsize td.month-label .day-text {\n left: auto;\n width: 100%;\n text-align: right;\n}\n.ids-month-view.is-fullsize td.month-label ids-text::part(text) {\n font-weight: 600;\n padding-right: 10px;\n}\n.ids-month-view.is-fullsize th,\n.ids-month-view.is-fullsize td {\n padding: 0;\n border-bottom: 1px solid;\n border-color: var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-fullsize.has-legend .month-view-container {\n border-bottom: 1px solid var(--ids-calendar-month-view-color-border);\n}\n\n.ids-month-view.is-date-picker {\n overflow: visible;\n}\n.ids-month-view.is-date-picker .month-view-container {\n padding-left: 10px;\n padding-right: 10px;\n}\n.ids-month-view.is-date-picker td .day-container {\n margin: 0;\n}\n.ids-month-view.is-date-picker ids-date-picker {\n margin-left: 12px;\n}\n\n.ids-month-view.is-date-picker .month-view-legend,\n.ids-month-view.is-fullsize .month-view-legend {\n text-align: center;\n}\n\n.month-view-legend-item.event-type .month-view-legend-swatch {\n border-radius: 10px;\n opacity: 1;\n}\n\nids-toolbar ids-menu-button[menu=view-picker] {\n margin-inline-end: 8px;\n}\n\n:host([dir=rtl]) .ids-month-view.is-fullsize td .day-text {\n left: unset;\n right: calc(100% - 25px);\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td.month-label .day-text {\n right: auto;\n text-align: left;\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td.month-label ids-text::part(text) {\n padding-right: unset;\n padding-left: 10px;\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td:last-child {\n border-left: 0;\n}\n:host([dir=rtl]) .ids-month-view.is-date-picker ids-date-picker {\n margin-left: 0;\n margin-right: 12px;\n}\n:host([dir=rtl]) .ids-month-view.is-date-picker .btn-today {\n margin-right: 0;\n margin-left: -7px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2J1aWxkcy9pbmZvci1kZXNpZ24vZW50ZXJwcmlzZS13Yy9zcmMvY29tcG9uZW50cy9pZHMtbW9udGgtdmlldyIsInNvdXJjZXMiOlsiaWRzLW1vbnRoLXZpZXcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFJRjtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBR0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUFNTjtFQUNFOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFO0VBQ0E7O0FBSUE7RUFDRTs7QUFHRjtFQUNFOztBQUtOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDRTs7QUFLRjtFQUNFOztBQUtGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBSUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFLTjtFQUNFOztBQUdGO0VBRUU7O0FBS0E7RUFDRTs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUdFOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUY7RUFDRTs7QUFJSjtFQUlFOztBQUdGO0VBRUU7O0FBR0Y7RUFDRTs7QUFHRjtFQUVFOztBQUdGO0VBQ0U7O0FBR0Y7RUFHRTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0VBRUU7RUFDQTs7QUFFQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUlKO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7O0FBTU47RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBVUE7RUFDQTtFQUNBO0VBQ0E7O0FBWEE7RUFDRTs7QUFHRjtFQUNFOztBQVFGO0VBRUU7O0FBR0Y7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBSUo7RUFDRTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBSUo7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7QUFJRjtFQUNFOzs7QUFLSjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7OztBQU9GO0FBQUE7RUFDRTs7O0FBS0o7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFPSTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUtGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIuaWRzLW1vbnRoLXZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLWRlZmF1bHQpO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC13aWR0aDogaW5oZXJpdDtcblxuICAubW9udGgtdmlldy1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cblxuICAubW9udGgtdmlldy10YWJsZS1oZWFkZXIge1xuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxNC4zJTtcbiAgICB9XG4gIH1cblxuICAubW9udGgtdmlldy10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC50cmlnZ2VyLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY29sb3ItYmx1ZS02MCk7XG4gIH1cblxuICAvLyBMZWdlbmQgbXV0dWFsXG4gIC5tb250aC12aWV3LWxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCA1cHggMDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gsXG4gIC5tb250aC12aWV3LWxlZ2VuZC1pdGVtLFxuICAubW9udGgtdmlldy1sZWdlbmQtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLm1vbnRoLXZpZXctbGVnZW5kLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxlZ2VuZC1jb2xvcik7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1pdGVtLmV2ZW50LXR5cGUgLm1vbnRoLXZpZXctbGVnZW5kLXN3YXRjaCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC10ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWxlZ2VuZC1jb2xvci10ZXh0KTtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCA4cHg7XG4gICAgdG9wOiAtMnB4O1xuICB9XG5cbiAgLmV2ZW50cy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuXG4gICAgLmV2ZW50cy1vdmVyZmxvdyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWluZGVudDogMTJweDtcbiAgICB9XG5cbiAgICBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29tcGFjdCB2aWV3XG4uaWRzLW1vbnRoLXZpZXcuaXMtY29tcGFjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAubW9udGgtdmlldy10YWJsZS1oZWFkZXIgdGgge1xuICAgIGxpbmUtaGVpZ2h0OiB1bnNldDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGhlaWdodDogMjJweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LXRhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAxM3B4O1xuICB9XG5cbiAgLndlZWtkYXktdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0KTtcbiAgfVxuXG4gIHRkIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjpub3QoLmlzLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLmRheS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW46IDVweCAwO1xuICAgIH1cblxuICAgIC5kYXktdGV4dCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiAycHg7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItdGV4dC1kZWZhdWx0KTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGJhY2tncm91bmQtY29sb3IgZWFzZTtcbiAgICB9XG5cbiAgICAmLmFsdGVybmF0ZSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLXRleHQtY29tcGFjdCk7XG4gICAgfVxuXG4gICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAuZGF5LXRleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItbmV1dHJhbC0xMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pZHMtY29sb3ItbmV1dHJhbC0zMCk7XG4gICAgICB9XG5cbiAgICAgICYuaGFzLWxlZ2VuZCB7XG4gICAgICAgIC5kYXktY29udGFpbmVyOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlkcy10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0LWhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlkcy1kaXNhYmxlZDpob3ZlciB7XG4gICAgICAuZGF5LXRleHQge1xuICAgICAgICBjb2xvcjogdmFyKC0taWRzLWNvbG9yLWdyYXktMzApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0LXNlbGVjdGVkLWhvdmVyKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctZGF5LWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCgucmFuZ2Utc2VsZWN0aW9uKTpmb2N1cyB7XG4gICAgICAgIGlkcy10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgICAgICB3aWR0aDogMzFweDtcbiAgICAgICAgICBoZWlnaHQ6IDMxcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMxcHg7XG4gICAgICAgIH1cblxuICAgICAgICBpZHMtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGF5LWNvbnRhaW5lciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1kYXktY29sb3ItYmFja2dyb3VuZC1jb21wYWN0LXNlbGVjdGVkKTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggMCB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1kYXktY29sb3ItYmFja2dyb3VuZC1jb21wYWN0LXNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtdG9kYXk6bm90KC5pcy1zZWxlY3RlZCkgLmRheS10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXRvZGF5LWNvbG9yLWJvcmRlci1jb21wYWN0KTtcbiAgICB9XG5cbiAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5yYW5nZS1zZWxlY3Rpb24pOmhvdmVyIC5kYXktdGV4dCxcbiAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5yYW5nZS1zZWxlY3Rpb24pOmFjdGl2ZSAuZGF5LXRleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctZGF5LWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1ob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gTGVnZW5kIGluIGNvbXBhY3QgbW9kZVxuICAgICYuaGFzLWxlZ2VuZDpub3QoLmlzLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAuZGF5LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oYXMtbGVnZW5kIC5kYXktY29udGFpbmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sZWdlbmQtY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBvcGFjaXR5IGVhc2U7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmFuZ2Ugc2VsZWN0aW9uXG4gICAgJi5yYW5nZS1zZWxlY3Rpb24gKyAucmFuZ2Utc2VsZWN0aW9uLFxuICAgICYucmFuZ2UtbmV4dDpub3QoOmZpcnN0LW9mLXR5cGUpLFxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZGlzYWJsZWQucmFuZ2Utc2VsZWN0aW9uLm5vdC1pbmNsdWRlZCArIC5yYW5nZS1zZWxlY3Rpb24sXG4gICAgJi5pcy1kaXNhYmxlZC5yYW5nZS1wcmV2Lm5vdC1pbmNsdWRlZCB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLXByZXYgLmRheS10ZXh0LFxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLW5leHQgLmRheS10ZXh0LFxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLW5leHQ6bm90KDpmaXJzdC1vZi10eXBlKTo6YmVmb3JlLFxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1yYW5nZS1jb2xvci1iYWNrZ3JvdW5kLWNvbXBhY3QpO1xuICAgIH1cblxuICAgICYucmFuZ2Utc2VsZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6OmJlZm9yZSxcbiAgICAmOm5vdCguaXMtZGlzYWJsZWQubm90LWluY2x1ZGVkKS5yYW5nZS1zZWxlY3Rpb24gLmRheS10ZXh0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXJhbmdlLWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgJi5yYW5nZS1zZWxlY3Rpb246bm90KC5hbHRlcm5hdGUpOm5vdCguaXMtZGlzYWJsZWQubm90LWluY2x1ZGVkKSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXJhbmdlLWNvbG9yLXRleHQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgJi5yYW5nZS1zZWxlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKTo6YmVmb3JlLFxuICAgICYucmFuZ2UtbmV4dDpub3QoOmZpcnN0LW9mLXR5cGUpOjpiZWZvcmUge1xuICAgICAgaW5zZXQtaW5saW5lLWVuZDogNTAlO1xuICAgIH1cblxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gICAgICBpbnNldC1pbmxpbmUtZW5kOiAtNTAlO1xuICAgIH1cblxuICAgICYucmFuZ2Utc2VsZWN0aW9uIC5kYXktdGV4dCxcbiAgICAmLnJhbmdlLXByZXYgLmRheS10ZXh0LFxuICAgICYucmFuZ2UtbmV4dCAuZGF5LXRleHQge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi5yYW5nZS1zZWxlY3Qtd2VlayB0ZCAuZGF5LXRleHQge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAuYnRuLXRvZGF5IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC03cHg7XG5cbiAgICAmOjpwYXJ0KGJ1dHRvbikge1xuICAgICAgcGFkZGluZy1pbmxpbmU6IDRweDtcbiAgICAgIHBhZGRpbmctYmxvY2s6IDJweDtcbiAgICAgIG1hcmdpbjogM3B4O1xuICAgIH1cbiAgfVxuXG4gIC5idG4tcHJldmlvdXMsXG4gIC5idG4tbmV4dCB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgbWFyZ2luOiAzcHg7XG5cbiAgICAmOjpwYXJ0KGJ1dHRvbikge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHdpZHRoOiAzOHB4O1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZCB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxuXG4gIC53ZWVrLW51bS1jZWxsIHtcbiAgICBib3JkZXItaW5saW5lLWVuZDogMXB4IHNvbGlkIHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJvcmRlcik7XG5cbiAgICBpZHMtdGV4dCB7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLW1vbnRoLXZpZXctd2Vlay1udW1iZXItdGV4dC1jb2xvcik7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEZ1bGwgc2l6ZSB2aWV3XG4uaWRzLW1vbnRoLXZpZXcuaXMtZnVsbHNpemUge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweCAxcHggMDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1ib3JkZXIpO1xuXG4gIC53ZWVrZGF5LXRleHQge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy13ZWVrZGF5LWNvbG9yLXRleHQpO1xuICB9XG5cbiAgJi5pcy1kaXNhYmxlZC5oYXMtbGVnZW5kIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuZGF5LXRleHQge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci10ZXh0LWRlZmF1bHQpO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IDAuMXMgYmFja2dyb3VuZC1jb2xvciBlYXNlLW91dDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG5cbiAgICBoZWlnaHQ6IDk5cHg7XG4gICAgd2lkdGg6IDE0LjMlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAmOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJjpub3QoLmlzLXNlbGVjdGVkKTpub3QoLmhhcy1sZWdlbmQpOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQpO1xuXG4gICAgICAmLmhhcy1sZWdlbmQ6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQ6bm90KC5oYXMtbGVnZW5kKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLXNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgNXB4IDAgMCB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1zZWxlY3RlZCk7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaGFzLWxlZ2VuZCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxlZ2VuZC1jb2xvcik7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgfVxuXG4gICAgICAmLmlzLXNlbGVjdGVkOjphZnRlciB7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsdGVybmF0ZSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLXRleHQtYWx0ZXJuYXRlKTtcbiAgICB9XG5cbiAgICAuZGF5LXRleHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDI1cHgpO1xuICAgICAgdG9wOiB2YXIoLS1pZHMtbW9udGgtdmlldy1kYXktdGV4dC10b3AsIDEzcHgpO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5tb250aC1sYWJlbCAuZGF5LXRleHQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgJi5tb250aC1sYWJlbCBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICB9XG4gIH1cblxuICB0aCxcbiAgdGQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItYm9yZGVyKTtcbiAgfVxuXG4gIC8vIExlZ2VuZCBpbiBmdWxsIHNpemUgbW9kZVxuICAmLmhhcy1sZWdlbmQgLm1vbnRoLXZpZXctY29udGFpbmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItYm9yZGVyKTtcbiAgfVxufVxuXG4vLyBVc2VkIGluIGEgZGF5IHBpY2tlclxuLmlkcy1tb250aC12aWV3LmlzLWRhdGUtcGlja2VyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgLm1vbnRoLXZpZXctY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgfVxuXG4gIHRkIC5kYXktY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBpZHMtZGF0ZS1waWNrZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICB9XG59XG5cbi8vIExlZ2VuZCBmb3IgZnVsbCBzaXplIHZpZXcgYW5kIGlmIGl0J3MgaW4gYSBkYXRlcGlja2VyXG4uaWRzLW1vbnRoLXZpZXcuaXMtZGF0ZS1waWNrZXIsXG4uaWRzLW1vbnRoLXZpZXcuaXMtZnVsbHNpemUge1xuICAubW9udGgtdmlldy1sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4vLyBMZWdlbmQgZm9yIG1vbnRoXG4ubW9udGgtdmlldy1sZWdlbmQtaXRlbS5ldmVudC10eXBlIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBvcGFjaXR5OiAxO1xufVxuXG5pZHMtdG9vbGJhciBpZHMtbWVudS1idXR0b25bbWVudT0ndmlldy1waWNrZXInXSB7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XG59XG5cbi8vIFRleHQgZGlyZWN0aW9uXG46aG9zdChbZGlyPSdydGwnXSkge1xuICAuaWRzLW1vbnRoLXZpZXcge1xuICAgICYuaXMtZnVsbHNpemUgdGQge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgLSAyNXB4KTtcbiAgICAgIH1cblxuICAgICAgJi5tb250aC1sYWJlbCAuZGF5LXRleHQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi5tb250aC1sYWJlbCBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZGF0ZS1waWNrZXIge1xuICAgICAgaWRzLWRhdGUtcGlja2VyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmJ0bi10b2RheSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC03cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */`;\n", "import { customElement, scss } from '../../core/ids-decorators';\nimport { attributes } from '../../core/ids-attributes';\n\nimport IdsEventsMixin from '../../mixins/ids-events-mixin/ids-events-mixin';\nimport IdsDateAttributeMixin from '../../mixins/ids-date-attribute-mixin/ids-date-attribute-mixin';\nimport IdsLocaleMixin from '../../mixins/ids-locale-mixin/ids-locale-mixin';\nimport IdsCalendarEventsMixin from '../../mixins/ids-calendar-events-mixin/ids-calendar-events-mixin';\nimport IdsElement from '../../core/ids-element';\nimport IdsMonthViewAttributeMixin from './ids-month-view-attribute-mixin';\n\n// Import Utils\nimport {\n addDate,\n daysDiff,\n daysInMonth,\n firstDayOfMonthDate,\n firstDayOfWeekDate,\n gregorianToUmalqura,\n isValidDate,\n lastDayOfMonthDate,\n subtractDate,\n umalquraToGregorian,\n weeksInMonth,\n weeksInRange,\n removeDateRange,\n weekNumber\n} from '../../utils/ids-date-utils/ids-date-utils';\nimport {\n stringToBool,\n stringToNumber,\n buildClassAttrib,\n} from '../../utils/ids-string-utils/ids-string-utils';\n\n// Supporting components\nimport '../ids-button/ids-button';\nimport '../ids-icon/ids-icon';\nimport '../ids-text/ids-text';\nimport '../ids-trigger-field/ids-trigger-button';\n\n// Import Styles\nimport styles from './ids-month-view.scss';\nimport IdsCalendarEvent, { CalendarEventData, CalendarEventTypeData } from '../ids-calendar/ids-calendar-event';\nimport { getDateValuesFromString } from '../ids-date-picker/ids-date-picker-common';\n\nimport type {\n IdsRangeSettings,\n IdsDisableSettings,\n IdsLegendSettings,\n} from './ids-month-view-common';\nimport {\n BASE_Y_OFFSET,\n MIN_MONTH,\n MAX_MONTH,\n MAX_EVENT_COUNT,\n WEEK_LENGTH,\n IdsRangeSettingsInterface\n} from './ids-month-view-common';\n\nexport type IdsDayselectedEvent = CustomEventInit & {\n detail: {\n elem: IdsMonthView,\n date: Date,\n useRange: boolean,\n rangeStart: Date | null,\n rangeEnd: Date | null,\n events?: CalendarEventData[]\n },\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n};\n\nconst Base = IdsMonthViewAttributeMixin(\n IdsDateAttributeMixin(\n IdsCalendarEventsMixin(\n IdsLocaleMixin(\n IdsEventsMixin(\n IdsElement\n )\n )\n )\n )\n);\n\n/**\n * IDS Month View Component\n * @type {IdsMonthView}\n * @inherits IdsElement\n * @mixes IdsLocaleMixin\n * @mixes IdsEventsMixin\n * @mixes IdsCalendarEventsMixin\n * @part container - the container of the component\n * @part table-container - the container of the calendar table\n */\n@customElement('ids-month-view')\n@scss(styles)\nclass IdsMonthView extends Base implements IdsRangeSettingsInterface {\n #lastRenderedYear = NaN;\n\n #lastRenderedDay = NaN;\n\n #lastRenderedMonth = NaN;\n\n #lastRenderedFirstDayOfWeek = NaN;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.#attachEventHandlers();\n this.#attachKeyboardListeners();\n this.#renderMonth();\n }\n\n // Flag value for custom calendar event\n #isCustom = false;\n\n /**\n * Return the attributes we handle as getters/setters\n * @returns {Array} The attributes in an array\n */\n static get attributes(): Array<string> {\n return [\n ...super.attributes,\n attributes.COMPACT,\n attributes.END_DATE,\n attributes.FIRST_DAY_OF_WEEK,\n attributes.IS_DATEPICKER,\n attributes.SHOW_PICKLIST_MONTH,\n attributes.SHOW_PICKLIST_WEEK,\n attributes.SHOW_PICKLIST_YEAR,\n attributes.SHOW_TODAY,\n attributes.START_DATE,\n ];\n }\n\n /**\n * Inner template contents\n * @returns {string} The template\n */\n template(): string {\n return `<div class=\"ids-month-view ${this.compact ? 'is-compact' : 'is-fullsize'}${this.isDatePicker ? ' is-date-picker' : ''}\" part=\"container\">\n <div class=\"month-view-container\" part=\"table-container\">\n <table class=\"month-view-table\" aria-label=\"${this.localeAPI?.translate('Calendar')}\" role=\"application\">\n <thead class=\"month-view-table-header\">\n <tr></tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>`;\n }\n\n /**\n * Establish internal event handlers\n * @returns {void}\n */\n #attachEventHandlers() {\n // Day select event\n this.offEvent('click.month-view-dayselect');\n this.onEvent('click.month-view-dayselect', this.container?.querySelector('tbody'), (e: MouseEvent) => {\n // ignore clicks from week number column\n if ((e.target as HTMLElement)?.classList.contains('week-num-text')) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n return;\n }\n\n this.#daySelectClick((e.target as HTMLElement).closest('td'));\n });\n\n // Range selection event\n this.offEvent('mouseover.month-view-range');\n this.onEvent('mouseover.month-view-range', this.container?.querySelector('tbody'), (e: MouseEvent) => {\n const element = (e.target as HTMLElement).closest('td');\n\n if (!element) return;\n\n const { year, month, day } = element.dataset;\n\n this.#rangePropagation(year, month, day);\n });\n\n // Clear range selection when hover outside\n this.offEvent('mouseleave.month-view-range');\n this.onEvent('mouseleave.month-view-range', this.container?.querySelector('tbody'), () => {\n this.container?.querySelectorAll('td')\n .forEach((item: HTMLElement) => item.classList.remove('range-next', 'range-prev'));\n });\n\n // Events Overflow click event\n this.onEvent('click.overflow', this.container, (evt: any) => {\n if (evt.target.tagName === 'IDS-TEXT' && evt.target.classList.contains('events-overflow')) {\n evt.stopPropagation();\n const date = new Date(evt.target.getAttribute('data-date'));\n this.triggerEvent('overflow-click', this, {\n detail: { date },\n bubbles: true,\n cancelable: true,\n composed: true\n });\n }\n });\n\n return this;\n }\n\n onLanguageChange = () => {\n this.#renderMonth();\n };\n\n onLocaleChange = () => {\n this.#renderMonth();\n };\n\n /**\n * Establish Internal Keyboard shortcuts\n * @returns {object} this class-instance object for chaining\n */\n #attachKeyboardListeners(): any {\n // Group key codes to stop keyboard event, trigger dayselected event and focus active day\n const keys = [33, 34, 35, 36, 37, 38, 39, 40, 187, 189];\n\n // Range calendar doesn't have keyboard shortcuts\n if (this.#isDisplayRange()) {\n this.offEvent('keydown.month-view-keyboard');\n } else {\n this.offEvent('keydown.month-view-keyboard');\n this.onEvent('keydown.month-view-keyboard', this.container?.querySelector('.month-view-table'), (e: KeyboardEvent) => {\n const key = e.keyCode;\n\n if (keys.includes(key)) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n // When range selection is started\n if (this.useRange) {\n if (this.rangeSettings.start) {\n // Escape resets range selection\n if (key === 27) {\n this.rangeSettings.start = null;\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n this.focus();\n }\n\n // Arrow Up includes range start and same day previous week\n if (key === 38) {\n this.changeDate('previous-week', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Down includes range start and same day next week\n if (key === 40) {\n this.changeDate('next-week', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Right or + key includes next day to range selection\n if (key === 39 || (key === 187 && e.shiftKey)) {\n this.changeDate('next-day', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Left or - key includes previous day to range selection\n if (key === 37 || (key === 189 && !e.shiftKey)) {\n this.changeDate('previous-day', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Enter or space key completes range selection if started\n if (key === 13 || key === 32) {\n this.#setRangeSelection(this.year, this.month, this.day);\n this.#triggerSelectedEvent();\n }\n\n this.focus();\n\n return;\n }\n\n // Enter or space key starts range selection\n if (key === 13 || key === 32) {\n if (this.rangeSettings.selectWeek) {\n this.#rangeSelectWeek(this.year, this.month, this.day);\n this.#triggerSelectedEvent();\n } else {\n this.#setRangeSelection(this.year, this.month, this.day);\n this.focus();\n }\n }\n }\n\n // Arrow Up selects same day previous week\n if (key === 38) {\n this.changeDate('previous-week');\n }\n\n // Arrow Down selects same day next week\n if (key === 40) {\n this.changeDate('next-week');\n }\n\n // Arrow Right or + key selects next day\n if (key === 39 || (key === 187 && e.shiftKey)) {\n this.changeDate('next-day');\n }\n\n // Arrow Left or - key selects previous day\n if (key === 37 || (key === 189 && !e.shiftKey)) {\n this.changeDate('previous-day');\n }\n\n // Page Up selects same day previous month\n if (key === 33 && !e.altKey && !(e.ctrlKey || e.metaKey)) {\n this.changeDate('previous-month');\n }\n\n // Page Down selects same day next month\n if (key === 34 && !e.altKey && !(e.ctrlKey || e.metaKey)) {\n this.changeDate('next-month');\n }\n\n // ctrl + Page Up selects same day previous year\n if (key === 33 && (e.ctrlKey || e.metaKey)) {\n this.changeDate('previous-year');\n }\n\n // ctrl + Page Down selects same day next year\n if (key === 34 && (e.ctrlKey || e.metaKey)) {\n this.changeDate('next-year');\n }\n\n // Home moves to start of the month\n if (key === 36) {\n this.changeDate('start-month');\n }\n\n // End moves to end of the month\n if (key === 35) {\n this.changeDate('end-month');\n }\n\n // 't' selects today\n if (key === 84) {\n this.changeDate('today');\n }\n\n // Add keys including Enter or Space triggers dayselected event in regular calendar\n if (((keys.includes(key) || key === 84) && !this.isDatePicker) || (key === 32 || key === 13)) {\n this.#triggerSelectedEvent();\n }\n\n if (keys.includes(key) || key === 84) {\n if (this.isDatePicker) {\n this.selectDay(this.year, this.month, this.day);\n }\n this.focus();\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add/remove legend HTML to the container\n */\n #renderLegend(): void {\n const template = (this.legend && this.legend.length > 0) ? `\n <div class=\"month-view-legend\">\n ${this.legend.map((item: any) => `\n <div class=\"month-view-legend-item ${item.cssClass || ''}\">\n <span class=\"month-view-legend-swatch\" data-color=\"${item.color}\"></span>\n <ids-text class=\"month-view-legend-text\" ${item.fontSize ? `font-size=\"${item.fontSize}\"` : ''}>${item.name}</ids-text>\n </div>\n `).join('')}\n </div>\n ` : '';\n\n // Clear/add HTML\n this.container?.querySelector('.month-view-legend')?.remove();\n this.container?.querySelector('.month-view-container')?.insertAdjacentHTML('beforeend', template);\n\n this.#colorToVar();\n }\n\n /**\n * Change month/year/day by event type\n * @param {string} type of event to be called\n * @param {boolean} limitMonth date changing is limited only to the current month\n */\n changeDate(type: string, limitMonth = false): void {\n if (type === 'next-month') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const year = umalqura.month === MAX_MONTH ? umalqura.year + 1 : umalqura.year;\n const month = umalqura.month === MAX_MONTH ? MIN_MONTH : umalqura.month + 1;\n const gregorian = umalquraToGregorian(year, month, umalqura.day === 30 ? 1 : umalqura.day);\n\n this.day = gregorian.getDate();\n this.year = gregorian.getFullYear();\n this.month = gregorian.getMonth();\n } else {\n this.year = this.month === MAX_MONTH ? this.year + 1 : this.year;\n this.month = this.month === MAX_MONTH ? MIN_MONTH : this.month + 1;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'previous-month') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const year = umalqura.month === MIN_MONTH ? umalqura.year - 1 : umalqura.year;\n const month = umalqura.month === MIN_MONTH ? MAX_MONTH : umalqura.month - 1;\n const gregorian = umalquraToGregorian(year, month, umalqura.day === 30 ? 1 : umalqura.day);\n\n this.day = gregorian.getDate();\n this.year = gregorian.getFullYear();\n this.month = gregorian.getMonth();\n } else {\n this.year = this.month === MIN_MONTH ? this.year - 1 : this.year;\n this.month = this.month === MIN_MONTH ? MAX_MONTH : this.month - 1;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'next-day') {\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (lastDayOfMonth.getDate() === this.day && limitMonth) return;\n\n if (this.localeAPI?.isIslamic()) {\n const nextDate = addDate(this.activeDate, 1, 'days');\n\n this.day = nextDate.getDate();\n this.year = nextDate.getFullYear();\n this.month = nextDate.getMonth();\n\n return;\n }\n\n // Next month/year with rerender\n if (lastDayOfMonth.getDate() === this.day) {\n const nextDate = addDate(lastDayOfMonth, 1, 'days');\n\n this.year = nextDate.getFullYear();\n this.month = nextDate.getMonth();\n this.day = nextDate.getDate();\n } else {\n // Just increase day without rerender\n this.day += 1;\n }\n }\n\n if (type === 'previous-day') {\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (firstDayOfMonth.getDate() === this.day && limitMonth) return;\n\n if (this.localeAPI?.isIslamic()) {\n const prevDate = subtractDate(this.activeDate, 1, 'days');\n\n this.day = prevDate.getDate();\n this.year = prevDate.getFullYear();\n this.month = prevDate.getMonth();\n\n return;\n }\n\n // Previous month/year with rerender\n if (firstDayOfMonth.getDate() === this.day) {\n const prevDate = subtractDate(firstDayOfMonth, 1, 'days');\n\n this.year = prevDate.getFullYear();\n this.month = prevDate.getMonth();\n this.day = prevDate.getDate();\n } else {\n // Just decrease day without rerender\n this.day -= 1;\n }\n }\n\n if (type === 'next-year') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const gregorian = umalquraToGregorian(\n umalqura.year + 1,\n umalqura.month,\n umalqura.day === 30 ? 1 : umalqura.day\n );\n\n this.day = gregorian.getDate();\n this.month = gregorian.getMonth();\n this.year = gregorian.getFullYear();\n } else {\n const y = this.year + 1;\n this.year = y;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'previous-year') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const gregorian = umalquraToGregorian(\n umalqura.year - 1,\n umalqura.month,\n umalqura.day === 30 ? 1 : umalqura.day\n );\n\n this.day = gregorian.getDate();\n this.month = gregorian.getMonth();\n this.year = gregorian.getFullYear();\n } else {\n const y = this.year - 1;\n this.year = y;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'today') {\n const now = new Date();\n\n this.day = now.getDate();\n this.year = now.getFullYear();\n this.month = now.getMonth();\n\n if (this.useRange) {\n this.rangeSettings.start = now.getTime();\n this.rangeSettings.end = now.getTime();\n }\n this.focus();\n }\n\n if (type === 'next-week') {\n const nextWeek = addDate(this.activeDate, WEEK_LENGTH, 'days');\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (nextWeek > lastDayOfMonth && limitMonth) return;\n\n this.day = nextWeek.getDate();\n\n if (nextWeek > lastDayOfMonth || this.localeAPI?.isIslamic()) {\n this.year = nextWeek.getFullYear();\n this.month = nextWeek.getMonth();\n }\n }\n\n if (type === 'previous-week') {\n const prevWeek = subtractDate(this.activeDate, WEEK_LENGTH, 'days');\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (prevWeek < firstDayOfMonth && limitMonth) return;\n\n this.day = prevWeek.getDate();\n\n if (prevWeek < firstDayOfMonth || this.localeAPI?.isIslamic()) {\n this.year = prevWeek.getFullYear();\n this.month = prevWeek.getMonth();\n }\n }\n\n if (type === 'start-month') {\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n this.day = firstDayOfMonth.getDate();\n\n if (this.localeAPI?.isIslamic()) {\n this.year = firstDayOfMonth.getFullYear();\n this.month = firstDayOfMonth.getMonth();\n }\n }\n\n if (type === 'end-month') {\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n this.day = lastDayOfMonth.getDate();\n\n if (this.localeAPI?.isIslamic()) {\n this.month = lastDayOfMonth.getMonth();\n this.year = lastDayOfMonth.getFullYear();\n }\n }\n\n this.triggerDateChange(this.activeDate, type);\n }\n\n /**\n * Day cell clicked\n * @param {HTMLElement} element The element.\n */\n #daySelectClick(element: null | HTMLElement): void {\n if (!element) return;\n\n const { month, year, day }: any = element.dataset;\n const isDisabled = element.classList.contains('is-disabled');\n\n if (!isDisabled) {\n this.#setRangeSelection(year, month, day);\n\n this.day = day;\n\n if (stringToNumber(month) !== this.month || this.localeAPI?.isIslamic()) {\n this.month = month;\n }\n\n if (stringToNumber(year) !== this.year || this.localeAPI?.isIslamic()) {\n this.year = year;\n }\n\n this.focus();\n if (!this.showApply) this.#triggerSelectedEvent();\n }\n }\n\n /**\n * Add given year, month, day to the range selection\n * @param {number} year to add to the range selection\n * @param {number} month to add to the range selection\n * @param {number} day to add to the range selection\n */\n #setRangeSelection(year: number, month: number, day: number | undefined): void {\n if (!this.useRange) return;\n\n const date = new Date(year, month, day);\n const dateTime = date.getTime();\n const diff = this.rangeSettings.start ? daysDiff(this.rangeSettings.start, date) : 0;\n const rangeStarted = this.rangeSettings.start && !this.rangeSettings.end;\n const canSelectBoth = !(this.rangeSettings.selectBackward || this.rangeSettings.selectForward);\n const selectBackward = this.rangeSettings.selectBackward && diff < 0;\n const selectForward = this.rangeSettings.selectForward && diff > 0;\n const startDate = new Date(this.rangeSettings.start as string);\n const startTime = startDate.getTime();\n const minDays = this.rangeSettings.minDays;\n const maxDays = this.rangeSettings.maxDays;\n const minRangeExceeded = (minDays as number) > 0 && Math.abs(diff) < (minDays as number);\n const maxRangeExceeded = (maxDays as number) > 0 && Math.abs(diff) > (maxDays as number);\n const minRangeDate = diff >= 0\n ? addDate(startDate, (minDays as number), 'days')\n : subtractDate(startDate, (minDays as number), 'days');\n\n this.selectDay(year, month, day);\n\n if (this.rangeSettings.selectWeek) {\n return;\n }\n\n // Start is set\n if (rangeStarted && !maxRangeExceeded && (canSelectBoth || selectBackward || selectForward)) {\n if (minRangeExceeded) {\n this.rangeSettings.end = dateTime >= startTime ? minRangeDate.getTime() : this.rangeSettings.start;\n this.rangeSettings.start = subtractDate(this.rangeSettings.end, (minDays as number), 'days');\n\n this.#renderRangeSelection();\n\n return;\n }\n\n this.rangeSettings.end = dateTime >= startTime ? dateTime : this.rangeSettings.start;\n this.rangeSettings.start = dateTime <= startTime ? dateTime : this.rangeSettings.start;\n\n this.#renderRangeSelection();\n // Start not set or both not set\n } else {\n this.rangeSettings.start = dateTime;\n this.rangeSettings.end = null;\n\n this.#clearRangeClasses();\n }\n }\n\n /**\n * Helper to clear range selection CSS classes\n */\n #clearRangeClasses(): void {\n this.container?.querySelectorAll('td')\n .forEach(\n (item: HTMLElement) => item.classList.remove(\n 'range-next',\n 'range-prev',\n 'range-selection',\n 'not-included'\n )\n );\n }\n\n /**\n * Add CSS classes and selected attrs to tables cells when range selection is completed\n */\n #renderRangeSelection(): void {\n if (!this.useRange) return;\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(this.rangeSettings.end);\n const days = this.rangeSettings.end ? daysDiff(startRange, endRange) : 0;\n\n this.#clearRangeClasses();\n\n Array.from({ length: days + 1 }).forEach((_, index) => {\n const rangeDay = addDate(startRange, index, 'days');\n const selectedQuery = [\n 'td',\n `[data-year=\"${rangeDay.getFullYear()}\"]`,\n `[data-month=\"${rangeDay.getMonth()}\"]`,\n `[data-day=\"${rangeDay.getDate()}\"]`\n ].join('');\n const element = this.container?.querySelector(selectedQuery);\n\n element?.classList.add('range-selection');\n\n if (!this.rangeSettings.includeDisabled) {\n element?.classList.add('not-included');\n }\n\n if ((index === 0 || index === days) && !this.rangeSettings.selectWeek) {\n element?.setAttribute('aria-selected', 'true');\n element?.setAttribute('role', 'gridcell');\n element?.classList.add('is-selected');\n }\n });\n }\n\n /**\n * Helper to check if date is in the range selection\n * @param {Date} date to check if is in range selection\n * @returns {boolean} whether the date is in range selection\n */\n #isRangeByDate(date: Date): boolean {\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(this.rangeSettings.end);\n\n return date.getTime() >= startRange.getTime()\n && date.getTime() <= endRange.getTime();\n }\n\n /**\n * Helper to handle week selection\n * @param {string|number} year to add to the range selection\n * @param {string|number} month to add to the range selection\n * @param {string|number} day to add to the range selection\n */\n #rangeSelectWeek(\n year: string | number | undefined,\n month: string | number | undefined,\n day: string | number | undefined\n ): void {\n const firstDayOfWeek: Date = firstDayOfWeekDate(\n new Date(year as number, month as number, day as number),\n this.firstDayOfWeek\n );\n\n if (firstDayOfWeek.getTime() !== this.rangeSettings.start?.getTime()) {\n this.rangeSettings.start = firstDayOfWeek;\n this.rangeSettings.end = addDate(this.rangeSettings.start, WEEK_LENGTH - 1, 'days');\n\n this.selectDay();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Add CSS classes to table cells when range selection is in progress\n * Starting from the range settings start\n * @param {string|number} year to add to the range selection\n * @param {string|number} month to add to the range selection\n * @param {string|number} day to add to the range selection\n */\n #rangePropagation(\n year: string | number | undefined,\n month: string | number | undefined,\n day: string | number | undefined\n ): void {\n if (!this.useRange) return;\n\n if (this.rangeSettings.selectWeek) {\n this.#rangeSelectWeek(year, month, day);\n\n return;\n }\n\n if (this.rangeSettings.start && !(this.rangeSettings.end && this.rangeSettings.start)) {\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(year as number, month as number, day as number);\n const diff = daysDiff(startRange, endRange);\n\n this.#clearRangeClasses();\n\n const canSelectBoth = !(this.rangeSettings.selectBackward || this.rangeSettings.selectForward);\n const selectBackward = this.rangeSettings.selectBackward && diff < 0;\n const selectForward = this.rangeSettings.selectForward && diff > 0;\n const maxDays = this.rangeSettings.maxDays;\n const maxRangeExceeded = (maxDays as number) > 0 && Math.abs(diff) > (maxDays as number);\n\n if (diff !== 0 && !maxRangeExceeded && (canSelectBoth || selectBackward || selectForward)) {\n Array.from({ length: Math.abs(diff) }).forEach((_, index) => {\n const rangeDay = diff > 0\n ? addDate(startRange, index + 1, 'days')\n : subtractDate(startRange, index + 1, 'days');\n const selectedQuery = [\n 'td',\n `[data-year=\"${rangeDay.getFullYear()}\"]`,\n `[data-month=\"${rangeDay.getMonth()}\"]`,\n `[data-day=\"${rangeDay.getDate()}\"]`\n ].join('');\n\n this.container?.querySelector(selectedQuery)\n ?.classList.add(diff > 0 ? 'range-next' : 'range-prev');\n\n if (!this.rangeSettings.includeDisabled) {\n this.container?.querySelector(selectedQuery)?.classList.add('not-included');\n }\n });\n }\n }\n }\n\n /**\n * Defines if a date is in disabled settings\n * @param {Date} date to check\n * @returns {boolean} wheter or not the date is disabled\n */\n isDisabledByDate(date: Date): boolean {\n const {\n years,\n dayOfWeek,\n dates,\n minDate,\n maxDate,\n isEnable\n }: IdsDisableSettings = this.disableSettings;\n\n const isOutOfDisplayRange: boolean = this.#isDisplayRange()\n && (date < (this.startDate as Date) || date > (this.endDate as Date));\n const ifYear: boolean = (years as Array<number>).some(\n (item: number) => item === date?.getFullYear()\n );\n const ifDayOfWeek: boolean = (dayOfWeek as Array<number>).some(\n (item: number) => item === date?.getDay()\n );\n const ifDates: boolean = (dates as Array<string>).some(\n (item: string) => (new Date(item))?.getTime() === date?.getTime()\n );\n const ifMinMaxDate: boolean = date <= new Date(minDate as string) || date >= new Date(maxDate as string);\n const ifBySettings: boolean = ifYear || ifDayOfWeek || ifDates || ifMinMaxDate;\n const withReverse: boolean = isEnable ? !ifBySettings : ifBySettings;\n\n return withReverse || isOutOfDisplayRange;\n }\n\n /**\n * Helper to get month format for first day of a month or first day of the display range\n * @param {Date} date date to check\n * @param {Date} rangeStartsOn very first day of the display range\n * @returns {string|undefined} Intl.DateTimeFormat options month format (numeric, long, short)\n */\n #monthInDayFormat(date: Date, rangeStartsOn: Date): string | undefined {\n const isFirstDayOfRange = daysDiff(date, rangeStartsOn) === 0;\n const isFirstDayOfMonth = this.localeAPI?.isIslamic()\n ? gregorianToUmalqura(date).day === 1\n : date.getDate() === 1;\n\n if (this.#isDisplayRange() && (isFirstDayOfRange || isFirstDayOfMonth)) {\n return 'short';\n }\n\n return undefined;\n }\n\n /**\n * Table cell HTML template with locale, data attributes\n * @param {number} weekIndex number of week in month starting from 0\n * @returns {string} table cell HTML template\n */\n #getCellTemplate(weekIndex: number): string {\n const firstDayOfRange: Date = this.#isDisplayRange()\n ? (this.startDate as Date)\n : firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n const lastDayOfRange: Date = this.#isDisplayRange()\n ? (this.endDate as Date)\n : lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n const rangeStartsOn = firstDayOfWeekDate(firstDayOfRange, this.firstDayOfWeek);\n const firstDayOfWeek = addDate(rangeStartsOn, (weekIndex * WEEK_LENGTH), 'days');\n const now: Date = new Date();\n const isCompact = this.compact;\n\n const dayCells = Array.from({ length: WEEK_LENGTH }).map((_, index) => {\n const date: Date = addDate(rangeStartsOn, (weekIndex * WEEK_LENGTH) + index, 'days');\n const monthFormat: string | undefined = this.#monthInDayFormat(date, rangeStartsOn);\n const dayText: string = this.localeAPI?.formatDate(date, {\n day: 'numeric',\n month: monthFormat,\n numberingSystem: 'latn'\n });\n const ariaLabel: string = this.localeAPI?.formatDate(date, { dateStyle: 'full' });\n const day: number = date.getDate();\n const month: number = date.getMonth();\n const year: number = date.getFullYear();\n const dateMatch: boolean = day === this.day && year === this.year && month === this.month;\n const isSelected: boolean = !this.useRange && dateMatch;\n const isSelectedWithRange: boolean = this.useRange && !this.rangeSettings.start && dateMatch;\n const isDisabled: boolean = this.isDisabledByDate(date);\n const isAlternate: boolean = !this.#isDisplayRange() && (date < firstDayOfRange || date > lastDayOfRange);\n const legend: any = this.getLegendByDate(date);\n const isRangeSelection: boolean = this.#isRangeByDate(date);\n const isToday: boolean = year === now.getFullYear() && month === now.getMonth() && day === now.getDate();\n const classAttr: string = buildClassAttrib(\n isAlternate && 'alternate',\n legend && 'has-legend',\n isDisabled && 'is-disabled',\n (isSelected || isSelectedWithRange) && 'is-selected',\n monthFormat && 'month-label',\n isRangeSelection && 'range-selection',\n isToday && 'is-today'\n );\n const selectedAttr: string = isSelected || isSelectedWithRange\n ? 'aria-selected=\"true\" tabindex=\"0\" role=\"gridcell\"' : 'role=\"link\"';\n const dataAttr: string = [`data-year=\"${year}\"`, `data-month=\"${month}\"`, `data-day=\"${day}\"`].join(' ');\n const colorAttr: string = legend ? `data-color=\"${legend.color}\"` : '';\n const dateKey = this.generateDateKey(new Date(year, month, day));\n\n let cellTemplate = `<td aria-label=\"${ariaLabel}\" ${dataAttr} ${classAttr} ${selectedAttr} ${colorAttr}>\n <span class=\"day-container\">\n <ids-text\n aria-hidden=\"true\"\n class=\"day-text\"\n font-size=\"14\"\n >${dayText}</ids-text>\n </span>\n ${isCompact ? '' : `<div class=\"events-container\" data-key=\"${dateKey}\"></div>`}\n </td>`;\n if (typeof this.state.onDayRender === 'function') {\n cellTemplate = this.state.onDayRender(cellTemplate, dateKey);\n }\n return cellTemplate;\n }).join('');\n\n // Week number cell if enabled\n const weekNumCell = `<td class=\"week-num-cell\">\n <ids-text class=\"week-num-text\" font-size=\"14\">${weekNumber(firstDayOfWeek, this.firstDayOfWeek)}</ids-text>\n </td>`;\n const weekNumCellTemplate = this.showWeekNumbers ? weekNumCell : '';\n\n return `${weekNumCellTemplate}${dayCells}`;\n }\n\n /**\n * Add week days HTML to the table\n */\n #renderWeekDays(): void {\n const weekDayKeys = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n const weekDays = weekDayKeys.map((item) => this.localeAPI?.translate(`${this.compact ? 'DayNarrow' : 'DayAbbreviated'}${item}`));\n const weekDaysWide = weekDayKeys.map((item) => this.localeAPI?.translate(`DayWide${item}`));\n\n // Week number header if enabled\n const weekNumHeader = `<th scope=\"col\" class=\"week-num-cell\">\n <ids-text class=\"week-num-text\" font-size=\"14\">W#</ids-text>\n </th>`;\n let weekDaysTemplate = this.showWeekNumbers ? weekNumHeader : '';\n\n weekDaysTemplate += weekDays.map((el: any, index: number) => {\n const idx = (index + this.firstDayOfWeek) % WEEK_LENGTH;\n const weekday = weekDays[idx];\n const weekdaywide = weekDaysWide[idx];\n\n return `\n <th scope=\"col\" abbr=\"${weekdaywide}\">\n <ids-text\n class=\"weekday-text\"\n font-size=\"14\"\n >${weekday}</ids-text>\n </th>\n `;\n }).join('');\n\n // Clear/add HTML\n this.container?.querySelectorAll('thead th').forEach((el: Element) => el.remove());\n this.container?.querySelector('thead tr')?.insertAdjacentHTML('beforeend', weekDaysTemplate);\n }\n\n /**\n * Add month HTML to the table\n */\n #renderMonth(): void {\n const weeksCount = this.#isDisplayRange()\n ? weeksInRange(this.startDate, this.endDate, this.firstDayOfWeek)\n : weeksInMonth(this.year, this.month, this.day, this.firstDayOfWeek, this.localeAPI?.isIslamic());\n this.triggerEvent('beforerendermonth', this, {\n bubbles: true,\n detail: { elem: this }\n });\n\n const rowsTemplate = Array.from({ length: weeksCount }).map((_, weekIndex) => `<tr>${this.#getCellTemplate(weekIndex)}</tr>`).join('');\n\n // Clear/add HTML\n this.container?.querySelectorAll('tbody tr').forEach((el: Element) => el.remove());\n this.container?.querySelector('tbody')?.insertAdjacentHTML('beforeend', rowsTemplate);\n\n this.#renderWeekDays();\n this.#colorToVar();\n this.state.hasRendered = true;\n\n if (!this.compact && !this.isDatePicker) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.renderEventsData();\n }\n\n this.#lastRenderedYear = this.year;\n this.#lastRenderedMonth = this.month;\n this.#lastRenderedDay = this.day;\n this.#lastRenderedFirstDayOfWeek = this.firstDayOfWeek;\n\n this.triggerEvent('afterrendermonth', this, {\n bubbles: true,\n detail: { elem: this }\n });\n }\n\n /**\n * Gets calendar events within the selected/active day\n * @returns {CalendarEventData[]} calendar events data\n */\n getActiveDayEvents(): CalendarEventData[] {\n const activeDay = this.getSelectedDay();\n let eventElems = activeDay ? [...activeDay.querySelectorAll('ids-calendar-event')] : [];\n if (this.#isCustom && activeDay) {\n const customCalendarEvents: any = activeDay.querySelectorAll('.events-container > [slot]');\n eventElems = activeDay ? [...customCalendarEvents] : [];\n }\n const events = eventElems.map((elem: any) => elem.eventData);\n\n return events;\n }\n\n /**\n * Trigger selected event with current params\n * @returns {void}\n */\n #triggerSelectedEvent(): void {\n if (this.isDisabledByDate(this.activeDate)) {\n return;\n }\n\n const args: IdsDayselectedEvent = {\n detail: {\n elem: this,\n date: this.activeDate,\n useRange: this.useRange,\n rangeStart: this.useRange && this.rangeSettings.start ? new Date(this.rangeSettings.start) : null,\n rangeEnd: this.useRange && this.rangeSettings.end ? new Date(this.rangeSettings.end) : null,\n value: this.getFormattedDate(this.activeDate)\n },\n bubbles: true,\n cancelable: true,\n composed: true\n };\n\n // For full-sized non datepicker month view\n if (!this.compact && !this.isDatePicker) {\n args.detail.events = this.getActiveDayEvents();\n }\n\n this.triggerEvent('dayselected', this, args);\n }\n\n /**\n * Add selectable attribute to active day\n * @param {number} year a given year\n * @param {number} month a given month\n * @param {number} day a given day\n */\n selectDay(year?: any, month?: any, day?: any): void {\n // Clear before\n this.#makeAllDeselected();\n const selectedQuery = `td[data-year=\"${year}\"][data-month=\"${month}\"][data-day=\"${day}\"]`;\n const selected = this.container?.querySelector<HTMLTableCellElement>(selectedQuery);\n if (selected) this.#makeSelected(selected);\n }\n\n /**\n * Makes a specified day in the Month View table appear \"selected\"\n * @param {HTMLTableCellElement} elem the element to make appear \"selected\"\n * @returns {void}\n */\n #makeSelected(elem: HTMLTableCellElement): void {\n if (!elem) return;\n elem.setAttribute(attributes.TABINDEX, '0');\n elem.setAttribute('aria-selected', 'true');\n elem.setAttribute('role', 'gridcell');\n elem.classList.add('is-selected');\n }\n\n /**\n * Makes a specified day in the Month View table appear \"selected\"\n * @param {HTMLTableCellElement} elem the element to make appear \"selected\"\n * @returns {void}\n */\n #makeDeselected(elem: HTMLTableCellElement): void {\n if (!elem) return;\n elem.removeAttribute(attributes.TABINDEX);\n elem.removeAttribute('aria-selected');\n elem.setAttribute('role', 'link');\n elem.classList.remove('is-selected');\n }\n\n /**\n * Clears all previously-selected days from the Month View\n */\n #makeAllDeselected(): void {\n this.container?.querySelectorAll<HTMLTableCellElement>('td.is-selected')?.forEach((item: HTMLTableCellElement) => {\n this.#makeDeselected(item);\n });\n }\n\n /**\n * Whether or not it should show range of dates instead of one month view\n * @returns {boolean} startDate and endDate are set\n */\n #isDisplayRange(): boolean {\n return isValidDate(this.startDate)\n && isValidDate(this.endDate)\n && (this.endDate as Date) >= (this.startDate as Date);\n }\n\n /**\n * Helper to check if the month has a day\n * @param {number} day to check\n * @returns {number} day of the month either active or first\n */\n #getDayInMonth(day: number): number {\n const numberOfDays = daysInMonth(this.year, this.month);\n\n return day > numberOfDays ? 1 : day;\n }\n\n /**\n * Iterate legend items with color data and add color css variable\n */\n #colorToVar(): void {\n this.container?.querySelectorAll('[data-color]')\n .forEach((el: any) => {\n const color = el.dataset.color;\n const isHex = color?.includes('#');\n\n if (color) {\n el.style = `--legend-color: ${isHex ? color : `var(--ids-color-${color})`}`;\n }\n });\n }\n\n /**\n * Queries selected day cell element\n * @returns {HTMLElement} selected day\n */\n getSelectedDay(): HTMLTableCellElement | null {\n const selectedQuery = `td[data-year=\"${this.year}\"][data-month=\"${this.month}\"][data-day=\"${this.day}\"]`;\n return this.container?.querySelector(selectedQuery) || null;\n }\n\n /**\n * Focuses the active/selected day\n * @returns {void}\n */\n focus(): void {\n const selectedDay = this.getSelectedDay();\n if (selectedDay) {\n const isDisabled = selectedDay.classList.contains('is-disabled');\n if (!isDisabled) {\n this.#makeAllDeselected();\n this.#makeSelected(selectedDay);\n setTimeout(() => selectedDay.focus(), 10);\n }\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onFirstDayOfWeekChange() {\n if (this.container && this.firstDayOfWeek !== this.#lastRenderedFirstDayOfWeek) {\n this.#renderMonth();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onMonthChange() {\n if (!this.container) return;\n\n // Month change in range calendar doesn't trigger a rerender, just selects a day\n if (this.#isDisplayRange()) {\n this.selectDay(this.year, this.month, this.day);\n } else if (this.month !== this.#lastRenderedMonth) {\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onYearChange() {\n if (!this.container) return;\n\n // Year change in range calendar doesn't trigger a rerender, just selects a day\n if (this.#isDisplayRange()) {\n this.selectDay(this.year, this.month, this.day);\n } else if (this.year !== this.#lastRenderedYear) {\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @param {number} numberVal new value\n * @param {boolean} validates true if the new value passed is valid\n * @returns {void}\n */\n onDayChange(numberVal: number, validates: boolean) {\n if (!this.container || this.day === this.#lastRenderedDay) return;\n\n if (!(this.rangeSettings.start || this.useRange) && !this.isDatePicker) {\n this.selectDay(this.year, this.month, validates ? numberVal : this.day);\n }\n }\n\n /**\n * start-date attribute\n * @returns {Date | null} startDate date parsed from attribute value\n */\n get startDate(): Date | null {\n const attrVal = this.getAttribute(attributes.START_DATE) ?? '';\n const attrDate = new Date(attrVal);\n\n if (attrVal && isValidDate(attrDate)) {\n return attrDate;\n }\n\n return null;\n }\n\n /**\n * Set start of the range to show\n * @param {string | Date | null} val startDate param value\n */\n set startDate(val: string | Date | null) {\n if (val) {\n this.setAttribute(attributes.START_DATE, String(val));\n } else {\n this.removeAttribute(attributes.START_DATE);\n }\n\n if (this.container) {\n this.#renderMonth();\n this.#attachKeyboardListeners();\n }\n }\n\n /**\n * end-date attribute\n * @returns {Date|null} endDate date parsed from attribute value\n */\n get endDate(): Date | null {\n const attrVal = this.getAttribute(attributes.END_DATE) ?? '';\n const attrDate = new Date(attrVal);\n\n if (attrVal && isValidDate(attrDate)) {\n return attrDate;\n }\n\n return null;\n }\n\n /**\n * Set end of the range to show\n * @param {Date | string | null} val endDate param value\n */\n set endDate(val: Date | string | null) {\n if (val) {\n this.setAttribute(attributes.END_DATE, String(val));\n } else {\n this.removeAttribute(attributes.END_DATE);\n }\n\n if (this.container) {\n this.#renderMonth();\n this.#attachKeyboardListeners();\n }\n }\n\n /**\n * compact attribute\n * @returns {boolean} compact param converted to boolean from attribute value\n */\n get compact(): boolean {\n const attrVal = this.getAttribute(attributes.COMPACT);\n\n return stringToBool(attrVal);\n }\n\n /**\n * Set whether or not the component should be compact view\n * @param {string|boolean|null} val compact param value\n */\n set compact(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.COMPACT, 'true');\n } else {\n this.removeAttribute(attributes.COMPACT);\n }\n\n // Toggle container CSS class\n this.container?.classList.toggle('is-fullsize', !boolVal);\n this.container?.classList.toggle('is-compact', boolVal);\n\n if (this.container) {\n // Render related views\n this.#renderWeekDays();\n }\n }\n\n /**\n * show-apply attribute\n * @returns {boolean} showCancel param converted to boolean from attribute value\n */\n get showApply(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_APPLY));\n }\n\n /**\n * Set whether or not to show cancel button when the picker is expanded\n * @param {string|boolean|null} val show-cancel attribute value\n */\n set showApply(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n if (boolVal) {\n this.setAttribute(attributes.SHOW_APPLY, 'true');\n } else {\n this.removeAttribute(attributes.SHOW_APPLY);\n }\n }\n\n set showWeekNumbers(val: boolean | null) {\n if (stringToBool(val)) {\n this.setAttribute(attributes.SHOW_WEEK_NUMBERS, '');\n } else {\n this.removeAttribute(attributes.SHOW_WEEK_NUMBERS);\n }\n }\n\n get showWeekNumbers(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_WEEK_NUMBERS));\n }\n\n /**\n * is-date-picker attribute\n * @returns {boolean} isDatePicker param converted to boolean from attribute value\n */\n get isDatePicker(): boolean {\n const attrVal = this.getAttribute(attributes.IS_DATEPICKER);\n\n return stringToBool(attrVal);\n }\n\n /**\n * Set whether or not the component is used in datepicker popup\n * @param {string|boolean|null} val compact param value\n */\n set isDatePicker(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.IS_DATEPICKER, 'true');\n } else {\n this.removeAttribute(attributes.IS_DATEPICKER);\n }\n\n // Toggle container CSS class\n this.container?.classList.toggle('is-date-picker', boolVal);\n }\n\n onDisableSettingsChange() {\n this.#renderMonth();\n }\n\n onLegendSettingsChange(val: IdsLegendSettings) {\n if (!this.container) return;\n\n this.#renderMonth();\n this.#renderLegend();\n this.container.classList[val && val.length ? 'add' : 'remove']('has-legend');\n }\n\n onRangeSettingsChange(val: IdsRangeSettings) {\n if (!this.container) return;\n\n if (this.useRange && val?.start) {\n this.selectDay();\n } else {\n this.year = this.#lastRenderedYear;\n this.month = this.#lastRenderedMonth;\n this.day = this.#lastRenderedDay;\n\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n }\n\n this.container.classList.toggle('range-select-week', this.rangeSettings.selectWeek);\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n\n onUseRangeChange(newValue: boolean) {\n if (newValue) {\n this.selectDay();\n this.#renderRangeSelection();\n } else {\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n }\n }\n\n /**\n * show-picklist-year attribute, default is true\n * @returns {boolean} showPicklistYear param converted to boolean from attribute value\n */\n get showPicklistYear(): boolean {\n const attrVal = this.getAttribute(attributes.SHOW_PICKLIST_YEAR);\n\n if (attrVal) {\n return stringToBool(attrVal);\n }\n\n return true;\n }\n\n /**\n * Whether or not to show a list of years in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-year attribute converted to boolean\n */\n set showPicklistYear(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n this.setAttribute(attributes.SHOW_PICKLIST_YEAR, String(boolVal));\n }\n\n /**\n * show-picklist-month attribute, default is true\n * @returns {boolean} showPicklistMonth param converted to boolean from attribute value\n */\n get showPicklistMonth(): boolean {\n const attrVal = this.getAttribute(attributes.SHOW_PICKLIST_MONTH);\n\n if (attrVal) {\n return stringToBool(attrVal);\n }\n\n return true;\n }\n\n /**\n * Whether or not to show a list of months in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-month attribute converted to boolean\n */\n set showPicklistMonth(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n this.setAttribute(attributes.SHOW_PICKLIST_MONTH, String(boolVal));\n }\n\n /**\n * show-picklist-week attribute\n * @returns {boolean} showPicklistWeek param converted to boolean from attribute value\n */\n get showPicklistWeek(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_PICKLIST_WEEK));\n }\n\n /**\n * Whether or not to show week numbers in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-week attribute converted to boolean\n */\n set showPicklistWeek(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.SHOW_PICKLIST_WEEK, 'true');\n } else {\n this.removeAttribute(attributes.SHOW_PICKLIST_WEEK);\n }\n }\n\n /**\n * Remove month view calendar events and overflow elements\n */\n removeAllEvents(): void {\n this.container\n ?.querySelectorAll('.events-container')\n .forEach((container: Element) => { container.innerHTML = ''; });\n }\n\n /**\n * Groups calendar events by day using dateKey as key\n * @param {CalendarEventData[]} events calendar events data\n * @returns {Record<string, Array<CalendarEventData>>} collection of calendar events\n */\n #groupEventsByDay(events: CalendarEventData[]): Record<string, Array<CalendarEventData>> {\n const dayEvents: Record<string, Array<CalendarEventData>> = {};\n\n events.forEach((event: CalendarEventData) => {\n const dateKey = this.generateDateKey(new Date(event.starts)).toString();\n if (!dayEvents[dateKey]) dayEvents[dateKey] = [];\n dayEvents[dateKey].push(event);\n });\n\n return dayEvents;\n }\n\n /**\n * Filter calendar events data by current month\n * @param {CalendarEventData[]} data calendar events data\n * @returns {CalendarEventData[]} calendar events within month\n */\n filterEventsByMonth(data: CalendarEventData[] = []): CalendarEventData[] {\n return data.filter((event) => {\n const eventStart = new Date(event.starts);\n return this.startDate && this.endDate ? this.startDate <= eventStart && eventStart < this.endDate\n : eventStart.getMonth() === this.month && eventStart.getFullYear() === this.year;\n });\n }\n\n /**\n * Render Calendar Events data inside month view\n * @param {boolean} forceRender skip data fetch\n */\n async renderEventsData(forceRender = false): Promise<void> {\n if (!forceRender && typeof this.state.beforeEventsRender === 'function') {\n const startDate = this.startDate || new Date(this.year, this.month, 1);\n const endDate = this.endDate || new Date(this.year, this.month + 1, 0);\n this.eventsData = await this.state.beforeEventsRender(startDate, endDate);\n return;\n }\n\n this.removeAllEvents();\n\n if (!this.state.hasRendered || !this.eventsData?.length) return;\n\n const eventsInRange = this.filterEventsByMonth(this.eventsData);\n const monthEvents = this.#groupEventsByDay(eventsInRange);\n\n const customCalendarEvent: any = this.querySelector('[slot=\"customCalendarEvent\"]');\n for (const dateKey in monthEvents) {\n if (monthEvents.hasOwnProperty(dateKey)) {\n this.#renderDayEvents(dateKey, monthEvents[dateKey], customCalendarEvent);\n }\n }\n\n this.triggerEvent('eventsrendered', this, {\n detail: { eventsData: eventsInRange },\n bubbles: true,\n composed: true\n });\n }\n\n /**\n * Counts number of days for calendar events\n * @param {Date} start start date\n * @param {Date} end end date\n * @returns {number} days\n */\n #countDays(start: Date, end: Date): number {\n return Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));\n }\n\n /**\n * Renders calendar events within corresponding date's table cell\n * @param {string} dateKey generated date key\n * @param {CalendarEventData[]} events calendar events\n * @param {any} customCalendarEvent custom calendar events\n */\n #renderDayEvents(dateKey: string, events: CalendarEventData[], customCalendarEvent?: any): void {\n if (!this.container) return;\n\n const eventsContainer = this.container?.querySelector(`.events-container[data-key=\"${dateKey}\"]`);\n const orders = [...(eventsContainer?.childNodes) || []].map((elem: any) => elem.order);\n const baseOrder = orders.length ? Math.max(...orders) + 1 : 0;\n let isOverflowing = false;\n events.forEach((event: CalendarEventData, index: number) => {\n const start = new Date(event.starts);\n const end = new Date(event.ends);\n const days = this.#countDays(start, end) || 1;\n\n for (let i = 0; i < days; i++) {\n const calendarEvent = this.#newCalendarEvent(customCalendarEvent);\n const eventType = this.eventTypesData?.find((et: CalendarEventTypeData) => et.id === event.type) ?? null;\n const eventOrder = baseOrder + index;\n calendarEvent.eventTypeData = eventType;\n calendarEvent.eventData = event;\n calendarEvent.cssClass = ['is-month-view'];\n calendarEvent.order = eventOrder;\n\n if (i > 0) {\n start.setDate(start.getDate() + 1);\n }\n\n const day = start.getDate();\n const year = start.getFullYear();\n const month = start.getMonth();\n calendarEvent.dateKey = `${year}${month}${day}`;\n const dateCell = this.container?.querySelector(`td[data-year=\"${year}\"][data-month=\"${month}\"][data-day=\"${day}\"]`);\n calendarEvent.disabled = !!dateCell?.classList.contains('is-disabled');\n\n if (dateCell) {\n // multi day events\n if (days > 1) {\n const extraCss = ['all-day'];\n\n if (i === 0) {\n extraCss.push('calendar-event-start');\n } else if (i === days - 1) {\n extraCss.push('calendar-event-ends');\n } else {\n extraCss.push('calendar-event-continue');\n }\n\n calendarEvent.cssClass = extraCss;\n }\n\n const eventYOffset = this.generateYOffset(calendarEvent);\n calendarEvent.setAttribute(attributes.Y_OFFSET, `${eventYOffset}px`);\n // hide overflowing event\n isOverflowing = this.isEventOverflowing(calendarEvent);\n calendarEvent.hidden = isOverflowing;\n dateCell.querySelector('.events-container')?.appendChild(calendarEvent as any);\n\n const container = dateCell.querySelector('.events-container');\n this.triggerEvent('beforeeventrendered', this, {\n detail:\n {\n elem: this,\n events: this.eventsData,\n event: calendarEvent,\n dateCell: calendarEvent,\n container\n },\n bubbles: true\n });\n container?.appendChild(calendarEvent as any);\n this.triggerEvent('aftereventrendered', this, {\n detail:\n {\n elem: this,\n events: this.eventsData,\n event: calendarEvent,\n dateCell: calendarEvent,\n container\n },\n bubbles: true\n });\n }\n }\n });\n\n if (isOverflowing && eventsContainer) {\n this.#renderEventsOverflow(eventsContainer, dateKey);\n }\n }\n\n /**\n * Renders clickable event overflow element\n * Specifies number of calendar events overflowing the container\n * @param {Element} eventsContainer date specific event container elemeent\n * @param {string} dateKey generated date key\n */\n #renderEventsOverflow(eventsContainer: any, dateKey: string): void {\n if (!eventsContainer) return;\n\n const calendarEvents = [...eventsContainer.childNodes];\n const hiddenEvents = calendarEvents.filter((elem: IdsCalendarEvent) => elem.hidden);\n const year = dateKey.substring(0, 4);\n const month = parseInt(dateKey.substring(4, 6)) + 1;\n const day = dateKey.substring(6);\n const date = `${month}/${day}/${year}`;\n const tmpl = `\n <ids-text data-date=\"${date}\" class=\"events-overflow\" font-size=\"12\">\n ${hiddenEvents.length}+ ${this.localeAPI.translate('More')}\n </ids-text>\n `;\n\n eventsContainer.insertAdjacentHTML('beforeend', tmpl);\n }\n\n /**\n * Generates new IdsCalendarEvent\n * @param {IdsCalendarEvent} customCalendarEvent optional custom event to use instead of default\n * @returns {IdsCalendarEvent} calendar event\n */\n #newCalendarEvent(customCalendarEvent?: any): any {\n if (customCalendarEvent?.name === 'MonthViewCalendarEventTemplate') {\n const eventTemplate = customCalendarEvent.assignedNodes()[0];\n if (eventTemplate) {\n this.#isCustom = true;\n return eventTemplate.cloneNode(true);\n }\n }\n return new IdsCalendarEvent();\n }\n\n /**\n * Selects the Month View's current day from a stringified date\n * @param {string} val string representation of a date\n */\n selectDayFromValue(val: string) {\n let usableValue = val;\n if (this.useRange && this.rangeSettings.separator && this.rangeSettings.end) {\n usableValue = removeDateRange(val, this.rangeSettings.separator);\n }\n\n const { month, day, year } = getDateValuesFromString(usableValue);\n this.day = day;\n this.month = month;\n this.year = year;\n\n if (this.useRange) {\n this.selectDay();\n this.#renderRangeSelection();\n } else {\n this.#clearRangeClasses();\n this.selectDay(year, month, day);\n }\n }\n\n /**\n * Function that fires as the day cell is rendered.\n * @returns {Function} the function to call\n */\n public get onDayRender() {\n return this.state.onDayRender;\n }\n\n public set onDayRender(func) {\n this.state.onDayRender = func;\n }\n\n /**\n * Calculates the event Y_OFFSET value to set the event pill top position\n * @param {IdsCalendarEvent} event IdsCalendarEvent\n * @returns {number} yOffset\n */\n generateYOffset(event: IdsCalendarEvent): number {\n return (event.order * 16) + BASE_Y_OFFSET;\n }\n\n /**\n * Checks if the event pills exceed the MAX_EVENT_COUNT in a day cell\n * @param {IdsCalendarEvent} event IdsCalendarEvent\n * @returns {boolean} isEventOverflowing\n */\n isEventOverflowing(event: IdsCalendarEvent): boolean {\n return event.order > MAX_EVENT_COUNT - 1;\n }\n}\n\nexport default IdsMonthView;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAO,yBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
4
+ "sourcesContent": ["export default `.ids-month-view {\n display: flex;\n background-color: var(--ids-calendar-month-view-color-background-default);\n width: 100%;\n box-sizing: border-box;\n flex-direction: column;\n overflow: auto;\n max-width: inherit;\n}\n.ids-month-view .month-view-container {\n background-color: var(--ids-calendar-month-view-color-background-default);\n flex-shrink: 0;\n}\n.ids-month-view .month-view-table-header th {\n background-clip: padding-box;\n height: 30px;\n line-height: 30px;\n text-align: center;\n width: 14.3%;\n}\n.ids-month-view .month-view-table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n}\n.ids-month-view .trigger-icon {\n color: var(--ids-color-blue-60);\n}\n.ids-month-view .month-view-legend {\n margin: 0 auto;\n padding: 10px 5px 0;\n}\n.ids-month-view .month-view-legend-swatch,\n.ids-month-view .month-view-legend-item,\n.ids-month-view .month-view-legend-text {\n display: inline-block;\n}\n.ids-month-view .month-view-legend-item {\n margin-bottom: 2px;\n}\n.ids-month-view .month-view-legend-swatch {\n background-color: var(--legend-color);\n opacity: 0.3;\n width: 16px;\n height: 16px;\n}\n.ids-month-view .month-view-legend-item.event-type .month-view-legend-swatch {\n border-radius: 10px;\n opacity: 1;\n width: 14px;\n height: 14px;\n}\n.ids-month-view .month-view-legend-text {\n position: relative;\n color: var(--ids-calendar-month-view-legend-color-text);\n padding: 0 10px 0 8px;\n top: -2px;\n}\n.ids-month-view .events-container {\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n}\n.ids-month-view .events-container .events-overflow {\n position: absolute;\n bottom: 0;\n cursor: pointer;\n text-indent: 12px;\n}\n.ids-month-view .events-container ids-text::part(text) {\n text-transform: capitalize;\n}\n\n.ids-month-view.is-compact {\n position: relative;\n}\n.ids-month-view.is-compact .month-view-table-header th {\n line-height: unset;\n vertical-align: top;\n height: 22px;\n}\n.ids-month-view.is-compact .month-view-table {\n margin-top: 13px;\n}\n.ids-month-view.is-compact .weekday-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact);\n}\n.ids-month-view.is-compact td {\n width: 44px;\n height: 44px;\n text-align: center;\n}\n.ids-month-view.is-compact td:not(.is-disabled):hover {\n cursor: pointer;\n}\n.ids-month-view.is-compact td .day-container {\n display: inline-block;\n position: relative;\n border-radius: 50%;\n border: 1px solid transparent;\n margin: 5px 0;\n}\n.ids-month-view.is-compact td .day-text {\n display: inline-block;\n position: relative;\n z-index: 2;\n border-radius: 50%;\n margin: 2px;\n color: var(--ids-calendar-month-view-color-text-default);\n white-space: nowrap;\n transition: 0.2s background-color ease;\n}\n.ids-month-view.is-compact td.alternate .day-text {\n color: var(--ids-calendar-month-view-color-text-compact);\n}\n.ids-month-view.is-compact td.is-disabled .day-text {\n background-color: var(--ids-color-neutral-10);\n color: var(--ids-color-neutral-30);\n}\n.ids-month-view.is-compact td.is-disabled.has-legend .day-container::after {\n opacity: 0.4;\n}\n.ids-month-view.is-compact td.is-disabled.has-legend .day-text {\n background-color: transparent;\n}\n.ids-month-view.is-compact td ids-text::part(text) {\n border-radius: 50%;\n box-sizing: border-box;\n width: 35px;\n height: 35px;\n line-height: 35px;\n text-align: center;\n display: inline-block;\n}\n.ids-month-view.is-compact td:hover .day-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact-hover);\n}\n.ids-month-view.is-compact td.ids-disabled:hover .day-text {\n color: var(--ids-color-gray-30);\n}\n.ids-month-view.is-compact td.is-selected .day-text {\n color: var(--ids-calendar-month-view-weekday-color-text-compact-selected-hover);\n background-color: var(--ids-calendar-month-view-day-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.is-selected:focus {\n outline: none;\n outline-style: none;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus ids-text::part(text) {\n width: 31px;\n height: 31px;\n line-height: 31px;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus ids-text {\n margin: 2px;\n}\n.ids-month-view.is-compact td.is-selected:not(.is-disabled):not(.range-selection):focus .day-container {\n border-color: var(--ids-calendar-month-view-day-color-background-compact-selected);\n z-index: 2;\n box-shadow: 0 0 2px 0 var(--ids-calendar-month-view-day-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.is-today:not(.is-selected) .day-text::part(text) {\n border: 1px solid var(--ids-calendar-month-view-today-color-border-compact);\n}\n.ids-month-view.is-compact td:not(.is-disabled):not(.is-selected):not(.has-legend):not(.range-selection):hover .day-text, .ids-month-view.is-compact td:not(.is-disabled):not(.is-selected):not(.has-legend):not(.range-selection):active .day-text {\n background-color: var(--ids-calendar-month-view-day-color-background-compact-hover);\n}\n.ids-month-view.is-compact td.has-legend:not(.is-disabled):hover .day-container::after {\n opacity: 0.7;\n}\n.ids-month-view.is-compact td.has-legend .day-container::after {\n border-radius: 50%;\n position: absolute;\n content: \"\";\n background-color: var(--legend-color);\n display: inline-block;\n width: 35px;\n height: 35px;\n overflow: hidden;\n opacity: 0.3;\n transition: 0.2s opacity ease;\n inset: 0;\n margin: auto;\n}\n.ids-month-view.is-compact td.range-selection + .range-selection, .ids-month-view.is-compact td.range-next:not(:first-of-type), .ids-month-view.is-compact td.range-prev:not(:last-of-type) {\n position: relative;\n}\n.ids-month-view.is-compact td.range-selection + .range-selection::before, .ids-month-view.is-compact td.range-next:not(:first-of-type)::before, .ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n position: absolute;\n width: 100%;\n z-index: 1;\n content: \"\";\n display: inline-block;\n height: 35px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n}\n.ids-month-view.is-compact td.is-disabled.range-selection.not-included + .range-selection::before, .ids-month-view.is-compact td.is-disabled.range-prev.not-included::before {\n content: none;\n}\n.ids-month-view.is-compact td:not(.is-disabled.not-included).range-prev .day-text, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-next .day-text, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-next:not(:first-of-type)::before, .ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n background-color: var(--ids-calendar-month-view-range-color-background-compact);\n}\n.ids-month-view.is-compact td.range-selection:not(:first-of-type)::before, .ids-month-view.is-compact td:not(.is-disabled.not-included).range-selection .day-text {\n background-color: var(--ids-calendar-month-view-range-color-background-compact-selected);\n}\n.ids-month-view.is-compact td.range-selection:not(.alternate):not(.is-disabled.not-included) .day-text {\n color: var(--ids-calendar-month-view-range-color-text-compact-selected);\n}\n.ids-month-view.is-compact td.range-selection:not(:first-of-type)::before, .ids-month-view.is-compact td.range-next:not(:first-of-type)::before {\n inset-inline-end: 50%;\n}\n.ids-month-view.is-compact td.range-prev:not(:last-of-type)::before {\n inset-inline-end: -50%;\n}\n.ids-month-view.is-compact td.range-selection .day-text, .ids-month-view.is-compact td.range-prev .day-text, .ids-month-view.is-compact td.range-next .day-text {\n border-radius: 50%;\n z-index: 2;\n transition: none;\n}\n.ids-month-view.is-compact th,\n.ids-month-view.is-compact td {\n padding: 0;\n}\n.ids-month-view.is-compact.range-select-week td .day-text {\n transition: none;\n}\n.ids-month-view.is-compact .btn-today {\n margin-right: -7px;\n}\n.ids-month-view.is-compact .btn-today::part(button) {\n padding-inline: 4px;\n padding-block: 2px;\n margin: 3px;\n}\n.ids-month-view.is-compact .btn-previous,\n.ids-month-view.is-compact .btn-next {\n padding-inline-start: 0;\n margin: 3px;\n}\n.ids-month-view.is-compact .btn-previous::part(button),\n.ids-month-view.is-compact .btn-next::part(button) {\n padding: 0;\n width: 38px;\n height: 38px;\n}\n.ids-month-view.is-compact .month-view-legend {\n padding-top: 27px;\n max-width: 300px;\n}\n.ids-month-view.is-compact .week-num-cell {\n border-inline-end: 1px solid var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-compact .week-num-cell ids-text {\n color: var(--ids-month-view-week-number-text-color);\n cursor: default;\n}\n\n.ids-month-view.is-fullsize {\n border-style: solid;\n border-width: 1px 1px 0;\n border-color: var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-fullsize .weekday-text {\n color: var(--ids-calendar-month-view-weekday-color-text);\n}\n.ids-month-view.is-fullsize.is-disabled.has-legend {\n opacity: 0.4;\n background-color: transparent;\n}\n.ids-month-view.is-fullsize .day-text {\n color: var(--ids-calendar-month-view-color-text-default);\n}\n.ids-month-view.is-fullsize td {\n border-style: solid;\n border-width: 0 1px 1px;\n position: relative;\n transition: 0.1s background-color ease-out;\n height: 99px;\n width: 14.3%;\n overflow: hidden;\n user-select: none;\n}\n.ids-month-view.is-fullsize td:last-child {\n border-right: 0;\n}\n.ids-month-view.is-fullsize td:first-child {\n border-left: 0;\n}\n.ids-month-view.is-fullsize td:not(.is-selected):not(.has-legend):not(.is-disabled):hover, .ids-month-view.is-fullsize td:not(.is-selected):not(.has-legend):not(.is-disabled):active {\n background-color: var(--ids-calendar-month-view-color-background-hover);\n}\n.ids-month-view.is-fullsize td.is-disabled {\n opacity: 0.5;\n background-color: var(--ids-calendar-month-view-color-background-disabled);\n}\n.ids-month-view.is-fullsize td.is-disabled.has-legend::after {\n opacity: 0.4;\n}\n.ids-month-view.is-fullsize td.is-selected:not(.has-legend) {\n background-color: var(--ids-calendar-month-view-color-background-selected);\n}\n.ids-month-view.is-fullsize td.is-selected {\n box-shadow: inset 0 5px 0 0 var(--ids-calendar-month-view-color-selected);\n}\n.ids-month-view.is-fullsize td.is-selected:focus {\n outline: none;\n}\n.ids-month-view.is-fullsize td.has-legend::after {\n position: absolute;\n width: 100%;\n background-color: var(--legend-color);\n content: \"\";\n inset: 0;\n opacity: 0.3;\n}\n.ids-month-view.is-fullsize td.has-legend.is-selected::after {\n top: 5px;\n}\n.ids-month-view.is-fullsize td.has-legend:hover::after {\n opacity: 0.7;\n}\n.ids-month-view.is-fullsize td.alternate .day-text {\n color: var(--ids-calendar-month-view-color-text-alternate);\n}\n.ids-month-view.is-fullsize td .day-text {\n position: absolute;\n cursor: pointer;\n z-index: 1;\n left: calc(100% - 25px);\n top: var(--ids-month-view-day-text-top, 13px);\n width: 10px;\n text-align: center;\n}\n.ids-month-view.is-fullsize td.month-label .day-text {\n left: auto;\n width: 100%;\n text-align: right;\n}\n.ids-month-view.is-fullsize td.month-label ids-text::part(text) {\n font-weight: 600;\n padding-right: 10px;\n}\n.ids-month-view.is-fullsize th,\n.ids-month-view.is-fullsize td {\n padding: 0;\n border-bottom: 1px solid;\n border-color: var(--ids-calendar-month-view-color-border);\n}\n.ids-month-view.is-fullsize.has-legend .month-view-container {\n border-bottom: 1px solid var(--ids-calendar-month-view-color-border);\n}\n\n.ids-month-view.is-date-picker {\n overflow: visible;\n}\n.ids-month-view.is-date-picker .month-view-container {\n padding-left: 10px;\n padding-right: 10px;\n}\n.ids-month-view.is-date-picker td .day-container {\n margin: 0;\n}\n.ids-month-view.is-date-picker ids-date-picker {\n margin-left: 12px;\n}\n\n.ids-month-view.is-date-picker .month-view-legend,\n.ids-month-view.is-fullsize .month-view-legend {\n text-align: center;\n}\n\n.month-view-legend-item.event-type .month-view-legend-swatch {\n border-radius: 10px;\n opacity: 1;\n}\n\nids-toolbar ids-menu-button[menu=view-picker] {\n margin-inline-end: 8px;\n}\n\n:host([dir=rtl]) .ids-month-view.is-fullsize td .day-text {\n left: unset;\n right: calc(100% - 25px);\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td.month-label .day-text {\n right: auto;\n text-align: left;\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td.month-label ids-text::part(text) {\n padding-right: unset;\n padding-left: 10px;\n}\n:host([dir=rtl]) .ids-month-view.is-fullsize td:last-child {\n border-left: 0;\n}\n:host([dir=rtl]) .ids-month-view.is-date-picker ids-date-picker {\n margin-left: 0;\n margin-right: 12px;\n}\n:host([dir=rtl]) .ids-month-view.is-date-picker .btn-today {\n margin-right: 0;\n margin-left: -7px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2J1aWxkcy9pbmZvci1kZXNpZ24vZW50ZXJwcmlzZS13Yy9zcmMvY29tcG9uZW50cy9pZHMtbW9udGgtdmlldyIsInNvdXJjZXMiOlsiaWRzLW1vbnRoLXZpZXcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFJRjtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBR0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUFNTjtFQUNFOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFO0VBQ0E7O0FBSUE7RUFDRTs7QUFHRjtFQUNFOztBQUtOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDRTs7QUFLRjtFQUNFOztBQUtGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBSUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFLTjtFQUNFOztBQUdGO0VBRUU7O0FBS0E7RUFDRTs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUdFOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUY7RUFDRTs7QUFJSjtFQUlFOztBQUdGO0VBRUU7O0FBR0Y7RUFDRTs7QUFHRjtFQUVFOztBQUdGO0VBQ0U7O0FBR0Y7RUFHRTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0VBRUU7RUFDQTs7QUFFQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUlKO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7O0FBTU47RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBVUE7RUFDQTtFQUNBO0VBQ0E7O0FBWEE7RUFDRTs7QUFHRjtFQUNFOztBQVFGO0VBRUU7O0FBR0Y7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBSUo7RUFDRTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBSUo7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7QUFJRjtFQUNFOzs7QUFLSjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7OztBQU9GO0FBQUE7RUFDRTs7O0FBS0o7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFPSTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUtGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIuaWRzLW1vbnRoLXZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLWRlZmF1bHQpO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC13aWR0aDogaW5oZXJpdDtcblxuICAubW9udGgtdmlldy1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cblxuICAubW9udGgtdmlldy10YWJsZS1oZWFkZXIge1xuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxNC4zJTtcbiAgICB9XG4gIH1cblxuICAubW9udGgtdmlldy10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC50cmlnZ2VyLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY29sb3ItYmx1ZS02MCk7XG4gIH1cblxuICAvLyBMZWdlbmQgbXV0dWFsXG4gIC5tb250aC12aWV3LWxlZ2VuZCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCA1cHggMDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gsXG4gIC5tb250aC12aWV3LWxlZ2VuZC1pdGVtLFxuICAubW9udGgtdmlldy1sZWdlbmQtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLm1vbnRoLXZpZXctbGVnZW5kLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxlZ2VuZC1jb2xvcik7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC1pdGVtLmV2ZW50LXR5cGUgLm1vbnRoLXZpZXctbGVnZW5kLXN3YXRjaCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZC10ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWxlZ2VuZC1jb2xvci10ZXh0KTtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCA4cHg7XG4gICAgdG9wOiAtMnB4O1xuICB9XG5cbiAgLmV2ZW50cy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuXG4gICAgLmV2ZW50cy1vdmVyZmxvdyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWluZGVudDogMTJweDtcbiAgICB9XG5cbiAgICBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ29tcGFjdCB2aWV3XG4uaWRzLW1vbnRoLXZpZXcuaXMtY29tcGFjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAubW9udGgtdmlldy10YWJsZS1oZWFkZXIgdGgge1xuICAgIGxpbmUtaGVpZ2h0OiB1bnNldDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGhlaWdodDogMjJweDtcbiAgfVxuXG4gIC5tb250aC12aWV3LXRhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAxM3B4O1xuICB9XG5cbiAgLndlZWtkYXktdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0KTtcbiAgfVxuXG4gIHRkIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjpub3QoLmlzLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLmRheS1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW46IDVweCAwO1xuICAgIH1cblxuICAgIC5kYXktdGV4dCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luOiAycHg7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItdGV4dC1kZWZhdWx0KTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIGJhY2tncm91bmQtY29sb3IgZWFzZTtcbiAgICB9XG5cbiAgICAmLmFsdGVybmF0ZSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLXRleHQtY29tcGFjdCk7XG4gICAgfVxuXG4gICAgJi5pcy1kaXNhYmxlZCB7XG4gICAgICAuZGF5LXRleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItbmV1dHJhbC0xMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pZHMtY29sb3ItbmV1dHJhbC0zMCk7XG4gICAgICB9XG5cbiAgICAgICYuaGFzLWxlZ2VuZCB7XG4gICAgICAgIC5kYXktY29udGFpbmVyOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlkcy10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICAgIGhlaWdodDogMzVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0LWhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlkcy1kaXNhYmxlZDpob3ZlciB7XG4gICAgICAuZGF5LXRleHQge1xuICAgICAgICBjb2xvcjogdmFyKC0taWRzLWNvbG9yLWdyYXktMzApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXdlZWtkYXktY29sb3ItdGV4dC1jb21wYWN0LXNlbGVjdGVkLWhvdmVyKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctZGF5LWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdXRsaW5lLXN0eWxlOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCgucmFuZ2Utc2VsZWN0aW9uKTpmb2N1cyB7XG4gICAgICAgIGlkcy10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgICAgICB3aWR0aDogMzFweDtcbiAgICAgICAgICBoZWlnaHQ6IDMxcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMxcHg7XG4gICAgICAgIH1cblxuICAgICAgICBpZHMtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGF5LWNvbnRhaW5lciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1kYXktY29sb3ItYmFja2dyb3VuZC1jb21wYWN0LXNlbGVjdGVkKTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggMCB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1kYXktY29sb3ItYmFja2dyb3VuZC1jb21wYWN0LXNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtdG9kYXk6bm90KC5pcy1zZWxlY3RlZCkgLmRheS10ZXh0OjpwYXJ0KHRleHQpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXRvZGF5LWNvbG9yLWJvcmRlci1jb21wYWN0KTtcbiAgICB9XG5cbiAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5yYW5nZS1zZWxlY3Rpb24pOmhvdmVyIC5kYXktdGV4dCxcbiAgICAmOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5yYW5nZS1zZWxlY3Rpb24pOmFjdGl2ZSAuZGF5LXRleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctZGF5LWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1ob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gTGVnZW5kIGluIGNvbXBhY3QgbW9kZVxuICAgICYuaGFzLWxlZ2VuZDpub3QoLmlzLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAuZGF5LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5oYXMtbGVnZW5kIC5kYXktY29udGFpbmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sZWdlbmQtY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBvcGFjaXR5IGVhc2U7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmFuZ2Ugc2VsZWN0aW9uXG4gICAgJi5yYW5nZS1zZWxlY3Rpb24gKyAucmFuZ2Utc2VsZWN0aW9uLFxuICAgICYucmFuZ2UtbmV4dDpub3QoOmZpcnN0LW9mLXR5cGUpLFxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZGlzYWJsZWQucmFuZ2Utc2VsZWN0aW9uLm5vdC1pbmNsdWRlZCArIC5yYW5nZS1zZWxlY3Rpb24sXG4gICAgJi5pcy1kaXNhYmxlZC5yYW5nZS1wcmV2Lm5vdC1pbmNsdWRlZCB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLXByZXYgLmRheS10ZXh0LFxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLW5leHQgLmRheS10ZXh0LFxuICAgICY6bm90KC5pcy1kaXNhYmxlZC5ub3QtaW5jbHVkZWQpLnJhbmdlLW5leHQ6bm90KDpmaXJzdC1vZi10eXBlKTo6YmVmb3JlLFxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1yYW5nZS1jb2xvci1iYWNrZ3JvdW5kLWNvbXBhY3QpO1xuICAgIH1cblxuICAgICYucmFuZ2Utc2VsZWN0aW9uOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6OmJlZm9yZSxcbiAgICAmOm5vdCguaXMtZGlzYWJsZWQubm90LWluY2x1ZGVkKS5yYW5nZS1zZWxlY3Rpb24gLmRheS10ZXh0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXJhbmdlLWNvbG9yLWJhY2tncm91bmQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgJi5yYW5nZS1zZWxlY3Rpb246bm90KC5hbHRlcm5hdGUpOm5vdCguaXMtZGlzYWJsZWQubm90LWluY2x1ZGVkKSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LXJhbmdlLWNvbG9yLXRleHQtY29tcGFjdC1zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgJi5yYW5nZS1zZWxlY3Rpb246bm90KDpmaXJzdC1vZi10eXBlKTo6YmVmb3JlLFxuICAgICYucmFuZ2UtbmV4dDpub3QoOmZpcnN0LW9mLXR5cGUpOjpiZWZvcmUge1xuICAgICAgaW5zZXQtaW5saW5lLWVuZDogNTAlO1xuICAgIH1cblxuICAgICYucmFuZ2UtcHJldjpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gICAgICBpbnNldC1pbmxpbmUtZW5kOiAtNTAlO1xuICAgIH1cblxuICAgICYucmFuZ2Utc2VsZWN0aW9uIC5kYXktdGV4dCxcbiAgICAmLnJhbmdlLXByZXYgLmRheS10ZXh0LFxuICAgICYucmFuZ2UtbmV4dCAuZGF5LXRleHQge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi5yYW5nZS1zZWxlY3Qtd2VlayB0ZCAuZGF5LXRleHQge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAuYnRuLXRvZGF5IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC03cHg7XG5cbiAgICAmOjpwYXJ0KGJ1dHRvbikge1xuICAgICAgcGFkZGluZy1pbmxpbmU6IDRweDtcbiAgICAgIHBhZGRpbmctYmxvY2s6IDJweDtcbiAgICAgIG1hcmdpbjogM3B4O1xuICAgIH1cbiAgfVxuXG4gIC5idG4tcHJldmlvdXMsXG4gIC5idG4tbmV4dCB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgbWFyZ2luOiAzcHg7XG5cbiAgICAmOjpwYXJ0KGJ1dHRvbikge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHdpZHRoOiAzOHB4O1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb250aC12aWV3LWxlZ2VuZCB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxuXG4gIC53ZWVrLW51bS1jZWxsIHtcbiAgICBib3JkZXItaW5saW5lLWVuZDogMXB4IHNvbGlkIHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJvcmRlcik7XG5cbiAgICBpZHMtdGV4dCB7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLW1vbnRoLXZpZXctd2Vlay1udW1iZXItdGV4dC1jb2xvcik7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEZ1bGwgc2l6ZSB2aWV3XG4uaWRzLW1vbnRoLXZpZXcuaXMtZnVsbHNpemUge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweCAxcHggMDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1ib3JkZXIpO1xuXG4gIC53ZWVrZGF5LXRleHQge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy13ZWVrZGF5LWNvbG9yLXRleHQpO1xuICB9XG5cbiAgJi5pcy1kaXNhYmxlZC5oYXMtbGVnZW5kIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAuZGF5LXRleHQge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci10ZXh0LWRlZmF1bHQpO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IDAuMXMgYmFja2dyb3VuZC1jb2xvciBlYXNlLW91dDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG5cbiAgICBoZWlnaHQ6IDk5cHg7XG4gICAgd2lkdGg6IDE0LjMlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAmOm5vdCguaXMtc2VsZWN0ZWQpOm5vdCguaGFzLWxlZ2VuZCk6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJjpub3QoLmlzLXNlbGVjdGVkKTpub3QoLmhhcy1sZWdlbmQpOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQpO1xuXG4gICAgICAmLmhhcy1sZWdlbmQ6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQ6bm90KC5oYXMtbGVnZW5kKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1iYWNrZ3JvdW5kLXNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgNXB4IDAgMCB2YXIoLS1pZHMtY2FsZW5kYXItbW9udGgtdmlldy1jb2xvci1zZWxlY3RlZCk7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaGFzLWxlZ2VuZCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxlZ2VuZC1jb2xvcik7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgfVxuXG4gICAgICAmLmlzLXNlbGVjdGVkOjphZnRlciB7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsdGVybmF0ZSAuZGF5LXRleHQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1jYWxlbmRhci1tb250aC12aWV3LWNvbG9yLXRleHQtYWx0ZXJuYXRlKTtcbiAgICB9XG5cbiAgICAuZGF5LXRleHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDI1cHgpO1xuICAgICAgdG9wOiB2YXIoLS1pZHMtbW9udGgtdmlldy1kYXktdGV4dC10b3AsIDEzcHgpO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5tb250aC1sYWJlbCAuZGF5LXRleHQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgJi5tb250aC1sYWJlbCBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICB9XG4gIH1cblxuICB0aCxcbiAgdGQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItYm9yZGVyKTtcbiAgfVxuXG4gIC8vIExlZ2VuZCBpbiBmdWxsIHNpemUgbW9kZVxuICAmLmhhcy1sZWdlbmQgLm1vbnRoLXZpZXctY29udGFpbmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0taWRzLWNhbGVuZGFyLW1vbnRoLXZpZXctY29sb3ItYm9yZGVyKTtcbiAgfVxufVxuXG4vLyBVc2VkIGluIGEgZGF5IHBpY2tlclxuLmlkcy1tb250aC12aWV3LmlzLWRhdGUtcGlja2VyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgLm1vbnRoLXZpZXctY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgfVxuXG4gIHRkIC5kYXktY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBpZHMtZGF0ZS1waWNrZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICB9XG59XG5cbi8vIExlZ2VuZCBmb3IgZnVsbCBzaXplIHZpZXcgYW5kIGlmIGl0J3MgaW4gYSBkYXRlcGlja2VyXG4uaWRzLW1vbnRoLXZpZXcuaXMtZGF0ZS1waWNrZXIsXG4uaWRzLW1vbnRoLXZpZXcuaXMtZnVsbHNpemUge1xuICAubW9udGgtdmlldy1sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4vLyBMZWdlbmQgZm9yIG1vbnRoXG4ubW9udGgtdmlldy1sZWdlbmQtaXRlbS5ldmVudC10eXBlIC5tb250aC12aWV3LWxlZ2VuZC1zd2F0Y2gge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBvcGFjaXR5OiAxO1xufVxuXG5pZHMtdG9vbGJhciBpZHMtbWVudS1idXR0b25bbWVudT0ndmlldy1waWNrZXInXSB7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XG59XG5cbi8vIFRleHQgZGlyZWN0aW9uXG46aG9zdChbZGlyPSdydGwnXSkge1xuICAuaWRzLW1vbnRoLXZpZXcge1xuICAgICYuaXMtZnVsbHNpemUgdGQge1xuICAgICAgLmRheS10ZXh0IHtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgLSAyNXB4KTtcbiAgICAgIH1cblxuICAgICAgJi5tb250aC1sYWJlbCAuZGF5LXRleHQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi5tb250aC1sYWJlbCBpZHMtdGV4dDo6cGFydCh0ZXh0KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtZGF0ZS1waWNrZXIge1xuICAgICAgaWRzLWRhdGUtcGlja2VyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmJ0bi10b2RheSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC03cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */`;\n", "import { customElement, scss } from '../../core/ids-decorators';\nimport { attributes } from '../../core/ids-attributes';\n\nimport IdsEventsMixin from '../../mixins/ids-events-mixin/ids-events-mixin';\nimport IdsDateAttributeMixin from '../../mixins/ids-date-attribute-mixin/ids-date-attribute-mixin';\nimport IdsLocaleMixin from '../../mixins/ids-locale-mixin/ids-locale-mixin';\nimport IdsCalendarEventsMixin from '../../mixins/ids-calendar-events-mixin/ids-calendar-events-mixin';\nimport IdsElement from '../../core/ids-element';\nimport IdsMonthViewAttributeMixin from './ids-month-view-attribute-mixin';\n\n// Import Utils\nimport {\n addDate,\n daysDiff,\n daysInMonth,\n firstDayOfMonthDate,\n firstDayOfWeekDate,\n gregorianToUmalqura,\n isValidDate,\n lastDayOfMonthDate,\n subtractDate,\n umalquraToGregorian,\n weeksInMonth,\n weeksInRange,\n removeDateRange,\n weekNumber\n} from '../../utils/ids-date-utils/ids-date-utils';\nimport {\n stringToBool,\n stringToNumber,\n buildClassAttrib,\n} from '../../utils/ids-string-utils/ids-string-utils';\n\n// Supporting components\nimport '../ids-button/ids-button';\nimport '../ids-icon/ids-icon';\nimport '../ids-text/ids-text';\nimport '../ids-trigger-field/ids-trigger-button';\n\n// Import Styles\nimport styles from './ids-month-view.scss';\nimport IdsCalendarEvent, { CalendarEventData, CalendarEventTypeData } from '../ids-calendar/ids-calendar-event';\nimport { getDateValuesFromString } from '../ids-date-picker/ids-date-picker-common';\n\nimport type {\n IdsRangeSettings,\n IdsDisableSettings,\n IdsLegendSettings,\n} from './ids-month-view-common';\nimport {\n BASE_Y_OFFSET,\n MIN_MONTH,\n MAX_MONTH,\n MAX_EVENT_COUNT,\n WEEK_LENGTH,\n IdsRangeSettingsInterface\n} from './ids-month-view-common';\n\nexport type IdsDayselectedEvent = CustomEventInit & {\n detail: {\n elem: IdsMonthView,\n date: Date,\n useRange: boolean,\n rangeStart: Date | null,\n rangeEnd: Date | null,\n events?: CalendarEventData[]\n },\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n};\n\nconst Base = IdsMonthViewAttributeMixin(\n IdsDateAttributeMixin(\n IdsCalendarEventsMixin(\n IdsLocaleMixin(\n IdsEventsMixin(\n IdsElement\n )\n )\n )\n )\n);\n\n/**\n * IDS Month View Component\n * @type {IdsMonthView}\n * @inherits IdsElement\n * @mixes IdsLocaleMixin\n * @mixes IdsEventsMixin\n * @mixes IdsCalendarEventsMixin\n * @part container - the container of the component\n * @part table-container - the container of the calendar table\n */\n@customElement('ids-month-view')\n@scss(styles)\nclass IdsMonthView extends Base implements IdsRangeSettingsInterface {\n #lastRenderedYear = NaN;\n\n #lastRenderedDay = NaN;\n\n #lastRenderedMonth = NaN;\n\n #lastRenderedFirstDayOfWeek = NaN;\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.#attachEventHandlers();\n this.#attachKeyboardListeners();\n this.#renderMonth();\n }\n\n // Flag value for custom calendar event\n #isCustom = false;\n\n /**\n * Return the attributes we handle as getters/setters\n * @returns {Array} The attributes in an array\n */\n static get attributes(): Array<string> {\n return [\n ...super.attributes,\n attributes.COMPACT,\n attributes.END_DATE,\n attributes.FIRST_DAY_OF_WEEK,\n attributes.IS_DATEPICKER,\n attributes.SHOW_PICKLIST_MONTH,\n attributes.SHOW_PICKLIST_WEEK,\n attributes.SHOW_PICKLIST_YEAR,\n attributes.SHOW_TODAY,\n attributes.START_DATE,\n ];\n }\n\n /**\n * Inner template contents\n * @returns {string} The template\n */\n template(): string {\n return `<div class=\"ids-month-view ${this.compact ? 'is-compact' : 'is-fullsize'}${this.isDatePicker ? ' is-date-picker' : ''}\" part=\"container\">\n <div class=\"month-view-container\" part=\"table-container\">\n <table class=\"month-view-table\" aria-label=\"${this.localeAPI?.translate('Calendar')}\" role=\"application\">\n <thead class=\"month-view-table-header\">\n <tr></tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n </div>`;\n }\n\n /**\n * Establish internal event handlers\n * @returns {void}\n */\n #attachEventHandlers() {\n // Day select event\n this.offEvent('click.month-view-dayselect');\n this.onEvent('click.month-view-dayselect', this.container?.querySelector('tbody'), (e: MouseEvent) => {\n // ignore clicks from week number column\n if ((e.target as HTMLElement)?.classList.contains('week-num-text')) {\n e.stopImmediatePropagation();\n e.stopPropagation();\n return;\n }\n\n this.#daySelectClick((e.target as HTMLElement).closest('td'));\n });\n\n // Range selection event\n this.offEvent('mouseover.month-view-range');\n this.onEvent('mouseover.month-view-range', this.container?.querySelector('tbody'), (e: MouseEvent) => {\n const element = (e.target as HTMLElement).closest('td');\n\n if (!element) return;\n\n const { year, month, day } = element.dataset;\n\n this.#rangePropagation(year, month, day);\n });\n\n // Clear range selection when hover outside\n this.offEvent('mouseleave.month-view-range');\n this.onEvent('mouseleave.month-view-range', this.container?.querySelector('tbody'), () => {\n this.container?.querySelectorAll('td')\n .forEach((item: HTMLElement) => item.classList.remove('range-next', 'range-prev'));\n });\n\n // Events Overflow click event\n this.onEvent('click.overflow', this.container, (evt: any) => {\n if (evt.target.tagName === 'IDS-TEXT' && evt.target.classList.contains('events-overflow')) {\n evt.stopPropagation();\n const date = new Date(evt.target.getAttribute('data-date'));\n this.triggerEvent('overflow-click', this, {\n detail: { date },\n bubbles: true,\n cancelable: true,\n composed: true\n });\n }\n });\n\n return this;\n }\n\n onLanguageChange = () => {\n this.#renderMonth();\n };\n\n onLocaleChange = () => {\n this.#renderMonth();\n };\n\n /**\n * Establish Internal Keyboard shortcuts\n * @returns {object} this class-instance object for chaining\n */\n #attachKeyboardListeners(): any {\n // Group key codes to stop keyboard event, trigger dayselected event and focus active day\n const keys = [33, 34, 35, 36, 37, 38, 39, 40, 187, 189];\n\n // Range calendar doesn't have keyboard shortcuts\n if (this.#isDisplayRange()) {\n this.offEvent('keydown.month-view-keyboard');\n } else {\n this.offEvent('keydown.month-view-keyboard');\n this.onEvent('keydown.month-view-keyboard', this.container?.querySelector('.month-view-table'), (e: KeyboardEvent) => {\n const key = e.keyCode;\n\n if (keys.includes(key)) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n // When range selection is started\n if (this.useRange) {\n if (this.rangeSettings.start) {\n // Escape resets range selection\n if (key === 27) {\n this.rangeSettings.start = null;\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n this.focus();\n }\n\n // Arrow Up includes range start and same day previous week\n if (key === 38) {\n this.changeDate('previous-week', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Down includes range start and same day next week\n if (key === 40) {\n this.changeDate('next-week', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Right or + key includes next day to range selection\n if (key === 39 || (key === 187 && e.shiftKey)) {\n this.changeDate('next-day', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Arrow Left or - key includes previous day to range selection\n if (key === 37 || (key === 189 && !e.shiftKey)) {\n this.changeDate('previous-day', true);\n this.#rangePropagation(this.year, this.month, this.day);\n }\n\n // Enter or space key completes range selection if started\n if (key === 13 || key === 32) {\n this.#setRangeSelection(this.year, this.month, this.day);\n this.#triggerSelectedEvent();\n }\n\n this.focus();\n\n return;\n }\n\n // Enter or space key starts range selection\n if (key === 13 || key === 32) {\n if (this.rangeSettings.selectWeek) {\n this.#rangeSelectWeek(this.year, this.month, this.day);\n this.#triggerSelectedEvent();\n } else {\n this.#setRangeSelection(this.year, this.month, this.day);\n this.focus();\n }\n }\n }\n\n // Arrow Up selects same day previous week\n if (key === 38) {\n this.changeDate('previous-week');\n }\n\n // Arrow Down selects same day next week\n if (key === 40) {\n this.changeDate('next-week');\n }\n\n // Arrow Right or + key selects next day\n if (key === 39 || (key === 187 && e.shiftKey)) {\n this.changeDate('next-day');\n }\n\n // Arrow Left or - key selects previous day\n if (key === 37 || (key === 189 && !e.shiftKey)) {\n this.changeDate('previous-day');\n }\n\n // Page Up selects same day previous month\n if (key === 33 && !e.altKey && !(e.ctrlKey || e.metaKey)) {\n this.changeDate('previous-month');\n }\n\n // Page Down selects same day next month\n if (key === 34 && !e.altKey && !(e.ctrlKey || e.metaKey)) {\n this.changeDate('next-month');\n }\n\n // ctrl + Page Up selects same day previous year\n if (key === 33 && (e.ctrlKey || e.metaKey)) {\n this.changeDate('previous-year');\n }\n\n // ctrl + Page Down selects same day next year\n if (key === 34 && (e.ctrlKey || e.metaKey)) {\n this.changeDate('next-year');\n }\n\n // Home moves to start of the month\n if (key === 36) {\n this.changeDate('start-month');\n }\n\n // End moves to end of the month\n if (key === 35) {\n this.changeDate('end-month');\n }\n\n // 't' selects today\n if (key === 84) {\n this.changeDate('today');\n }\n\n // Add keys including Enter or Space triggers dayselected event in regular calendar\n if (((keys.includes(key) || key === 84) && !this.isDatePicker) || (key === 32 || key === 13)) {\n this.#triggerSelectedEvent();\n }\n\n if (keys.includes(key) || key === 84) {\n if (this.isDatePicker) {\n this.selectDay(this.year, this.month, this.day);\n }\n this.focus();\n }\n });\n }\n\n return this;\n }\n\n /**\n * Add/remove legend HTML to the container\n */\n #renderLegend(): void {\n const template = (this.legend && this.legend.length > 0) ? `\n <div class=\"month-view-legend\">\n ${this.legend.map((item: any) => `\n <div class=\"month-view-legend-item ${item.cssClass || ''}\">\n <span class=\"month-view-legend-swatch\" data-color=\"${item.color}\"></span>\n <ids-text class=\"month-view-legend-text\" ${item.fontSize ? `font-size=\"${item.fontSize}\"` : ''}>${item.name}</ids-text>\n </div>\n `).join('')}\n </div>\n ` : '';\n\n // Clear/add HTML\n this.container?.querySelector('.month-view-legend')?.remove();\n this.container?.querySelector('.month-view-container')?.insertAdjacentHTML('beforeend', template);\n\n this.#colorToVar();\n }\n\n /**\n * Change month/year/day by event type\n * @param {string} type of event to be called\n * @param {boolean} limitMonth date changing is limited only to the current month\n */\n changeDate(type: string, limitMonth = false): void {\n if (type === 'next-month') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const year = umalqura.month === MAX_MONTH ? umalqura.year + 1 : umalqura.year;\n const month = umalqura.month === MAX_MONTH ? MIN_MONTH : umalqura.month + 1;\n const gregorian = umalquraToGregorian(year, month, umalqura.day === 30 ? 1 : umalqura.day);\n\n this.day = gregorian.getDate();\n this.year = gregorian.getFullYear();\n this.month = gregorian.getMonth();\n } else {\n this.year = this.month === MAX_MONTH ? this.year + 1 : this.year;\n this.month = this.month === MAX_MONTH ? MIN_MONTH : this.month + 1;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'previous-month') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const year = umalqura.month === MIN_MONTH ? umalqura.year - 1 : umalqura.year;\n const month = umalqura.month === MIN_MONTH ? MAX_MONTH : umalqura.month - 1;\n const gregorian = umalquraToGregorian(year, month, umalqura.day === 30 ? 1 : umalqura.day);\n\n this.day = gregorian.getDate();\n this.year = gregorian.getFullYear();\n this.month = gregorian.getMonth();\n } else {\n this.year = this.month === MIN_MONTH ? this.year - 1 : this.year;\n this.month = this.month === MIN_MONTH ? MAX_MONTH : this.month - 1;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'next-day') {\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (lastDayOfMonth.getDate() === this.day && limitMonth) return;\n\n if (this.localeAPI?.isIslamic()) {\n const nextDate = addDate(this.activeDate, 1, 'days');\n\n this.day = nextDate.getDate();\n this.year = nextDate.getFullYear();\n this.month = nextDate.getMonth();\n\n return;\n }\n\n // Next month/year with rerender\n if (lastDayOfMonth.getDate() === this.day) {\n const nextDate = addDate(lastDayOfMonth, 1, 'days');\n\n this.year = nextDate.getFullYear();\n this.month = nextDate.getMonth();\n this.day = nextDate.getDate();\n } else {\n // Just increase day without rerender\n this.day += 1;\n }\n }\n\n if (type === 'previous-day') {\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (firstDayOfMonth.getDate() === this.day && limitMonth) return;\n\n if (this.localeAPI?.isIslamic()) {\n const prevDate = subtractDate(this.activeDate, 1, 'days');\n\n this.day = prevDate.getDate();\n this.year = prevDate.getFullYear();\n this.month = prevDate.getMonth();\n\n return;\n }\n\n // Previous month/year with rerender\n if (firstDayOfMonth.getDate() === this.day) {\n const prevDate = subtractDate(firstDayOfMonth, 1, 'days');\n\n this.year = prevDate.getFullYear();\n this.month = prevDate.getMonth();\n this.day = prevDate.getDate();\n } else {\n // Just decrease day without rerender\n this.day -= 1;\n }\n }\n\n if (type === 'next-year') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const gregorian = umalquraToGregorian(\n umalqura.year + 1,\n umalqura.month,\n umalqura.day === 30 ? 1 : umalqura.day\n );\n\n this.day = gregorian.getDate();\n this.month = gregorian.getMonth();\n this.year = gregorian.getFullYear();\n } else {\n const y = this.year + 1;\n this.year = y;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'previous-year') {\n if (this.localeAPI?.isIslamic()) {\n const umalqura = gregorianToUmalqura(this.activeDate);\n const gregorian = umalquraToGregorian(\n umalqura.year - 1,\n umalqura.month,\n umalqura.day === 30 ? 1 : umalqura.day\n );\n\n this.day = gregorian.getDate();\n this.month = gregorian.getMonth();\n this.year = gregorian.getFullYear();\n } else {\n const y = this.year - 1;\n this.year = y;\n this.day = this.#getDayInMonth(this.day);\n }\n }\n\n if (type === 'today') {\n const now = new Date();\n\n this.day = now.getDate();\n this.year = now.getFullYear();\n this.month = now.getMonth();\n\n if (this.useRange) {\n this.rangeSettings.start = now.getTime();\n this.rangeSettings.end = now.getTime();\n }\n this.focus();\n }\n\n if (type === 'next-week') {\n const nextWeek = addDate(this.activeDate, WEEK_LENGTH, 'days');\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (nextWeek > lastDayOfMonth && limitMonth) return;\n\n this.day = nextWeek.getDate();\n\n if (nextWeek > lastDayOfMonth || this.localeAPI?.isIslamic()) {\n this.year = nextWeek.getFullYear();\n this.month = nextWeek.getMonth();\n }\n }\n\n if (type === 'previous-week') {\n const prevWeek = subtractDate(this.activeDate, WEEK_LENGTH, 'days');\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n if (prevWeek < firstDayOfMonth && limitMonth) return;\n\n this.day = prevWeek.getDate();\n\n if (prevWeek < firstDayOfMonth || this.localeAPI?.isIslamic()) {\n this.year = prevWeek.getFullYear();\n this.month = prevWeek.getMonth();\n }\n }\n\n if (type === 'start-month') {\n const firstDayOfMonth = firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n this.day = firstDayOfMonth.getDate();\n\n if (this.localeAPI?.isIslamic()) {\n this.year = firstDayOfMonth.getFullYear();\n this.month = firstDayOfMonth.getMonth();\n }\n }\n\n if (type === 'end-month') {\n const lastDayOfMonth = lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n\n this.day = lastDayOfMonth.getDate();\n\n if (this.localeAPI?.isIslamic()) {\n this.month = lastDayOfMonth.getMonth();\n this.year = lastDayOfMonth.getFullYear();\n }\n }\n\n this.triggerDateChange(this.activeDate, type);\n }\n\n /**\n * Day cell clicked\n * @param {HTMLElement} element The element.\n */\n #daySelectClick(element: null | HTMLElement): void {\n if (!element) return;\n\n const { month, year, day }: any = element.dataset;\n const isDisabled = element.classList.contains('is-disabled');\n\n if (!isDisabled) {\n this.#setRangeSelection(year, month, day);\n\n this.day = day;\n\n if (stringToNumber(month) !== this.month || this.localeAPI?.isIslamic()) {\n this.month = month;\n }\n\n if (stringToNumber(year) !== this.year || this.localeAPI?.isIslamic()) {\n this.year = year;\n }\n\n this.focus();\n this.#triggerSelectedEvent();\n }\n }\n\n /**\n * Add given year, month, day to the range selection\n * @param {number} year to add to the range selection\n * @param {number} month to add to the range selection\n * @param {number} day to add to the range selection\n */\n #setRangeSelection(year: number, month: number, day: number | undefined): void {\n if (!this.useRange) return;\n\n const date = new Date(year, month, day);\n const dateTime = date.getTime();\n const diff = this.rangeSettings.start ? daysDiff(this.rangeSettings.start, date) : 0;\n const rangeStarted = this.rangeSettings.start && !this.rangeSettings.end;\n const canSelectBoth = !(this.rangeSettings.selectBackward || this.rangeSettings.selectForward);\n const selectBackward = this.rangeSettings.selectBackward && diff < 0;\n const selectForward = this.rangeSettings.selectForward && diff > 0;\n const startDate = new Date(this.rangeSettings.start as string);\n const startTime = startDate.getTime();\n const minDays = this.rangeSettings.minDays;\n const maxDays = this.rangeSettings.maxDays;\n const minRangeExceeded = (minDays as number) > 0 && Math.abs(diff) < (minDays as number);\n const maxRangeExceeded = (maxDays as number) > 0 && Math.abs(diff) > (maxDays as number);\n const minRangeDate = diff >= 0\n ? addDate(startDate, (minDays as number), 'days')\n : subtractDate(startDate, (minDays as number), 'days');\n\n this.selectDay(year, month, day);\n\n if (this.rangeSettings.selectWeek) {\n return;\n }\n\n // Start is set\n if (rangeStarted && !maxRangeExceeded && (canSelectBoth || selectBackward || selectForward)) {\n if (minRangeExceeded) {\n this.rangeSettings.end = dateTime >= startTime ? minRangeDate.getTime() : this.rangeSettings.start;\n this.rangeSettings.start = subtractDate(this.rangeSettings.end, (minDays as number), 'days');\n\n this.#renderRangeSelection();\n\n return;\n }\n\n this.rangeSettings.end = dateTime >= startTime ? dateTime : this.rangeSettings.start;\n this.rangeSettings.start = dateTime <= startTime ? dateTime : this.rangeSettings.start;\n\n this.#renderRangeSelection();\n // Start not set or both not set\n } else {\n this.rangeSettings.start = dateTime;\n this.rangeSettings.end = null;\n\n this.#clearRangeClasses();\n }\n }\n\n /**\n * Helper to clear range selection CSS classes\n */\n #clearRangeClasses(): void {\n this.container?.querySelectorAll('td')\n .forEach(\n (item: HTMLElement) => item.classList.remove(\n 'range-next',\n 'range-prev',\n 'range-selection',\n 'not-included'\n )\n );\n }\n\n /**\n * Add CSS classes and selected attrs to tables cells when range selection is completed\n */\n #renderRangeSelection(): void {\n if (!this.useRange) return;\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(this.rangeSettings.end);\n const days = this.rangeSettings.end ? daysDiff(startRange, endRange) : 0;\n\n this.#clearRangeClasses();\n\n Array.from({ length: days + 1 }).forEach((_, index) => {\n const rangeDay = addDate(startRange, index, 'days');\n const selectedQuery = [\n 'td',\n `[data-year=\"${rangeDay.getFullYear()}\"]`,\n `[data-month=\"${rangeDay.getMonth()}\"]`,\n `[data-day=\"${rangeDay.getDate()}\"]`\n ].join('');\n const element = this.container?.querySelector(selectedQuery);\n\n element?.classList.add('range-selection');\n\n if (!this.rangeSettings.includeDisabled) {\n element?.classList.add('not-included');\n }\n\n if ((index === 0 || index === days) && !this.rangeSettings.selectWeek) {\n element?.setAttribute('aria-selected', 'true');\n element?.setAttribute('role', 'gridcell');\n element?.classList.add('is-selected');\n }\n });\n }\n\n /**\n * Helper to check if date is in the range selection\n * @param {Date} date to check if is in range selection\n * @returns {boolean} whether the date is in range selection\n */\n #isRangeByDate(date: Date): boolean {\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(this.rangeSettings.end);\n\n return date.getTime() >= startRange.getTime()\n && date.getTime() <= endRange.getTime();\n }\n\n /**\n * Helper to handle week selection\n * @param {string|number} year to add to the range selection\n * @param {string|number} month to add to the range selection\n * @param {string|number} day to add to the range selection\n */\n #rangeSelectWeek(\n year: string | number | undefined,\n month: string | number | undefined,\n day: string | number | undefined\n ): void {\n const firstDayOfWeek: Date = firstDayOfWeekDate(\n new Date(year as number, month as number, day as number),\n this.firstDayOfWeek\n );\n\n if (firstDayOfWeek.getTime() !== this.rangeSettings.start?.getTime()) {\n this.rangeSettings.start = firstDayOfWeek;\n this.rangeSettings.end = addDate(this.rangeSettings.start, WEEK_LENGTH - 1, 'days');\n\n this.selectDay();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Add CSS classes to table cells when range selection is in progress\n * Starting from the range settings start\n * @param {string|number} year to add to the range selection\n * @param {string|number} month to add to the range selection\n * @param {string|number} day to add to the range selection\n */\n #rangePropagation(\n year: string | number | undefined,\n month: string | number | undefined,\n day: string | number | undefined\n ): void {\n if (!this.useRange) return;\n\n if (this.rangeSettings.selectWeek) {\n this.#rangeSelectWeek(year, month, day);\n\n return;\n }\n\n if (this.rangeSettings.start && !(this.rangeSettings.end && this.rangeSettings.start)) {\n const startRange = new Date(this.rangeSettings.start);\n const endRange = new Date(year as number, month as number, day as number);\n const diff = daysDiff(startRange, endRange);\n\n this.#clearRangeClasses();\n\n const canSelectBoth = !(this.rangeSettings.selectBackward || this.rangeSettings.selectForward);\n const selectBackward = this.rangeSettings.selectBackward && diff < 0;\n const selectForward = this.rangeSettings.selectForward && diff > 0;\n const maxDays = this.rangeSettings.maxDays;\n const maxRangeExceeded = (maxDays as number) > 0 && Math.abs(diff) > (maxDays as number);\n\n if (diff !== 0 && !maxRangeExceeded && (canSelectBoth || selectBackward || selectForward)) {\n Array.from({ length: Math.abs(diff) }).forEach((_, index) => {\n const rangeDay = diff > 0\n ? addDate(startRange, index + 1, 'days')\n : subtractDate(startRange, index + 1, 'days');\n const selectedQuery = [\n 'td',\n `[data-year=\"${rangeDay.getFullYear()}\"]`,\n `[data-month=\"${rangeDay.getMonth()}\"]`,\n `[data-day=\"${rangeDay.getDate()}\"]`\n ].join('');\n\n this.container?.querySelector(selectedQuery)\n ?.classList.add(diff > 0 ? 'range-next' : 'range-prev');\n\n if (!this.rangeSettings.includeDisabled) {\n this.container?.querySelector(selectedQuery)?.classList.add('not-included');\n }\n });\n }\n }\n }\n\n /**\n * Defines if a date is in disabled settings\n * @param {Date} date to check\n * @returns {boolean} wheter or not the date is disabled\n */\n isDisabledByDate(date: Date): boolean {\n const {\n years,\n dayOfWeek,\n dates,\n minDate,\n maxDate,\n isEnable\n }: IdsDisableSettings = this.disableSettings;\n\n const isOutOfDisplayRange: boolean = this.#isDisplayRange()\n && (date < (this.startDate as Date) || date > (this.endDate as Date));\n const ifYear: boolean = (years as Array<number>).some(\n (item: number) => item === date?.getFullYear()\n );\n const ifDayOfWeek: boolean = (dayOfWeek as Array<number>).some(\n (item: number) => item === date?.getDay()\n );\n const ifDates: boolean = (dates as Array<string>).some(\n (item: string) => (new Date(item))?.getTime() === date?.getTime()\n );\n const ifMinMaxDate: boolean = date <= new Date(minDate as string) || date >= new Date(maxDate as string);\n const ifBySettings: boolean = ifYear || ifDayOfWeek || ifDates || ifMinMaxDate;\n const withReverse: boolean = isEnable ? !ifBySettings : ifBySettings;\n\n return withReverse || isOutOfDisplayRange;\n }\n\n /**\n * Helper to get month format for first day of a month or first day of the display range\n * @param {Date} date date to check\n * @param {Date} rangeStartsOn very first day of the display range\n * @returns {string|undefined} Intl.DateTimeFormat options month format (numeric, long, short)\n */\n #monthInDayFormat(date: Date, rangeStartsOn: Date): string | undefined {\n const isFirstDayOfRange = daysDiff(date, rangeStartsOn) === 0;\n const isFirstDayOfMonth = this.localeAPI?.isIslamic()\n ? gregorianToUmalqura(date).day === 1\n : date.getDate() === 1;\n\n if (this.#isDisplayRange() && (isFirstDayOfRange || isFirstDayOfMonth)) {\n return 'short';\n }\n\n return undefined;\n }\n\n /**\n * Table cell HTML template with locale, data attributes\n * @param {number} weekIndex number of week in month starting from 0\n * @returns {string} table cell HTML template\n */\n #getCellTemplate(weekIndex: number): string {\n const firstDayOfRange: Date = this.#isDisplayRange()\n ? (this.startDate as Date)\n : firstDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n const lastDayOfRange: Date = this.#isDisplayRange()\n ? (this.endDate as Date)\n : lastDayOfMonthDate(this.year, this.month, this.day, this.localeAPI?.isIslamic());\n const rangeStartsOn = firstDayOfWeekDate(firstDayOfRange, this.firstDayOfWeek);\n const firstDayOfWeek = addDate(rangeStartsOn, (weekIndex * WEEK_LENGTH), 'days');\n const now: Date = new Date();\n const isCompact = this.compact;\n\n const dayCells = Array.from({ length: WEEK_LENGTH }).map((_, index) => {\n const date: Date = addDate(rangeStartsOn, (weekIndex * WEEK_LENGTH) + index, 'days');\n const monthFormat: string | undefined = this.#monthInDayFormat(date, rangeStartsOn);\n const dayText: string = this.localeAPI?.formatDate(date, {\n day: 'numeric',\n month: monthFormat,\n numberingSystem: 'latn'\n });\n const ariaLabel: string = this.localeAPI?.formatDate(date, { dateStyle: 'full' });\n const day: number = date.getDate();\n const month: number = date.getMonth();\n const year: number = date.getFullYear();\n const dateMatch: boolean = day === this.day && year === this.year && month === this.month;\n const isSelected: boolean = !this.useRange && dateMatch;\n const isSelectedWithRange: boolean = this.useRange && !this.rangeSettings.start && dateMatch;\n const isDisabled: boolean = this.isDisabledByDate(date);\n const isAlternate: boolean = !this.#isDisplayRange() && (date < firstDayOfRange || date > lastDayOfRange);\n const legend: any = this.getLegendByDate(date);\n const isRangeSelection: boolean = this.#isRangeByDate(date);\n const isToday: boolean = year === now.getFullYear() && month === now.getMonth() && day === now.getDate();\n const classAttr: string = buildClassAttrib(\n isAlternate && 'alternate',\n legend && 'has-legend',\n isDisabled && 'is-disabled',\n (isSelected || isSelectedWithRange) && 'is-selected',\n monthFormat && 'month-label',\n isRangeSelection && 'range-selection',\n isToday && 'is-today'\n );\n const selectedAttr: string = isSelected || isSelectedWithRange\n ? 'aria-selected=\"true\" tabindex=\"0\" role=\"gridcell\"' : 'role=\"link\"';\n const dataAttr: string = [`data-year=\"${year}\"`, `data-month=\"${month}\"`, `data-day=\"${day}\"`].join(' ');\n const colorAttr: string = legend ? `data-color=\"${legend.color}\"` : '';\n const dateKey = this.generateDateKey(new Date(year, month, day));\n\n let cellTemplate = `<td aria-label=\"${ariaLabel}\" ${dataAttr} ${classAttr} ${selectedAttr} ${colorAttr}>\n <span class=\"day-container\">\n <ids-text\n aria-hidden=\"true\"\n class=\"day-text\"\n font-size=\"14\"\n >${dayText}</ids-text>\n </span>\n ${isCompact ? '' : `<div class=\"events-container\" data-key=\"${dateKey}\"></div>`}\n </td>`;\n if (typeof this.state.onDayRender === 'function') {\n cellTemplate = this.state.onDayRender(cellTemplate, dateKey);\n }\n return cellTemplate;\n }).join('');\n\n // Week number cell if enabled\n const weekNumCell = `<td class=\"week-num-cell\">\n <ids-text class=\"week-num-text\" font-size=\"14\">${weekNumber(firstDayOfWeek, this.firstDayOfWeek)}</ids-text>\n </td>`;\n const weekNumCellTemplate = this.showWeekNumbers ? weekNumCell : '';\n\n return `${weekNumCellTemplate}${dayCells}`;\n }\n\n /**\n * Add week days HTML to the table\n */\n #renderWeekDays(): void {\n const weekDayKeys = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n const weekDays = weekDayKeys.map((item) => this.localeAPI?.translate(`${this.compact ? 'DayNarrow' : 'DayAbbreviated'}${item}`));\n const weekDaysWide = weekDayKeys.map((item) => this.localeAPI?.translate(`DayWide${item}`));\n\n // Week number header if enabled\n const weekNumHeader = `<th scope=\"col\" class=\"week-num-cell\">\n <ids-text class=\"week-num-text\" font-size=\"14\">W#</ids-text>\n </th>`;\n let weekDaysTemplate = this.showWeekNumbers ? weekNumHeader : '';\n\n weekDaysTemplate += weekDays.map((el: any, index: number) => {\n const idx = (index + this.firstDayOfWeek) % WEEK_LENGTH;\n const weekday = weekDays[idx];\n const weekdaywide = weekDaysWide[idx];\n\n return `\n <th scope=\"col\" abbr=\"${weekdaywide}\">\n <ids-text\n class=\"weekday-text\"\n font-size=\"14\"\n >${weekday}</ids-text>\n </th>\n `;\n }).join('');\n\n // Clear/add HTML\n this.container?.querySelectorAll('thead th').forEach((el: Element) => el.remove());\n this.container?.querySelector('thead tr')?.insertAdjacentHTML('beforeend', weekDaysTemplate);\n }\n\n /**\n * Add month HTML to the table\n */\n #renderMonth(): void {\n const weeksCount = this.#isDisplayRange()\n ? weeksInRange(this.startDate, this.endDate, this.firstDayOfWeek)\n : weeksInMonth(this.year, this.month, this.day, this.firstDayOfWeek, this.localeAPI?.isIslamic());\n this.triggerEvent('beforerendermonth', this, {\n bubbles: true,\n detail: { elem: this }\n });\n\n const rowsTemplate = Array.from({ length: weeksCount }).map((_, weekIndex) => `<tr>${this.#getCellTemplate(weekIndex)}</tr>`).join('');\n\n // Clear/add HTML\n this.container?.querySelectorAll('tbody tr').forEach((el: Element) => el.remove());\n this.container?.querySelector('tbody')?.insertAdjacentHTML('beforeend', rowsTemplate);\n\n this.#renderWeekDays();\n this.#colorToVar();\n this.state.hasRendered = true;\n\n if (!this.compact && !this.isDatePicker) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.renderEventsData();\n }\n\n this.#lastRenderedYear = this.year;\n this.#lastRenderedMonth = this.month;\n this.#lastRenderedDay = this.day;\n this.#lastRenderedFirstDayOfWeek = this.firstDayOfWeek;\n\n this.triggerEvent('afterrendermonth', this, {\n bubbles: true,\n detail: { elem: this }\n });\n }\n\n /**\n * Gets calendar events within the selected/active day\n * @returns {CalendarEventData[]} calendar events data\n */\n getActiveDayEvents(): CalendarEventData[] {\n const activeDay = this.getSelectedDay();\n let eventElems = activeDay ? [...activeDay.querySelectorAll('ids-calendar-event')] : [];\n if (this.#isCustom && activeDay) {\n const customCalendarEvents: any = activeDay.querySelectorAll('.events-container > [slot]');\n eventElems = activeDay ? [...customCalendarEvents] : [];\n }\n const events = eventElems.map((elem: any) => elem.eventData);\n\n return events;\n }\n\n /**\n * Trigger selected event with current params\n * @returns {void}\n */\n #triggerSelectedEvent(): void {\n if (this.isDisabledByDate(this.activeDate)) {\n return;\n }\n\n const args: IdsDayselectedEvent = {\n detail: {\n elem: this,\n date: this.activeDate,\n useRange: this.useRange,\n rangeStart: this.useRange && this.rangeSettings.start ? new Date(this.rangeSettings.start) : null,\n rangeEnd: this.useRange && this.rangeSettings.end ? new Date(this.rangeSettings.end) : null,\n value: this.getFormattedDate(this.activeDate)\n },\n bubbles: true,\n cancelable: true,\n composed: true\n };\n\n // For full-sized non datepicker month view\n if (!this.compact && !this.isDatePicker) {\n args.detail.events = this.getActiveDayEvents();\n }\n\n this.triggerEvent('dayselected', this, args);\n }\n\n /**\n * Add selectable attribute to active day\n * @param {number} year a given year\n * @param {number} month a given month\n * @param {number} day a given day\n */\n selectDay(year?: any, month?: any, day?: any): void {\n // Clear before\n this.#makeAllDeselected();\n const selectedQuery = `td[data-year=\"${year}\"][data-month=\"${month}\"][data-day=\"${day}\"]`;\n const selected = this.container?.querySelector<HTMLTableCellElement>(selectedQuery);\n if (selected) this.#makeSelected(selected);\n }\n\n /**\n * Makes a specified day in the Month View table appear \"selected\"\n * @param {HTMLTableCellElement} elem the element to make appear \"selected\"\n * @returns {void}\n */\n #makeSelected(elem: HTMLTableCellElement): void {\n if (!elem) return;\n elem.setAttribute(attributes.TABINDEX, '0');\n elem.setAttribute('aria-selected', 'true');\n elem.setAttribute('role', 'gridcell');\n elem.classList.add('is-selected');\n }\n\n /**\n * Makes a specified day in the Month View table appear \"selected\"\n * @param {HTMLTableCellElement} elem the element to make appear \"selected\"\n * @returns {void}\n */\n #makeDeselected(elem: HTMLTableCellElement): void {\n if (!elem) return;\n elem.removeAttribute(attributes.TABINDEX);\n elem.removeAttribute('aria-selected');\n elem.setAttribute('role', 'link');\n elem.classList.remove('is-selected');\n }\n\n /**\n * Clears all previously-selected days from the Month View\n */\n #makeAllDeselected(): void {\n this.container?.querySelectorAll<HTMLTableCellElement>('td.is-selected')?.forEach((item: HTMLTableCellElement) => {\n this.#makeDeselected(item);\n });\n }\n\n /**\n * Whether or not it should show range of dates instead of one month view\n * @returns {boolean} startDate and endDate are set\n */\n #isDisplayRange(): boolean {\n return isValidDate(this.startDate)\n && isValidDate(this.endDate)\n && (this.endDate as Date) >= (this.startDate as Date);\n }\n\n /**\n * Helper to check if the month has a day\n * @param {number} day to check\n * @returns {number} day of the month either active or first\n */\n #getDayInMonth(day: number): number {\n const numberOfDays = daysInMonth(this.year, this.month);\n\n return day > numberOfDays ? 1 : day;\n }\n\n /**\n * Iterate legend items with color data and add color css variable\n */\n #colorToVar(): void {\n this.container?.querySelectorAll('[data-color]')\n .forEach((el: any) => {\n const color = el.dataset.color;\n const isHex = color?.includes('#');\n\n if (color) {\n el.style = `--legend-color: ${isHex ? color : `var(--ids-color-${color})`}`;\n }\n });\n }\n\n /**\n * Queries selected day cell element\n * @returns {HTMLElement} selected day\n */\n getSelectedDay(): HTMLTableCellElement | null {\n const selectedQuery = `td[data-year=\"${this.year}\"][data-month=\"${this.month}\"][data-day=\"${this.day}\"]`;\n return this.container?.querySelector(selectedQuery) || null;\n }\n\n /**\n * Focuses the active/selected day\n * @returns {void}\n */\n focus(): void {\n const selectedDay = this.getSelectedDay();\n if (selectedDay) {\n const isDisabled = selectedDay.classList.contains('is-disabled');\n if (!isDisabled) {\n this.#makeAllDeselected();\n this.#makeSelected(selectedDay);\n setTimeout(() => selectedDay.focus(), 10);\n }\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onFirstDayOfWeekChange() {\n if (this.container && this.firstDayOfWeek !== this.#lastRenderedFirstDayOfWeek) {\n this.#renderMonth();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onMonthChange() {\n if (!this.container) return;\n\n // Month change in range calendar doesn't trigger a rerender, just selects a day\n if (this.#isDisplayRange()) {\n this.selectDay(this.year, this.month, this.day);\n } else if (this.month !== this.#lastRenderedMonth) {\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @returns {void}\n */\n onYearChange() {\n if (!this.container) return;\n\n // Year change in range calendar doesn't trigger a rerender, just selects a day\n if (this.#isDisplayRange()) {\n this.selectDay(this.year, this.month, this.day);\n } else if (this.year !== this.#lastRenderedYear) {\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n }\n\n /**\n * Inherited from `IdsDateAttributeMixin`\n * @param {number} numberVal new value\n * @param {boolean} validates true if the new value passed is valid\n * @returns {void}\n */\n onDayChange(numberVal: number, validates: boolean) {\n if (!this.container || this.day === this.#lastRenderedDay) return;\n\n if (!(this.rangeSettings.start || this.useRange) && !this.isDatePicker) {\n this.selectDay(this.year, this.month, validates ? numberVal : this.day);\n }\n }\n\n /**\n * start-date attribute\n * @returns {Date | null} startDate date parsed from attribute value\n */\n get startDate(): Date | null {\n const attrVal = this.getAttribute(attributes.START_DATE) ?? '';\n const attrDate = new Date(attrVal);\n\n if (attrVal && isValidDate(attrDate)) {\n return attrDate;\n }\n\n return null;\n }\n\n /**\n * Set start of the range to show\n * @param {string | Date | null} val startDate param value\n */\n set startDate(val: string | Date | null) {\n if (val) {\n this.setAttribute(attributes.START_DATE, String(val));\n } else {\n this.removeAttribute(attributes.START_DATE);\n }\n\n if (this.container) {\n this.#renderMonth();\n this.#attachKeyboardListeners();\n }\n }\n\n /**\n * end-date attribute\n * @returns {Date|null} endDate date parsed from attribute value\n */\n get endDate(): Date | null {\n const attrVal = this.getAttribute(attributes.END_DATE) ?? '';\n const attrDate = new Date(attrVal);\n\n if (attrVal && isValidDate(attrDate)) {\n return attrDate;\n }\n\n return null;\n }\n\n /**\n * Set end of the range to show\n * @param {Date | string | null} val endDate param value\n */\n set endDate(val: Date | string | null) {\n if (val) {\n this.setAttribute(attributes.END_DATE, String(val));\n } else {\n this.removeAttribute(attributes.END_DATE);\n }\n\n if (this.container) {\n this.#renderMonth();\n this.#attachKeyboardListeners();\n }\n }\n\n /**\n * compact attribute\n * @returns {boolean} compact param converted to boolean from attribute value\n */\n get compact(): boolean {\n const attrVal = this.getAttribute(attributes.COMPACT);\n\n return stringToBool(attrVal);\n }\n\n /**\n * Set whether or not the component should be compact view\n * @param {string|boolean|null} val compact param value\n */\n set compact(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.COMPACT, 'true');\n } else {\n this.removeAttribute(attributes.COMPACT);\n }\n\n // Toggle container CSS class\n this.container?.classList.toggle('is-fullsize', !boolVal);\n this.container?.classList.toggle('is-compact', boolVal);\n\n if (this.container) {\n // Render related views\n this.#renderWeekDays();\n }\n }\n\n /**\n * show-apply attribute\n * @returns {boolean} showCancel param converted to boolean from attribute value\n */\n get showApply(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_APPLY));\n }\n\n /**\n * Set whether or not to show cancel button when the picker is expanded\n * @param {string|boolean|null} val show-cancel attribute value\n */\n set showApply(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n if (boolVal) {\n this.setAttribute(attributes.SHOW_APPLY, 'true');\n } else {\n this.removeAttribute(attributes.SHOW_APPLY);\n }\n }\n\n set showWeekNumbers(val: boolean | null) {\n if (stringToBool(val)) {\n this.setAttribute(attributes.SHOW_WEEK_NUMBERS, '');\n } else {\n this.removeAttribute(attributes.SHOW_WEEK_NUMBERS);\n }\n }\n\n get showWeekNumbers(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_WEEK_NUMBERS));\n }\n\n /**\n * is-date-picker attribute\n * @returns {boolean} isDatePicker param converted to boolean from attribute value\n */\n get isDatePicker(): boolean {\n const attrVal = this.getAttribute(attributes.IS_DATEPICKER);\n\n return stringToBool(attrVal);\n }\n\n /**\n * Set whether or not the component is used in datepicker popup\n * @param {string|boolean|null} val compact param value\n */\n set isDatePicker(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.IS_DATEPICKER, 'true');\n } else {\n this.removeAttribute(attributes.IS_DATEPICKER);\n }\n\n // Toggle container CSS class\n this.container?.classList.toggle('is-date-picker', boolVal);\n }\n\n onDisableSettingsChange() {\n this.#renderMonth();\n }\n\n onLegendSettingsChange(val: IdsLegendSettings) {\n if (!this.container) return;\n\n this.#renderMonth();\n this.#renderLegend();\n this.container.classList[val && val.length ? 'add' : 'remove']('has-legend');\n }\n\n onRangeSettingsChange(val: IdsRangeSettings) {\n if (!this.container) return;\n\n if (this.useRange && val?.start) {\n this.selectDay();\n } else {\n this.year = this.#lastRenderedYear;\n this.month = this.#lastRenderedMonth;\n this.day = this.#lastRenderedDay;\n\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n }\n\n this.container.classList.toggle('range-select-week', this.rangeSettings.selectWeek);\n this.#renderMonth();\n this.#renderRangeSelection();\n }\n\n onUseRangeChange(newValue: boolean) {\n if (newValue) {\n this.selectDay();\n this.#renderRangeSelection();\n } else {\n this.#clearRangeClasses();\n this.selectDay(this.year, this.month, this.day);\n }\n }\n\n /**\n * show-picklist-year attribute, default is true\n * @returns {boolean} showPicklistYear param converted to boolean from attribute value\n */\n get showPicklistYear(): boolean {\n const attrVal = this.getAttribute(attributes.SHOW_PICKLIST_YEAR);\n\n if (attrVal) {\n return stringToBool(attrVal);\n }\n\n return true;\n }\n\n /**\n * Whether or not to show a list of years in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-year attribute converted to boolean\n */\n set showPicklistYear(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n this.setAttribute(attributes.SHOW_PICKLIST_YEAR, String(boolVal));\n }\n\n /**\n * show-picklist-month attribute, default is true\n * @returns {boolean} showPicklistMonth param converted to boolean from attribute value\n */\n get showPicklistMonth(): boolean {\n const attrVal = this.getAttribute(attributes.SHOW_PICKLIST_MONTH);\n\n if (attrVal) {\n return stringToBool(attrVal);\n }\n\n return true;\n }\n\n /**\n * Whether or not to show a list of months in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-month attribute converted to boolean\n */\n set showPicklistMonth(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n this.setAttribute(attributes.SHOW_PICKLIST_MONTH, String(boolVal));\n }\n\n /**\n * show-picklist-week attribute\n * @returns {boolean} showPicklistWeek param converted to boolean from attribute value\n */\n get showPicklistWeek(): boolean {\n return stringToBool(this.getAttribute(attributes.SHOW_PICKLIST_WEEK));\n }\n\n /**\n * Whether or not to show week numbers in the toolbar datepicker picklist\n * @param {string | boolean | null} val value to be set as show-picklist-week attribute converted to boolean\n */\n set showPicklistWeek(val: string | boolean | null) {\n const boolVal = stringToBool(val);\n\n if (boolVal) {\n this.setAttribute(attributes.SHOW_PICKLIST_WEEK, 'true');\n } else {\n this.removeAttribute(attributes.SHOW_PICKLIST_WEEK);\n }\n }\n\n /**\n * Remove month view calendar events and overflow elements\n */\n removeAllEvents(): void {\n this.container\n ?.querySelectorAll('.events-container')\n .forEach((container: Element) => { container.innerHTML = ''; });\n }\n\n /**\n * Groups calendar events by day using dateKey as key\n * @param {CalendarEventData[]} events calendar events data\n * @returns {Record<string, Array<CalendarEventData>>} collection of calendar events\n */\n #groupEventsByDay(events: CalendarEventData[]): Record<string, Array<CalendarEventData>> {\n const dayEvents: Record<string, Array<CalendarEventData>> = {};\n\n events.forEach((event: CalendarEventData) => {\n const dateKey = this.generateDateKey(new Date(event.starts)).toString();\n if (!dayEvents[dateKey]) dayEvents[dateKey] = [];\n dayEvents[dateKey].push(event);\n });\n\n return dayEvents;\n }\n\n /**\n * Filter calendar events data by current month\n * @param {CalendarEventData[]} data calendar events data\n * @returns {CalendarEventData[]} calendar events within month\n */\n filterEventsByMonth(data: CalendarEventData[] = []): CalendarEventData[] {\n return data.filter((event) => {\n const eventStart = new Date(event.starts);\n return this.startDate && this.endDate ? this.startDate <= eventStart && eventStart < this.endDate\n : eventStart.getMonth() === this.month && eventStart.getFullYear() === this.year;\n });\n }\n\n /**\n * Render Calendar Events data inside month view\n * @param {boolean} forceRender skip data fetch\n */\n async renderEventsData(forceRender = false): Promise<void> {\n if (!forceRender && typeof this.state.beforeEventsRender === 'function') {\n const startDate = this.startDate || new Date(this.year, this.month, 1);\n const endDate = this.endDate || new Date(this.year, this.month + 1, 0);\n this.eventsData = await this.state.beforeEventsRender(startDate, endDate);\n return;\n }\n\n this.removeAllEvents();\n\n if (!this.state.hasRendered || !this.eventsData?.length) return;\n\n const eventsInRange = this.filterEventsByMonth(this.eventsData);\n const monthEvents = this.#groupEventsByDay(eventsInRange);\n\n const customCalendarEvent: any = this.querySelector('[slot=\"customCalendarEvent\"]');\n for (const dateKey in monthEvents) {\n if (monthEvents.hasOwnProperty(dateKey)) {\n this.#renderDayEvents(dateKey, monthEvents[dateKey], customCalendarEvent);\n }\n }\n\n this.triggerEvent('eventsrendered', this, {\n detail: { eventsData: eventsInRange },\n bubbles: true,\n composed: true\n });\n }\n\n /**\n * Counts number of days for calendar events\n * @param {Date} start start date\n * @param {Date} end end date\n * @returns {number} days\n */\n #countDays(start: Date, end: Date): number {\n return Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));\n }\n\n /**\n * Renders calendar events within corresponding date's table cell\n * @param {string} dateKey generated date key\n * @param {CalendarEventData[]} events calendar events\n * @param {any} customCalendarEvent custom calendar events\n */\n #renderDayEvents(dateKey: string, events: CalendarEventData[], customCalendarEvent?: any): void {\n if (!this.container) return;\n\n const eventsContainer = this.container?.querySelector(`.events-container[data-key=\"${dateKey}\"]`);\n const orders = [...(eventsContainer?.childNodes) || []].map((elem: any) => elem.order);\n const baseOrder = orders.length ? Math.max(...orders) + 1 : 0;\n let isOverflowing = false;\n events.forEach((event: CalendarEventData, index: number) => {\n const start = new Date(event.starts);\n const end = new Date(event.ends);\n const days = this.#countDays(start, end) || 1;\n\n for (let i = 0; i < days; i++) {\n const calendarEvent = this.#newCalendarEvent(customCalendarEvent);\n const eventType = this.eventTypesData?.find((et: CalendarEventTypeData) => et.id === event.type) ?? null;\n const eventOrder = baseOrder + index;\n calendarEvent.eventTypeData = eventType;\n calendarEvent.eventData = event;\n calendarEvent.cssClass = ['is-month-view'];\n calendarEvent.order = eventOrder;\n\n if (i > 0) {\n start.setDate(start.getDate() + 1);\n }\n\n const day = start.getDate();\n const year = start.getFullYear();\n const month = start.getMonth();\n calendarEvent.dateKey = `${year}${month}${day}`;\n const dateCell = this.container?.querySelector(`td[data-year=\"${year}\"][data-month=\"${month}\"][data-day=\"${day}\"]`);\n calendarEvent.disabled = !!dateCell?.classList.contains('is-disabled');\n\n if (dateCell) {\n // multi day events\n if (days > 1) {\n const extraCss = ['all-day'];\n\n if (i === 0) {\n extraCss.push('calendar-event-start');\n } else if (i === days - 1) {\n extraCss.push('calendar-event-ends');\n } else {\n extraCss.push('calendar-event-continue');\n }\n\n calendarEvent.cssClass = extraCss;\n }\n\n const eventYOffset = this.generateYOffset(calendarEvent);\n calendarEvent.setAttribute(attributes.Y_OFFSET, `${eventYOffset}px`);\n // hide overflowing event\n isOverflowing = this.isEventOverflowing(calendarEvent);\n calendarEvent.hidden = isOverflowing;\n dateCell.querySelector('.events-container')?.appendChild(calendarEvent as any);\n\n const container = dateCell.querySelector('.events-container');\n this.triggerEvent('beforeeventrendered', this, {\n detail:\n {\n elem: this,\n events: this.eventsData,\n event: calendarEvent,\n dateCell: calendarEvent,\n container\n },\n bubbles: true\n });\n container?.appendChild(calendarEvent as any);\n this.triggerEvent('aftereventrendered', this, {\n detail:\n {\n elem: this,\n events: this.eventsData,\n event: calendarEvent,\n dateCell: calendarEvent,\n container\n },\n bubbles: true\n });\n }\n }\n });\n\n if (isOverflowing && eventsContainer) {\n this.#renderEventsOverflow(eventsContainer, dateKey);\n }\n }\n\n /**\n * Renders clickable event overflow element\n * Specifies number of calendar events overflowing the container\n * @param {Element} eventsContainer date specific event container elemeent\n * @param {string} dateKey generated date key\n */\n #renderEventsOverflow(eventsContainer: any, dateKey: string): void {\n if (!eventsContainer) return;\n\n const calendarEvents = [...eventsContainer.childNodes];\n const hiddenEvents = calendarEvents.filter((elem: IdsCalendarEvent) => elem.hidden);\n const year = dateKey.substring(0, 4);\n const month = parseInt(dateKey.substring(4, 6)) + 1;\n const day = dateKey.substring(6);\n const date = `${month}/${day}/${year}`;\n const tmpl = `\n <ids-text data-date=\"${date}\" class=\"events-overflow\" font-size=\"12\">\n ${hiddenEvents.length}+ ${this.localeAPI.translate('More')}\n </ids-text>\n `;\n\n eventsContainer.insertAdjacentHTML('beforeend', tmpl);\n }\n\n /**\n * Generates new IdsCalendarEvent\n * @param {IdsCalendarEvent} customCalendarEvent optional custom event to use instead of default\n * @returns {IdsCalendarEvent} calendar event\n */\n #newCalendarEvent(customCalendarEvent?: any): any {\n if (customCalendarEvent?.name === 'MonthViewCalendarEventTemplate') {\n const eventTemplate = customCalendarEvent.assignedNodes()[0];\n if (eventTemplate) {\n this.#isCustom = true;\n return eventTemplate.cloneNode(true);\n }\n }\n return new IdsCalendarEvent();\n }\n\n /**\n * Selects the Month View's current day from a stringified date\n * @param {string} val string representation of a date\n */\n selectDayFromValue(val: string) {\n let usableValue = val;\n if (this.useRange && this.rangeSettings.separator && this.rangeSettings.end) {\n usableValue = removeDateRange(val, this.rangeSettings.separator);\n }\n\n const { month, day, year } = getDateValuesFromString(usableValue);\n this.day = day;\n this.month = month;\n this.year = year;\n\n if (this.useRange) {\n this.selectDay();\n this.#renderRangeSelection();\n } else {\n this.#clearRangeClasses();\n this.selectDay(year, month, day);\n }\n }\n\n /**\n * Function that fires as the day cell is rendered.\n * @returns {Function} the function to call\n */\n public get onDayRender() {\n return this.state.onDayRender;\n }\n\n public set onDayRender(func) {\n this.state.onDayRender = func;\n }\n\n /**\n * Calculates the event Y_OFFSET value to set the event pill top position\n * @param {IdsCalendarEvent} event IdsCalendarEvent\n * @returns {number} yOffset\n */\n generateYOffset(event: IdsCalendarEvent): number {\n return (event.order * 16) + BASE_Y_OFFSET;\n }\n\n /**\n * Checks if the event pills exceed the MAX_EVENT_COUNT in a day cell\n * @param {IdsCalendarEvent} event IdsCalendarEvent\n * @returns {boolean} isEventOverflowing\n */\n isEventOverflowing(event: IdsCalendarEvent): boolean {\n return event.order > MAX_EVENT_COUNT - 1;\n }\n}\n\nexport default IdsMonthView;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAO,yBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
6
6
  "names": ["ids_month_view_default"]
7
7
  }