@siemens/ix 2.0.0 → 2.0.2

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 (579) hide show
  1. package/components/_commonjsHelpers.js +21 -0
  2. package/components/_commonjsHelpers.js.map +1 -0
  3. package/{dist/esm/a11y-d5dd20ad.js → components/a11y.js} +2 -2
  4. package/components/a11y.js.map +1 -0
  5. package/components/animation.js +19 -0
  6. package/components/animation.js.map +1 -0
  7. package/components/anime.es.js +1311 -0
  8. package/components/anime.es.js.map +1 -0
  9. package/components/application-header.js +109 -0
  10. package/components/application-header.js.map +1 -0
  11. package/components/avatar.js +53 -0
  12. package/components/avatar.js.map +1 -0
  13. package/components/base-button.js +47 -0
  14. package/components/base-button.js.map +1 -0
  15. package/components/base-icon-button.js +18 -0
  16. package/components/base-icon-button.js.map +1 -0
  17. package/components/breadcrumb-item.js +100 -0
  18. package/components/breadcrumb-item.js.map +1 -0
  19. package/components/breakpoints.js +25 -0
  20. package/components/breakpoints.js.map +1 -0
  21. package/components/burger-menu.js +55 -0
  22. package/components/burger-menu.js.map +1 -0
  23. package/components/button.js +91 -0
  24. package/components/button.js.map +1 -0
  25. package/components/card-accordion.js +72 -0
  26. package/components/card-accordion.js.map +1 -0
  27. package/components/card-content.js +32 -0
  28. package/components/card-content.js.map +1 -0
  29. package/components/card-title.js +32 -0
  30. package/components/card-title.js.map +1 -0
  31. package/components/card.js +36 -0
  32. package/components/card.js.map +1 -0
  33. package/components/context.js +101 -0
  34. package/components/context.js.map +1 -0
  35. package/components/custom-elements.d.ts +10 -0
  36. package/components/date-picker.js +372 -0
  37. package/components/date-picker.js.map +1 -0
  38. package/components/date-time-card.js +45 -0
  39. package/components/date-time-card.js.map +1 -0
  40. package/components/default-tree-item.js +22 -0
  41. package/components/default-tree-item.js.map +1 -0
  42. package/components/divider.js +32 -0
  43. package/components/divider.js.map +1 -0
  44. package/components/dropdown-item.js +69 -0
  45. package/components/dropdown-item.js.map +1 -0
  46. package/components/dropdown.js +351 -0
  47. package/components/dropdown.js.map +1 -0
  48. package/components/filter-chip.js +56 -0
  49. package/components/filter-chip.js.map +1 -0
  50. package/components/flip-tile-state.js +20 -0
  51. package/components/flip-tile-state.js.map +1 -0
  52. package/components/floating-ui.dom.esm.js +1512 -0
  53. package/components/floating-ui.dom.esm.js.map +1 -0
  54. package/components/group-context-menu.js +73 -0
  55. package/components/group-context-menu.js.map +1 -0
  56. package/components/group-item.js +58 -0
  57. package/components/group-item.js.map +1 -0
  58. package/components/icon-button.js +99 -0
  59. package/components/icon-button.js.map +1 -0
  60. package/components/index.d.ts +27 -0
  61. package/components/index.js +101 -0
  62. package/components/index.js.map +1 -0
  63. package/components/ix-action-card.d.ts +11 -0
  64. package/components/ix-action-card.js +66 -0
  65. package/components/ix-action-card.js.map +1 -0
  66. package/components/ix-application-header.d.ts +11 -0
  67. package/components/ix-application-header.js +8 -0
  68. package/components/ix-application-header.js.map +1 -0
  69. package/components/ix-application-sidebar.d.ts +11 -0
  70. package/components/ix-application-sidebar.js +63 -0
  71. package/components/ix-application-sidebar.js.map +1 -0
  72. package/components/ix-application.d.ts +11 -0
  73. package/components/ix-application.js +128 -0
  74. package/components/ix-application.js.map +1 -0
  75. package/components/ix-avatar.d.ts +11 -0
  76. package/components/ix-avatar.js +8 -0
  77. package/components/ix-avatar.js.map +1 -0
  78. package/components/ix-basic-navigation.d.ts +11 -0
  79. package/components/ix-basic-navigation.js +132 -0
  80. package/components/ix-basic-navigation.js.map +1 -0
  81. package/components/ix-blind.d.ts +11 -0
  82. package/components/ix-blind.js +128 -0
  83. package/components/ix-blind.js.map +1 -0
  84. package/components/ix-breadcrumb-item.d.ts +11 -0
  85. package/components/ix-breadcrumb-item.js +8 -0
  86. package/components/ix-breadcrumb-item.js.map +1 -0
  87. package/components/ix-breadcrumb.d.ts +11 -0
  88. package/components/ix-breadcrumb.js +154 -0
  89. package/components/ix-breadcrumb.js.map +1 -0
  90. package/components/ix-burger-menu.d.ts +11 -0
  91. package/components/ix-burger-menu.js +8 -0
  92. package/components/ix-burger-menu.js.map +1 -0
  93. package/components/ix-button.d.ts +11 -0
  94. package/components/ix-button.js +8 -0
  95. package/components/ix-button.js.map +1 -0
  96. package/components/ix-card-accordion.d.ts +11 -0
  97. package/components/ix-card-accordion.js +8 -0
  98. package/components/ix-card-accordion.js.map +1 -0
  99. package/components/ix-card-content.d.ts +11 -0
  100. package/components/ix-card-content.js +8 -0
  101. package/components/ix-card-content.js.map +1 -0
  102. package/components/ix-card-list.d.ts +11 -0
  103. package/components/ix-card-list.js +228 -0
  104. package/components/ix-card-list.js.map +1 -0
  105. package/components/ix-card-title.d.ts +11 -0
  106. package/components/ix-card-title.js +8 -0
  107. package/components/ix-card-title.js.map +1 -0
  108. package/components/ix-card.d.ts +11 -0
  109. package/components/ix-card.js +8 -0
  110. package/components/ix-card.js.map +1 -0
  111. package/components/ix-category-filter.d.ts +11 -0
  112. package/components/ix-category-filter.js +464 -0
  113. package/components/ix-category-filter.js.map +1 -0
  114. package/components/ix-chip.d.ts +11 -0
  115. package/components/ix-chip.js +98 -0
  116. package/components/ix-chip.js.map +1 -0
  117. package/components/ix-col.d.ts +11 -0
  118. package/components/ix-col.js +96 -0
  119. package/components/ix-col.js.map +1 -0
  120. package/components/ix-content-header.d.ts +11 -0
  121. package/components/ix-content-header.js +63 -0
  122. package/components/ix-content-header.js.map +1 -0
  123. package/components/ix-content.d.ts +11 -0
  124. package/components/ix-content.js +48 -0
  125. package/components/ix-content.js.map +1 -0
  126. package/components/ix-css-grid-item.d.ts +11 -0
  127. package/components/ix-css-grid-item.js +40 -0
  128. package/components/ix-css-grid-item.js.map +1 -0
  129. package/components/ix-css-grid.d.ts +11 -0
  130. package/components/ix-css-grid.js +113 -0
  131. package/components/ix-css-grid.js.map +1 -0
  132. package/components/ix-date-picker.d.ts +11 -0
  133. package/components/ix-date-picker.js +8 -0
  134. package/components/ix-date-picker.js.map +1 -0
  135. package/components/ix-date-time-card.d.ts +11 -0
  136. package/components/ix-date-time-card.js +8 -0
  137. package/components/ix-date-time-card.js.map +1 -0
  138. package/components/ix-datetime-picker.d.ts +11 -0
  139. package/components/ix-datetime-picker.js +149 -0
  140. package/components/ix-datetime-picker.js.map +1 -0
  141. package/components/ix-divider.d.ts +11 -0
  142. package/components/ix-divider.js +8 -0
  143. package/components/ix-divider.js.map +1 -0
  144. package/components/ix-drawer.d.ts +11 -0
  145. package/components/ix-drawer.js +145 -0
  146. package/components/ix-drawer.js.map +1 -0
  147. package/components/ix-dropdown-button.d.ts +11 -0
  148. package/components/ix-dropdown-button.js +92 -0
  149. package/components/ix-dropdown-button.js.map +1 -0
  150. package/components/ix-dropdown-header.d.ts +11 -0
  151. package/components/ix-dropdown-header.js +44 -0
  152. package/components/ix-dropdown-header.js.map +1 -0
  153. package/components/ix-dropdown-item.d.ts +11 -0
  154. package/components/ix-dropdown-item.js +8 -0
  155. package/components/ix-dropdown-item.js.map +1 -0
  156. package/components/ix-dropdown-quick-actions.d.ts +11 -0
  157. package/components/ix-dropdown-quick-actions.js +35 -0
  158. package/components/ix-dropdown-quick-actions.js.map +1 -0
  159. package/components/ix-dropdown.d.ts +11 -0
  160. package/components/ix-dropdown.js +8 -0
  161. package/components/ix-dropdown.js.map +1 -0
  162. package/components/ix-empty-state.d.ts +11 -0
  163. package/components/ix-empty-state.js +65 -0
  164. package/components/ix-empty-state.js.map +1 -0
  165. package/components/ix-event-list-item.d.ts +11 -0
  166. package/components/ix-event-list-item.js +61 -0
  167. package/components/ix-event-list-item.js.map +1 -0
  168. package/components/ix-event-list.d.ts +11 -0
  169. package/components/ix-event-list.js +143 -0
  170. package/components/ix-event-list.js.map +1 -0
  171. package/components/ix-expanding-search.d.ts +11 -0
  172. package/components/ix-expanding-search.js +119 -0
  173. package/components/ix-expanding-search.js.map +1 -0
  174. package/components/ix-filter-chip.d.ts +11 -0
  175. package/components/ix-filter-chip.js +8 -0
  176. package/components/ix-filter-chip.js.map +1 -0
  177. package/components/ix-flip-tile-content.d.ts +11 -0
  178. package/components/ix-flip-tile-content.js +38 -0
  179. package/components/ix-flip-tile-content.js.map +1 -0
  180. package/components/ix-flip-tile.d.ts +11 -0
  181. package/components/ix-flip-tile.js +121 -0
  182. package/components/ix-flip-tile.js.map +1 -0
  183. package/components/ix-form-field.d.ts +11 -0
  184. package/components/ix-form-field.js +43 -0
  185. package/components/ix-form-field.js.map +1 -0
  186. package/components/ix-group-context-menu.d.ts +11 -0
  187. package/components/ix-group-context-menu.js +8 -0
  188. package/components/ix-group-context-menu.js.map +1 -0
  189. package/components/ix-group-item.d.ts +11 -0
  190. package/components/ix-group-item.js +8 -0
  191. package/components/ix-group-item.js.map +1 -0
  192. package/components/ix-group.d.ts +11 -0
  193. package/components/ix-group.js +178 -0
  194. package/components/ix-group.js.map +1 -0
  195. package/components/ix-icon-button.d.ts +11 -0
  196. package/components/ix-icon-button.js +8 -0
  197. package/components/ix-icon-button.js.map +1 -0
  198. package/components/ix-icon-toggle-button.d.ts +11 -0
  199. package/components/ix-icon-toggle-button.js +116 -0
  200. package/components/ix-icon-toggle-button.js.map +1 -0
  201. package/components/ix-input-group.d.ts +11 -0
  202. package/components/ix-input-group.js +143 -0
  203. package/components/ix-input-group.js.map +1 -0
  204. package/components/ix-key-value-list.d.ts +11 -0
  205. package/components/ix-key-value-list.js +38 -0
  206. package/components/ix-key-value-list.js.map +1 -0
  207. package/components/ix-key-value.d.ts +11 -0
  208. package/components/ix-key-value.js +47 -0
  209. package/components/ix-key-value.js.map +1 -0
  210. package/components/ix-kpi.d.ts +11 -0
  211. package/components/ix-kpi.js +69 -0
  212. package/components/ix-kpi.js.map +1 -0
  213. package/components/ix-layout-grid.d.ts +11 -0
  214. package/components/ix-layout-grid.js +47 -0
  215. package/components/ix-layout-grid.js.map +1 -0
  216. package/components/ix-link-button.d.ts +11 -0
  217. package/components/ix-link-button.js +48 -0
  218. package/components/ix-link-button.js.map +1 -0
  219. package/components/ix-map-navigation-overlay.d.ts +11 -0
  220. package/components/ix-map-navigation-overlay.js +8 -0
  221. package/components/ix-map-navigation-overlay.js.map +1 -0
  222. package/components/ix-map-navigation.d.ts +11 -0
  223. package/components/ix-map-navigation.js +226 -0
  224. package/components/ix-map-navigation.js.map +1 -0
  225. package/components/ix-menu-about-item.d.ts +11 -0
  226. package/components/ix-menu-about-item.js +38 -0
  227. package/components/ix-menu-about-item.js.map +1 -0
  228. package/components/ix-menu-about-news.d.ts +11 -0
  229. package/components/ix-menu-about-news.js +83 -0
  230. package/components/ix-menu-about-news.js.map +1 -0
  231. package/components/ix-menu-about.d.ts +11 -0
  232. package/components/ix-menu-about.js +119 -0
  233. package/components/ix-menu-about.js.map +1 -0
  234. package/components/ix-menu-avatar-item.d.ts +11 -0
  235. package/components/ix-menu-avatar-item.js +8 -0
  236. package/components/ix-menu-avatar-item.js.map +1 -0
  237. package/components/ix-menu-avatar.d.ts +11 -0
  238. package/components/ix-menu-avatar.js +77 -0
  239. package/components/ix-menu-avatar.js.map +1 -0
  240. package/components/ix-menu-category.d.ts +11 -0
  241. package/components/ix-menu-category.js +190 -0
  242. package/components/ix-menu-category.js.map +1 -0
  243. package/components/ix-menu-item.d.ts +11 -0
  244. package/components/ix-menu-item.js +8 -0
  245. package/components/ix-menu-item.js.map +1 -0
  246. package/components/ix-menu-settings-item.d.ts +11 -0
  247. package/components/ix-menu-settings-item.js +38 -0
  248. package/components/ix-menu-settings-item.js.map +1 -0
  249. package/components/ix-menu-settings.d.ts +11 -0
  250. package/components/ix-menu-settings.js +106 -0
  251. package/components/ix-menu-settings.js.map +1 -0
  252. package/components/ix-menu.d.ts +11 -0
  253. package/components/ix-menu.js +508 -0
  254. package/components/ix-menu.js.map +1 -0
  255. package/components/ix-message-bar.d.ts +11 -0
  256. package/components/ix-message-bar.js +87 -0
  257. package/components/ix-message-bar.js.map +1 -0
  258. package/components/ix-modal-content.d.ts +11 -0
  259. package/components/ix-modal-content.js +35 -0
  260. package/components/ix-modal-content.js.map +1 -0
  261. package/components/ix-modal-example.d.ts +11 -0
  262. package/components/ix-modal-example.js +58 -0
  263. package/components/ix-modal-example.js.map +1 -0
  264. package/components/ix-modal-footer.d.ts +11 -0
  265. package/components/ix-modal-footer.js +35 -0
  266. package/components/ix-modal-footer.js.map +1 -0
  267. package/components/ix-modal-header.d.ts +11 -0
  268. package/components/ix-modal-header.js +84 -0
  269. package/components/ix-modal-header.js.map +1 -0
  270. package/components/ix-modal-loading.d.ts +11 -0
  271. package/components/ix-modal-loading.js +41 -0
  272. package/components/ix-modal-loading.js.map +1 -0
  273. package/components/ix-modal.d.ts +11 -0
  274. package/components/ix-modal.js +155 -0
  275. package/components/ix-modal.js.map +1 -0
  276. package/components/ix-pagination.d.ts +11 -0
  277. package/components/ix-pagination.js +211 -0
  278. package/components/ix-pagination.js.map +1 -0
  279. package/components/ix-pill.d.ts +11 -0
  280. package/components/ix-pill.js +78 -0
  281. package/components/ix-pill.js.map +1 -0
  282. package/components/ix-push-card.d.ts +11 -0
  283. package/components/ix-push-card.js +80 -0
  284. package/components/ix-push-card.js.map +1 -0
  285. package/components/ix-row.d.ts +11 -0
  286. package/components/ix-row.js +35 -0
  287. package/components/ix-row.js.map +1 -0
  288. package/components/ix-select-item.d.ts +11 -0
  289. package/components/ix-select-item.js +8 -0
  290. package/components/ix-select-item.js.map +1 -0
  291. package/components/ix-select.d.ts +11 -0
  292. package/components/ix-select.js +8 -0
  293. package/components/ix-select.js.map +1 -0
  294. package/components/ix-slider.d.ts +11 -0
  295. package/components/ix-slider.js +192 -0
  296. package/components/ix-slider.js.map +1 -0
  297. package/components/ix-spinner.d.ts +11 -0
  298. package/components/ix-spinner.js +8 -0
  299. package/components/ix-spinner.js.map +1 -0
  300. package/components/ix-split-button-item.d.ts +11 -0
  301. package/components/ix-split-button-item.js +51 -0
  302. package/components/ix-split-button-item.js.map +1 -0
  303. package/components/ix-split-button.d.ts +11 -0
  304. package/components/ix-split-button.js +97 -0
  305. package/components/ix-split-button.js.map +1 -0
  306. package/components/ix-tab-item.d.ts +11 -0
  307. package/components/ix-tab-item.js +8 -0
  308. package/components/ix-tab-item.js.map +1 -0
  309. package/components/ix-tabs.d.ts +11 -0
  310. package/components/ix-tabs.js +8 -0
  311. package/components/ix-tabs.js.map +1 -0
  312. package/components/ix-tile.d.ts +11 -0
  313. package/components/ix-tile.js +59 -0
  314. package/components/ix-tile.js.map +1 -0
  315. package/components/ix-time-picker.d.ts +11 -0
  316. package/components/ix-time-picker.js +8 -0
  317. package/components/ix-time-picker.js.map +1 -0
  318. package/components/ix-toast-container.d.ts +11 -0
  319. package/components/ix-toast-container.js +124 -0
  320. package/components/ix-toast-container.js.map +1 -0
  321. package/components/ix-toast.d.ts +11 -0
  322. package/components/ix-toast.js +8 -0
  323. package/components/ix-toast.js.map +1 -0
  324. package/components/ix-toggle-button.d.ts +11 -0
  325. package/components/ix-toggle-button.js +105 -0
  326. package/components/ix-toggle-button.js.map +1 -0
  327. package/components/ix-toggle.d.ts +11 -0
  328. package/components/ix-toggle.js +62 -0
  329. package/components/ix-toggle.js.map +1 -0
  330. package/components/ix-tooltip.d.ts +11 -0
  331. package/components/ix-tooltip.js +8 -0
  332. package/components/ix-tooltip.js.map +1 -0
  333. package/components/ix-tree-item.d.ts +11 -0
  334. package/components/ix-tree-item.js +8 -0
  335. package/components/ix-tree-item.js.map +1 -0
  336. package/components/ix-tree.d.ts +11 -0
  337. package/components/ix-tree.js +727 -0
  338. package/components/ix-tree.js.map +1 -0
  339. package/components/ix-typography.d.ts +11 -0
  340. package/components/ix-typography.js +8 -0
  341. package/components/ix-typography.js.map +1 -0
  342. package/components/ix-upload.d.ts +11 -0
  343. package/components/ix-upload.js +147 -0
  344. package/components/ix-upload.js.map +1 -0
  345. package/components/ix-validation-tooltip.d.ts +11 -0
  346. package/components/ix-validation-tooltip.js +170 -0
  347. package/components/ix-validation-tooltip.js.map +1 -0
  348. package/components/ix-workflow-step.d.ts +11 -0
  349. package/components/ix-workflow-step.js +120 -0
  350. package/components/ix-workflow-step.js.map +1 -0
  351. package/components/ix-workflow-steps.d.ts +11 -0
  352. package/components/ix-workflow-steps.js +99 -0
  353. package/components/ix-workflow-steps.js.map +1 -0
  354. package/components/logical-filter-operator.js +35 -0
  355. package/components/logical-filter-operator.js.map +1 -0
  356. package/components/luxon.js +7828 -0
  357. package/components/luxon.js.map +1 -0
  358. package/components/map-navigation-overlay.js +89 -0
  359. package/components/map-navigation-overlay.js.map +1 -0
  360. package/components/menu-avatar-item.js +45 -0
  361. package/components/menu-avatar-item.js.map +1 -0
  362. package/components/menu-item.js +92 -0
  363. package/components/menu-item.js.map +1 -0
  364. package/components/menu-service.js +156 -0
  365. package/components/menu-service.js.map +1 -0
  366. package/components/modal.js +245 -0
  367. package/components/modal.js.map +1 -0
  368. package/components/mutation-observer.js +13 -0
  369. package/components/mutation-observer.js.map +1 -0
  370. package/components/my-component.d.ts +11 -0
  371. package/components/my-component.js +34 -0
  372. package/components/my-component.js.map +1 -0
  373. package/components/package.json +8 -0
  374. package/components/rwd.util.js +41 -0
  375. package/components/rwd.util.js.map +1 -0
  376. package/components/select-item.js +92 -0
  377. package/components/select-item.js.map +1 -0
  378. package/components/select.js +410 -0
  379. package/components/select.js.map +1 -0
  380. package/components/shadow-dom.js +21 -0
  381. package/components/shadow-dom.js.map +1 -0
  382. package/components/spinner.js +48 -0
  383. package/components/spinner.js.map +1 -0
  384. package/components/tab-item.js +87 -0
  385. package/components/tab-item.js.map +1 -0
  386. package/components/tabs.js +227 -0
  387. package/components/tabs.js.map +1 -0
  388. package/components/theme-switcher.js +123 -0
  389. package/components/theme-switcher.js.map +1 -0
  390. package/components/time-picker.js +252 -0
  391. package/components/time-picker.js.map +1 -0
  392. package/components/toast.js +105 -0
  393. package/components/toast.js.map +1 -0
  394. package/components/tooltip.js +197 -0
  395. package/components/tooltip.js.map +1 -0
  396. package/components/tree-item.js +51 -0
  397. package/components/tree-item.js.map +1 -0
  398. package/components/typed-event.js +46 -0
  399. package/components/typed-event.js.map +1 -0
  400. package/components/typography.js +76 -0
  401. package/components/typography.js.map +1 -0
  402. package/components/upload-file-state.js +19 -0
  403. package/components/upload-file-state.js.map +1 -0
  404. package/dist/cjs/{a11y-4fdcefb4.js → a11y-7e1c1b86.js} +2 -2
  405. package/dist/cjs/a11y-7e1c1b86.js.map +1 -0
  406. package/dist/cjs/ix-application-header.cjs.entry.js +15 -2
  407. package/dist/cjs/ix-application-header.cjs.entry.js.map +1 -1
  408. package/dist/cjs/ix-blind.cjs.entry.js +1 -1
  409. package/dist/cjs/ix-breadcrumb-item.cjs.entry.js +11 -4
  410. package/dist/cjs/ix-breadcrumb-item.cjs.entry.js.map +1 -1
  411. package/dist/cjs/ix-breadcrumb.cjs.entry.js +5 -2
  412. package/dist/cjs/ix-breadcrumb.cjs.entry.js.map +1 -1
  413. package/dist/cjs/ix-burger-menu.cjs.entry.js +1 -1
  414. package/dist/cjs/ix-button.cjs.entry.js +1 -1
  415. package/dist/cjs/ix-button.cjs.entry.js.map +1 -1
  416. package/dist/cjs/ix-category-filter.cjs.entry.js +1 -1
  417. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  418. package/dist/cjs/ix-drawer.cjs.entry.js +1 -1
  419. package/dist/cjs/ix-drawer.cjs.entry.js.map +1 -1
  420. package/dist/cjs/ix-dropdown.cjs.entry.js +9 -4
  421. package/dist/cjs/ix-dropdown.cjs.entry.js.map +1 -1
  422. package/dist/cjs/ix-icon-button_2.cjs.entry.js +1 -1
  423. package/dist/cjs/ix-icon-button_2.cjs.entry.js.map +1 -1
  424. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +2 -2
  425. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js.map +1 -1
  426. package/dist/cjs/ix-input-group.cjs.entry.js +16 -3
  427. package/dist/cjs/ix-input-group.cjs.entry.js.map +1 -1
  428. package/dist/cjs/ix-menu.cjs.entry.js.map +1 -1
  429. package/dist/cjs/ix-modal.cjs.entry.js +2 -3
  430. package/dist/cjs/ix-modal.cjs.entry.js.map +1 -1
  431. package/dist/cjs/ix-pagination.cjs.entry.js +3 -3
  432. package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -1
  433. package/dist/cjs/ix-slider.cjs.entry.js +1 -1
  434. package/dist/cjs/ix-toggle-button.cjs.entry.js +1 -1
  435. package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
  436. package/dist/cjs/loader.cjs.js +1 -1
  437. package/dist/cjs/siemens-ix.cjs.js +1 -1
  438. package/dist/collection/components/application-header/application-header.js +18 -3
  439. package/dist/collection/components/application-header/application-header.js.map +1 -1
  440. package/dist/collection/components/application-header/test/application-headet.ct.js +16 -1
  441. package/dist/collection/components/application-header/test/application-headet.ct.js.map +1 -1
  442. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -1
  443. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  444. package/dist/collection/components/breadcrumb-item/breadcrumb-item.css +36 -0
  445. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +14 -2
  446. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js.map +1 -1
  447. package/dist/collection/components/button/button.css +18 -0
  448. package/dist/collection/components/button/test/button.ct.js +6 -0
  449. package/dist/collection/components/button/test/button.ct.js.map +1 -1
  450. package/dist/collection/components/category-filter/category-filter.css +18 -0
  451. package/dist/collection/components/drawer/drawer.css +4 -0
  452. package/dist/collection/components/dropdown/dropdown.js +9 -4
  453. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  454. package/dist/collection/components/dropdown/test/dropdown.ct.js +21 -0
  455. package/dist/collection/components/dropdown/test/dropdown.ct.js.map +1 -1
  456. package/dist/collection/components/icon-button/icon-button.css +18 -0
  457. package/dist/collection/components/icon-toggle-button/icon-toggle-button.css +18 -0
  458. package/dist/collection/components/input-group/input-group.js +16 -3
  459. package/dist/collection/components/input-group/input-group.js.map +1 -1
  460. package/dist/collection/components/input-group/tests/input-group.ct.js +86 -0
  461. package/dist/collection/components/input-group/tests/input-group.ct.js.map +1 -0
  462. package/dist/collection/components/menu/menu.js +4 -1
  463. package/dist/collection/components/menu/menu.js.map +1 -1
  464. package/dist/collection/components/modal/modal.js +1 -2
  465. package/dist/collection/components/modal/modal.js.map +1 -1
  466. package/dist/collection/components/pagination/pagination.css +18 -0
  467. package/dist/collection/components/pagination/pagination.js +1 -1
  468. package/dist/collection/components/pagination/pagination.js.map +1 -1
  469. package/dist/collection/components/pagination/test/pagination.ct.js +20 -0
  470. package/dist/collection/components/pagination/test/pagination.ct.js.map +1 -1
  471. package/dist/collection/components/utils/a11y.js +1 -1
  472. package/dist/collection/components/utils/a11y.js.map +1 -1
  473. package/dist/esm/a11y-115b6a36.js +79 -0
  474. package/dist/esm/a11y-115b6a36.js.map +1 -0
  475. package/dist/esm/ix-application-header.entry.js +15 -2
  476. package/dist/esm/ix-application-header.entry.js.map +1 -1
  477. package/dist/esm/ix-blind.entry.js +1 -1
  478. package/dist/esm/ix-breadcrumb-item.entry.js +11 -4
  479. package/dist/esm/ix-breadcrumb-item.entry.js.map +1 -1
  480. package/dist/esm/ix-breadcrumb.entry.js +5 -2
  481. package/dist/esm/ix-breadcrumb.entry.js.map +1 -1
  482. package/dist/esm/ix-burger-menu.entry.js +1 -1
  483. package/dist/esm/ix-button.entry.js +1 -1
  484. package/dist/esm/ix-button.entry.js.map +1 -1
  485. package/dist/esm/ix-category-filter.entry.js +1 -1
  486. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  487. package/dist/esm/ix-drawer.entry.js +1 -1
  488. package/dist/esm/ix-drawer.entry.js.map +1 -1
  489. package/dist/esm/ix-dropdown.entry.js +9 -4
  490. package/dist/esm/ix-dropdown.entry.js.map +1 -1
  491. package/dist/esm/ix-icon-button_2.entry.js +1 -1
  492. package/dist/esm/ix-icon-button_2.entry.js.map +1 -1
  493. package/dist/esm/ix-icon-toggle-button.entry.js +2 -2
  494. package/dist/esm/ix-icon-toggle-button.entry.js.map +1 -1
  495. package/dist/esm/ix-input-group.entry.js +16 -3
  496. package/dist/esm/ix-input-group.entry.js.map +1 -1
  497. package/dist/esm/ix-menu.entry.js.map +1 -1
  498. package/dist/esm/ix-modal.entry.js +2 -3
  499. package/dist/esm/ix-modal.entry.js.map +1 -1
  500. package/dist/esm/ix-pagination.entry.js +3 -3
  501. package/dist/esm/ix-pagination.entry.js.map +1 -1
  502. package/dist/esm/ix-slider.entry.js +1 -1
  503. package/dist/esm/ix-toggle-button.entry.js +1 -1
  504. package/dist/esm/ix-toggle.entry.js +1 -1
  505. package/dist/esm/loader.js +1 -1
  506. package/dist/esm/siemens-ix.js +1 -1
  507. package/dist/siemens-ix/{p-4796a3ae.entry.js → p-042b8889.entry.js} +2 -2
  508. package/dist/siemens-ix/{p-b53bed3a.entry.js → p-228c5657.entry.js} +2 -2
  509. package/dist/siemens-ix/{p-fa0d5f4e.entry.js → p-28d29e36.entry.js} +2 -2
  510. package/dist/siemens-ix/p-2fd30d79.js +2 -0
  511. package/dist/siemens-ix/p-2fd30d79.js.map +1 -0
  512. package/dist/siemens-ix/p-302cd093.entry.js +2 -0
  513. package/dist/siemens-ix/{p-eb29049a.entry.js.map → p-302cd093.entry.js.map} +1 -1
  514. package/dist/siemens-ix/p-32265ee2.entry.js +2 -0
  515. package/dist/siemens-ix/p-32265ee2.entry.js.map +1 -0
  516. package/dist/siemens-ix/p-355f9085.entry.js +2 -0
  517. package/dist/siemens-ix/{p-74a7d191.entry.js.map → p-355f9085.entry.js.map} +1 -1
  518. package/dist/siemens-ix/p-574e3cd1.entry.js +2 -0
  519. package/dist/siemens-ix/p-574e3cd1.entry.js.map +1 -0
  520. package/dist/siemens-ix/p-59dc0873.entry.js +2 -0
  521. package/dist/siemens-ix/{p-90efad65.entry.js.map → p-59dc0873.entry.js.map} +1 -1
  522. package/dist/siemens-ix/p-7cc23245.entry.js +2 -0
  523. package/dist/siemens-ix/p-7cc23245.entry.js.map +1 -0
  524. package/dist/siemens-ix/p-9249df8d.entry.js +2 -0
  525. package/dist/siemens-ix/{p-d78cd3f4.entry.js.map → p-9249df8d.entry.js.map} +1 -1
  526. package/dist/siemens-ix/p-ad94f795.entry.js +2 -0
  527. package/dist/siemens-ix/p-ad94f795.entry.js.map +1 -0
  528. package/dist/siemens-ix/{p-0ebc6c4d.entry.js → p-b2042a15.entry.js} +2 -2
  529. package/dist/siemens-ix/p-b2042a15.entry.js.map +1 -0
  530. package/dist/siemens-ix/p-bd873b87.entry.js +2 -0
  531. package/dist/siemens-ix/p-bd873b87.entry.js.map +1 -0
  532. package/dist/siemens-ix/{p-6ae65cac.entry.js → p-c1318e16.entry.js} +2 -2
  533. package/dist/siemens-ix/p-c7e502d7.entry.js +2 -0
  534. package/dist/siemens-ix/p-c7e502d7.entry.js.map +1 -0
  535. package/dist/siemens-ix/p-dcb957d8.entry.js.map +1 -1
  536. package/dist/siemens-ix/{p-77b14ca1.entry.js → p-f304f7ce.entry.js} +2 -2
  537. package/dist/siemens-ix/p-fa7f3eef.entry.js +2 -0
  538. package/dist/siemens-ix/p-fa7f3eef.entry.js.map +1 -0
  539. package/dist/siemens-ix/siemens-ix-core.css +1 -1
  540. package/dist/siemens-ix/siemens-ix.css +12 -0
  541. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  542. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  543. package/dist/types/components/application-header/application-header.d.ts +1 -0
  544. package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +2 -0
  545. package/dist/types/components/input-group/input-group.d.ts +1 -0
  546. package/dist/types/components/input-group/tests/input-group.ct.d.ts +1 -0
  547. package/dist/types/components/menu/menu.d.ts +2 -0
  548. package/dist/types/components.d.ts +2 -0
  549. package/package.json +1 -1
  550. package/scss/components/_checkboxes.scss +3 -0
  551. package/scss/components/_radiobuttons.scss +5 -0
  552. package/dist/cjs/a11y-4fdcefb4.js.map +0 -1
  553. package/dist/esm/a11y-d5dd20ad.js.map +0 -1
  554. package/dist/siemens-ix/p-0ebc6c4d.entry.js.map +0 -1
  555. package/dist/siemens-ix/p-2e75f0e4.entry.js +0 -2
  556. package/dist/siemens-ix/p-2e75f0e4.entry.js.map +0 -1
  557. package/dist/siemens-ix/p-66d7fbd9.entry.js +0 -2
  558. package/dist/siemens-ix/p-66d7fbd9.entry.js.map +0 -1
  559. package/dist/siemens-ix/p-74a7d191.entry.js +0 -2
  560. package/dist/siemens-ix/p-774eca79.entry.js +0 -2
  561. package/dist/siemens-ix/p-774eca79.entry.js.map +0 -1
  562. package/dist/siemens-ix/p-78c9489b.js +0 -2
  563. package/dist/siemens-ix/p-78c9489b.js.map +0 -1
  564. package/dist/siemens-ix/p-7a884056.entry.js +0 -2
  565. package/dist/siemens-ix/p-7a884056.entry.js.map +0 -1
  566. package/dist/siemens-ix/p-7b362f58.entry.js +0 -2
  567. package/dist/siemens-ix/p-7b362f58.entry.js.map +0 -1
  568. package/dist/siemens-ix/p-90efad65.entry.js +0 -2
  569. package/dist/siemens-ix/p-d78cd3f4.entry.js +0 -2
  570. package/dist/siemens-ix/p-d9c99b88.entry.js +0 -2
  571. package/dist/siemens-ix/p-d9c99b88.entry.js.map +0 -1
  572. package/dist/siemens-ix/p-eb29049a.entry.js +0 -2
  573. package/dist/siemens-ix/p-f7b95fd7.entry.js +0 -2
  574. package/dist/siemens-ix/p-f7b95fd7.entry.js.map +0 -1
  575. /package/dist/siemens-ix/{p-4796a3ae.entry.js.map → p-042b8889.entry.js.map} +0 -0
  576. /package/dist/siemens-ix/{p-b53bed3a.entry.js.map → p-228c5657.entry.js.map} +0 -0
  577. /package/dist/siemens-ix/{p-fa0d5f4e.entry.js.map → p-28d29e36.entry.js.map} +0 -0
  578. /package/dist/siemens-ix/{p-6ae65cac.entry.js.map → p-c1318e16.entry.js.map} +0 -0
  579. /package/dist/siemens-ix/{p-77b14ca1.entry.js.map → p-f304f7ce.entry.js.map} +0 -0
@@ -0,0 +1,36 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const cardCss = ":host{display:flex;position:relative;flex-direction:column;align-items:flex-start;align-self:flex-start;overflow:hidden;width:20rem;border:1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));border-radius:var(--theme-default-border-radius)}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .card-content{display:block;position:relative;flex-shrink:0;flex-grow:1;width:100%;height:calc(100% - 2rem);background-color:var(--ix-card-background, transparent);border-top-left-radius:var(--theme-default-border-radius);border-top-right-radius:var(--theme-default-border-radius)}:host .card-footer{display:flex;position:relative;width:100%}:host(.card-insight){--ix-card-background:transparent;--ix-card-border-color:var(--theme-color-soft-bdr)}:host(.card-notification){--ix-card-background:var(--theme-color-component-1)}:host(.card-alarm){--ix-card-background:var(--theme-color-alarm);color:var(--theme-color-alarm--contrast)}:host(.card-critical){--ix-card-background:var(--theme-color-critical);color:var(--theme-color-critical--contrast)}:host(.card-warning){--ix-card-background:var(--theme-color-warning);color:var(--theme-color-warning--contrast)}:host(.card-success){--ix-card-background:var(--theme-color-success);color:var(--theme-color-success--contrast)}:host(.card-info){--ix-card-background:var(--theme-color-info);color:var(--theme-color-info--contrast)}:host(.card-neutral){--ix-card-background:var(--theme-color-neutral);color:var(--theme-color-neutral--contrast)}:host(.card-primary){--ix-card-background:var(--theme-color-primary);color:var(--theme-color-neutral--contrast)}:host(:not(.card-insight)){--ix-card-border-color:transparent}";
4
+
5
+ const Card = /*@__PURE__*/ proxyCustomElement(class Card extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.__attachShadow();
10
+ this.variant = 'insight';
11
+ }
12
+ render() {
13
+ return (h(Host, { class: `card-${this.variant}` }, h("div", { class: "card-content" }, h("slot", null)), h("div", { class: "card-footer" }, h("slot", { name: "card-accordion" }))));
14
+ }
15
+ get hostElement() { return this; }
16
+ static get style() { return cardCss; }
17
+ }, [1, "ix-card", {
18
+ "variant": [1]
19
+ }]);
20
+ function defineCustomElement() {
21
+ if (typeof customElements === "undefined") {
22
+ return;
23
+ }
24
+ const components = ["ix-card"];
25
+ components.forEach(tagName => { switch (tagName) {
26
+ case "ix-card":
27
+ if (!customElements.get(tagName)) {
28
+ customElements.define(tagName, Card);
29
+ }
30
+ break;
31
+ } });
32
+ }
33
+
34
+ export { Card as C, defineCustomElement as d };
35
+
36
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"file":"card.js","mappings":";;AAAA,MAAM,OAAO,GAAG,krEAAkrE;;MCqBrrE,IAAI;;;;;mBAMgB,SAAS;;EAExC,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,IACjC,WAAK,KAAK,EAAC,cAAc,IACvB,eAAa,CACT,EACN,WAAK,KAAK,EAAC,aAAa,IACtB,YAAM,IAAI,EAAC,gBAAgB,GAAQ,CAC/B,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/card/card.scss?tag=ix-card&encapsulation=shadow","./src/components/card/card.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: flex-start;\n align-self: flex-start;\n overflow: hidden;\n\n width: 20rem;\n\n border: 1px solid var(--ix-card-border-color, var(--theme-color-soft-bdr));\n border-radius: var(--theme-default-border-radius);\n\n .card-content {\n display: block;\n position: relative;\n flex-shrink: 0;\n flex-grow: 1;\n width: 100%;\n height: calc(100% - 2rem);\n background-color: var(--ix-card-background, transparent);\n border-top-left-radius: var(--theme-default-border-radius);\n border-top-right-radius: var(--theme-default-border-radius);\n }\n\n .card-footer {\n display: flex;\n position: relative;\n width: 100%;\n }\n}\n\n:host(.card-insight) {\n --ix-card-background: transparent;\n --ix-card-border-color: var(--theme-color-soft-bdr);\n}\n\n:host(.card-notification) {\n --ix-card-background: var(--theme-color-component-1);\n}\n\n:host(.card-alarm) {\n --ix-card-background: var(--theme-color-alarm);\n color: var(--theme-color-alarm--contrast);\n}\n\n:host(.card-critical) {\n --ix-card-background: var(--theme-color-critical);\n color: var(--theme-color-critical--contrast);\n}\n\n:host(.card-warning) {\n --ix-card-background: var(--theme-color-warning);\n color: var(--theme-color-warning--contrast);\n}\n\n:host(.card-success) {\n --ix-card-background: var(--theme-color-success);\n color: var(--theme-color-success--contrast);\n}\n\n:host(.card-info) {\n --ix-card-background: var(--theme-color-info);\n color: var(--theme-color-info--contrast);\n}\n\n:host(.card-neutral) {\n --ix-card-background: var(--theme-color-neutral);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(.card-primary) {\n --ix-card-background: var(--theme-color-primary);\n color: var(--theme-color-neutral--contrast);\n}\n\n:host(:not(.card-insight)) {\n --ix-card-border-color: transparent;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\n\nexport type CardVariant =\n | 'insight'\n | 'notification'\n | 'alarm'\n | 'critical'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'success'\n | 'primary';\n\n/**\n * @since 1.6.0\n */\n@Component({\n tag: 'ix-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\nexport class Card {\n @Element() hostElement: HTMLIxCardElement;\n\n /**\n * Card variant\n */\n @Prop() variant: CardVariant = 'insight';\n\n render() {\n return (\n <Host class={`card-${this.variant}`}>\n <div class=\"card-content\">\n <slot></slot>\n </div>\n <div class=\"card-footer\">\n <slot name=\"card-accordion\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,101 @@
1
+ import { T as TypedEvent } from './typed-event.js';
2
+
3
+ /*
4
+ * SPDX-FileCopyrightText: 2023 Siemens AG
5
+ *
6
+ * SPDX-License-Identifier: MIT
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+ /**
12
+ * A function which creates a Context value object
13
+ */
14
+ function createContext(name, initialValue) {
15
+ return {
16
+ name,
17
+ initialValue,
18
+ };
19
+ }
20
+ /**
21
+ * An event fired by a context requester to signal it desires a named context.
22
+ *
23
+ * A provider should inspect the `context` property of the event to determine if it has a value that can
24
+ * satisfy the request, calling the `callback` with the requested value if so.
25
+ *
26
+ * If the requested context event contains a truthy `subscribe` value, then a provider can call the callback
27
+ * multiple times if the value is changed, if this is the case the provider should pass an `unsubscribe`
28
+ * function to the callback which requesters can invoke to indicate they no longer wish to receive these updates.
29
+ */
30
+ class ContextEvent extends Event {
31
+ constructor(context, callback, subscribe) {
32
+ super('context-request', { bubbles: true, composed: true });
33
+ this.context = context;
34
+ this.callback = callback;
35
+ this.subscribe = subscribe;
36
+ }
37
+ }
38
+ function useContextConsumer(hostElement, context, onContextReceived, subscribe) {
39
+ let _unsubscribe;
40
+ hostElement.dispatchEvent(new ContextEvent(context, (ctx, unSub) => {
41
+ onContextReceived(ctx, unSub);
42
+ _unsubscribe = unSub;
43
+ }, subscribe));
44
+ return {
45
+ unsubscribe: () => {
46
+ _unsubscribe();
47
+ },
48
+ };
49
+ }
50
+ function useContextProvider(hostElement, context, contextPayload) {
51
+ const requestContext = new TypedEvent();
52
+ const updateContext = new TypedEvent();
53
+ const requests = new Set();
54
+ hostElement.addEventListener('context-request', (requestContextEvent) => {
55
+ if ((requestContextEvent === null || requestContextEvent === void 0 ? void 0 : requestContextEvent.context.name) !== context.name) {
56
+ return;
57
+ }
58
+ requestContextEvent.stopPropagation();
59
+ if (requestContextEvent.subscribe) {
60
+ requests.add(requestContextEvent);
61
+ }
62
+ requestContext.emit(requestContextEvent);
63
+ if (contextPayload) {
64
+ requestContextEvent.callback(contextPayload, () => {
65
+ requests.delete(requestContextEvent);
66
+ });
67
+ }
68
+ });
69
+ updateContext.on((context) => {
70
+ requests.forEach((r) => r.callback(context, () => {
71
+ requests.delete(r);
72
+ }));
73
+ });
74
+ return {
75
+ emit: (context) => {
76
+ updateContext.emit(context);
77
+ },
78
+ };
79
+ }
80
+
81
+ /*
82
+ * SPDX-FileCopyrightText: 2023 Siemens AG
83
+ *
84
+ * SPDX-License-Identifier: MIT
85
+ *
86
+ * This source code is licensed under the MIT license found in the
87
+ * LICENSE file in the root directory of this source tree.
88
+ */
89
+ const closestIxMenu = (element) => {
90
+ const menuElement = element.closest('ix-menu');
91
+ return menuElement;
92
+ };
93
+ const ApplicationLayoutContext = createContext('application-layout-context', {
94
+ hideHeader: false,
95
+ host: null,
96
+ sidebar: false,
97
+ });
98
+
99
+ export { ApplicationLayoutContext as A, useContextConsumer as a, closestIxMenu as c, useContextProvider as u };
100
+
101
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"file":"context.js","mappings":";;AAAA;;;;;;;;AA+BA;;;SAGgB,aAAa,CAC3B,IAAY,EACZ,YAAgB;EAEhB,OAAO;IACL,IAAI;IACJ,YAAY;GACb,CAAC;AACJ,CAAC;AAWD;;;;;;;;;;MAUa,YAAuC,SAAQ,KAAK;EAC/D,YACkB,OAAU,EACV,QAAyC,EACzC,SAAmB;IAEnC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAJ5C,YAAO,GAAP,OAAO,CAAG;IACV,aAAQ,GAAR,QAAQ,CAAiC;IACzC,cAAS,GAAT,SAAS,CAAU;GAGpC;CACF;SAgBe,kBAAkB,CAIhC,WAAc,EACd,OAAU,EACV,iBAGS,EACT,SAAmB;EAEnB,IAAI,YAAwB,CAAC;EAC7B,WAAW,CAAC,aAAa,CACvB,IAAI,YAAY,CACd,OAAO,EACP,CAAC,GAAG,EAAE,KAAK;IACT,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,YAAY,GAAG,KAAK,CAAC;GACtB,EACD,SAAS,CACV,CACF,CAAC;EAEF,OAAO;IACL,WAAW,EAAE;MACX,YAAY,EAAE,CAAC;KAChB;GACF,CAAC;AACJ,CAAC;SAKe,kBAAkB,CAKhC,WAAc,EACd,OAAU,EACV,cAA+B;EAE/B,MAAM,cAAc,GAAG,IAAI,UAAU,EAAmB,CAAC;EACzD,MAAM,aAAa,GAAG,IAAI,UAAU,EAAkB,CAAC;EAEvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;EAEzD,WAAW,CAAC,gBAAgB,CAC1B,iBAAiB,EACjB,CAAC,mBAAoC;IACnC,IAAI,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,CAAC,IAAI,MAAK,OAAO,CAAC,IAAI,EAAE;MACtD,OAAO;KACR;IAED,mBAAmB,CAAC,eAAe,EAAE,CAAC;IAEtC,IAAI,mBAAmB,CAAC,SAAS,EAAE;MACjC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;KACnC;IACD,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEzC,IAAI,cAAc,EAAE;MAClB,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE;QAC3C,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;OACtC,CAAC,CAAC;KACJ;GACF,CACF,CAAC;EAEF,aAAa,CAAC,EAAE,CAAC,CAAC,OAAuB;IACvC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KACjB,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE;MAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACpB,CAAC,CACH,CAAC;GACH,CAAC,CAAC;EAEH,OAAO;IACL,IAAI,EAAE,CAAC,OAAuB;MAC5B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7B;GACF,CAAC;AACJ;;AC1KA;;;;;;;;MAWa,aAAa,GAAG,CAAC,OAAgB;EAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;EAC/C,OAAO,WAAW,CAAC;AACrB,EAAE;MAEW,wBAAwB,GAAG,aAAa,CAIlD,4BAA4B,EAAE;EAC/B,UAAU,EAAE,KAAK;EACjB,IAAI,EAAE,IAAI;EACV,OAAO,EAAE,KAAK;CACf;;;;","names":[],"sources":["./src/components/utils/context.ts","./src/components/utils/application-layout/context.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { TypedEvent } from './typed-event';\n\n/**\n * A Context object defines an optional initial value for a Context, as well as a name identifier for debugging purposes.\n */\nexport type Context<T> = {\n name: string;\n initialValue?: T;\n};\n\n/**\n * An unknown context type\n */\nexport type UnknownContext = Context<unknown>;\n\n/**\n * A helper type which can extract a Context value type from a Context type\n */\nexport type ContextType<T extends UnknownContext> = T extends Context<infer Y>\n ? Y\n : never;\n\n/**\n * A function which creates a Context value object\n */\nexport function createContext<T>(\n name: string,\n initialValue?: T\n): Readonly<Context<T>> {\n return {\n name,\n initialValue,\n };\n}\n\n/**\n * A callback which is provided by a context requester and is called with the value satisfying the request.\n * This callback can be called multiple times by context providers as the requested value is changed.\n */\nexport type ContextCallback<ValueType> = (\n value: ValueType,\n unsubscribe?: () => void\n) => void;\n\n/**\n * An event fired by a context requester to signal it desires a named context.\n *\n * A provider should inspect the `context` property of the event to determine if it has a value that can\n * satisfy the request, calling the `callback` with the requested value if so.\n *\n * If the requested context event contains a truthy `subscribe` value, then a provider can call the callback\n * multiple times if the value is changed, if this is the case the provider should pass an `unsubscribe`\n * function to the callback which requesters can invoke to indicate they no longer wish to receive these updates.\n */\nexport class ContextEvent<T extends UnknownContext> extends Event {\n public constructor(\n public readonly context: T,\n public readonly callback: ContextCallback<ContextType<T>>,\n public readonly subscribe?: boolean\n ) {\n super('context-request', { bubbles: true, composed: true });\n }\n}\n\ndeclare global {\n interface HTMLElementEventMap {\n /**\n * A 'context-request' event can be emitted by any element which desires\n * a context value to be injected by an external provider.\n */\n 'context-request': ContextEvent<UnknownContext>;\n }\n}\n\nexport type ContextConsumerSubscription = {\n unsubscribe: () => void;\n};\n\nexport function useContextConsumer<\n T extends HTMLElement,\n C extends UnknownContext\n>(\n hostElement: T,\n context: C,\n onContextReceived: (\n context: ContextType<C>,\n unsubscribe?: () => void\n ) => void,\n subscribe?: boolean\n): ContextConsumerSubscription {\n let _unsubscribe: () => void;\n hostElement.dispatchEvent(\n new ContextEvent(\n context,\n (ctx, unSub) => {\n onContextReceived(ctx, unSub);\n _unsubscribe = unSub;\n },\n subscribe\n )\n );\n\n return {\n unsubscribe: () => {\n _unsubscribe();\n },\n };\n}\nexport type ContextProvider<C extends Context<{}> = Context<unknown>> = {\n emit: (context: ContextType<C>) => void;\n};\n\nexport function useContextProvider<\n X extends {},\n C extends Context<X>,\n T extends HTMLElement = HTMLElement\n>(\n hostElement: T,\n context: C,\n contextPayload?: ContextType<C>\n): ContextProvider<C> {\n const requestContext = new TypedEvent<ContextEvent<C>>();\n const updateContext = new TypedEvent<ContextType<C>>();\n\n const requests = new Set<ContextEvent<UnknownContext>>();\n\n hostElement.addEventListener(\n 'context-request',\n (requestContextEvent: ContextEvent<C>) => {\n if (requestContextEvent?.context.name !== context.name) {\n return;\n }\n\n requestContextEvent.stopPropagation();\n\n if (requestContextEvent.subscribe) {\n requests.add(requestContextEvent);\n }\n requestContext.emit(requestContextEvent);\n\n if (contextPayload) {\n requestContextEvent.callback(contextPayload, () => {\n requests.delete(requestContextEvent);\n });\n }\n }\n );\n\n updateContext.on((context: ContextType<C>) => {\n requests.forEach((r) =>\n r.callback(context, () => {\n requests.delete(r);\n })\n );\n });\n\n return {\n emit: (context: ContextType<C>) => {\n updateContext.emit(context);\n },\n };\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { createContext } from '../context';\n\nexport const closestIxMenu = (element: Element) => {\n const menuElement = element.closest('ix-menu');\n return menuElement;\n};\n\nexport const ApplicationLayoutContext = createContext<{\n hideHeader: boolean;\n host: 'basic-navigation' | 'map-navigation' | null;\n sidebar?: boolean;\n}>('application-layout-context', {\n hideHeader: false,\n host: null,\n sidebar: false,\n});\n"],"version":3}
@@ -0,0 +1,10 @@
1
+ /*
2
+ * SPDX-FileCopyrightText: 2023 Siemens AG
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ export * from '../dist/types/index';
10
+ export * from './index';
@@ -0,0 +1,372 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
2
+ import { l as luxon } from './luxon.js';
3
+ import { d as defineCustomElement$5 } from './button.js';
4
+ import { d as defineCustomElement$4 } from './date-time-card.js';
5
+ import { d as defineCustomElement$3 } from './dropdown.js';
6
+ import { d as defineCustomElement$2 } from './icon-button.js';
7
+ import { d as defineCustomElement$1 } from './spinner.js';
8
+
9
+ const datePickerCss = ":host{display:block;position:relative;width:22rem}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host .header{display:flex;align-items:center;justify-content:space-between}:host .selector{flex-basis:100%;display:flex;align-items:center;justify-content:center;padding:0.25rem 1rem}:host .selector .dropdown{color:var(--theme-menu-item--color);font-size:14px;line-height:20px}:host .selector .fontSize{font-size:16px}:host .selector .capitalize{text-transform:capitalize}:host .selector .arrowYear{display:flex;position:relative;padding:0.75rem 2rem;align-items:center;cursor:pointer}:host .selector .arrowYear:hover{background-color:var(--theme-select-list-item--background--hover)}:host .selector .arrowYear.selected{background-color:var(--theme-select-list-item--background--selected)}:host .selector .arrowYear .arrowPosition{position:absolute;left:calc(1rem - 6px);top:calc(50% - 6px)}:host .selector .arrowYear .checkPosition{position:absolute;left:calc(1rem - 6px);top:calc(50% - 8px)}:host .selector .arrowYear .monthMargin{margin-left:10px}:host .wrapper{display:flex}:host .wrapper .overflow{overflow-y:scroll;max-height:250px}:host .grid{display:grid;grid-template-columns:repeat(8, 40px);grid-template-rows:repeat(7, 40px);align-items:center;justify-items:center;justify-content:center;color:var(--theme-datepicker-today--color)}:host .grid .calendar-item{position:relative;display:flex;justify-content:center;align-items:center;background-color:var(--theme-datepicker-day--background);border:1px solid var(--theme-datepicker-day--background);width:40px;height:40px;cursor:pointer}:host .grid .calendar-item.today{border:1px solid var(--theme-datepicker-today--border-color)}:host .grid .calendar-item.today:hover{background-color:var(--theme-datepicker-day--background--hover)}:host .grid .calendar-item.today:active{background-color:var(--theme-datepicker-day--background--active)}:host .grid .calendar-item.today.selected{box-shadow:inset 0 0 0 1px white}:host .grid .calendar-item.today.selected:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}:host .grid .calendar-item.today.selected:active{background-color:var(--theme-datepicker-day--background--selected-active)}:host .grid .calendar-item.today.selected.disabled{pointer-events:none;background-color:var(--theme-datepicker-day--background--selected-disabled);border:1px solid var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}:host .grid .calendar-item.today.range{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range);border:1px solid var(--theme-datepicker-today--border-color--range);box-shadow:inset 0 0 0 1px white}:host .grid .calendar-item.today.range:hover{background-color:var(--theme-datepicker-day--background--range-hover);border:1px solid var(--theme-datepicker-today--border-color--range-hover)}:host .grid .calendar-item.today.range:active{background-color:var(--theme-datepicker-day--background--range-active);border:1px solid var(--theme-datepicker-today--border-color--range-active)}:host .grid .calendar-item.today.range.disabled{background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled);border:1px solid var(--theme-datepicker-today--border-color--range-disabled)}:host .grid .calendar-item.today.disabled{pointer-events:none;background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled);cursor:default;pointer-events:none}:host .grid .calendar-item:hover{background-color:var(--theme-datepicker-day--background--hover)}:host .grid .calendar-item:active{background-color:var(--theme-datepicker-day--background--active)}:host .grid .calendar-item.selected{background-color:var(--theme-datepicker-day--background--selected);color:var(--theme-datepicker-day--color--selected);border:1px solid var(--theme-datepicker-day--background--selected)}:host .grid .calendar-item.selected:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}:host .grid .calendar-item.selected:active{background-color:var(--theme-datepicker-day--background--selected-active)}:host .grid .calendar-item.selected.disabled{pointer-events:none;background-color:var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}:host .grid .calendar-item.range{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range)}:host .grid .calendar-item.range:hover{background-color:var(--theme-datepicker-day--background--range-hover)}:host .grid .calendar-item.range:active{background-color:var(--theme-datepicker-day--background--range-active)}:host .grid .calendar-item.range.disabled{pointer-events:none;background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled)}:host .grid .calendar-item.disabled{pointer-events:none;background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled)}:host .grid .calendar-item.week-day{color:var(--theme-datepicker-weekday--color);font-size:12px;line-height:20px;border:none;background:none;cursor:initial}:host .grid .calendar-item.empty-day{border:none;background:none;cursor:initial}:host .grid .calendar-item.week-number{font-size:10px;line-height:14px;color:var(--theme-datepicker-ix--color);border:none;background:none;cursor:initial}:host .grid .calendar-item:focus-visible{background-color:var(--theme-datepicker-day--background--selected);border:inset 1px solid var(--theme-datepicker-day--border-color--selected);color:var(--theme-datepicker-day--color--selected);font-size:14px;line-height:20px;letter-spacing:0}:host .button{display:flex;justify-content:flex-end}:host .hidden{display:none}";
10
+
11
+ const DatePicker = /*@__PURE__*/ proxyCustomElement(class DatePicker extends HTMLElement {
12
+ constructor() {
13
+ super();
14
+ this.__registerHost();
15
+ this.__attachShadow();
16
+ this.dateChange = createEvent(this, "dateChange", 7);
17
+ this.dateRangeChange = createEvent(this, "dateRangeChange", 7);
18
+ this.done = createEvent(this, "done", 7);
19
+ this.dateSelect = createEvent(this, "dateSelect", 7);
20
+ this.daysInWeek = 7;
21
+ this.dayNames = luxon.Info.weekdays();
22
+ this.monthNames = luxon.Info.months();
23
+ this.format = 'yyyy/LL/dd';
24
+ this.range = true;
25
+ this.individual = true;
26
+ this.corners = 'rounded';
27
+ this.from = luxon.DateTime.now().toFormat(this.format);
28
+ this.to = null;
29
+ this.minDate = undefined;
30
+ this.maxDate = undefined;
31
+ this.eventDelimiter = ' - ';
32
+ this.textSelectDate = 'Done';
33
+ this.yearValue = this.year;
34
+ this.today = luxon.DateTime.now();
35
+ this.monthValue = this.month;
36
+ this.calendar = [];
37
+ this.years = [...Array(10).keys()].map((year) => year + this.year - 5);
38
+ this.tempYear = this.yearValue;
39
+ this.tempMonth = this.monthValue;
40
+ this.start = luxon.DateTime.fromObject({
41
+ year: this.year,
42
+ month: this.month,
43
+ day: this.day,
44
+ });
45
+ this.end = this.to
46
+ ? luxon.DateTime.fromFormat(this.to, this.format)
47
+ : null;
48
+ this.dropdownButtonRef = undefined;
49
+ this.yearContainerRef = undefined;
50
+ }
51
+ get year() {
52
+ if (this.from !== null) {
53
+ return luxon.DateTime.fromFormat(this.from, this.format).year;
54
+ }
55
+ return luxon.DateTime.now().year;
56
+ }
57
+ get day() {
58
+ if (this.from !== null) {
59
+ return luxon.DateTime.fromFormat(this.from, this.format).day;
60
+ }
61
+ return null;
62
+ }
63
+ get month() {
64
+ if (this.from !== null) {
65
+ return luxon.DateTime.fromFormat(this.from, this.format).month;
66
+ }
67
+ return luxon.DateTime.now().month;
68
+ }
69
+ onDone() {
70
+ var _a, _b;
71
+ this.done.emit(this.getOutputFormat());
72
+ this.dateSelect.emit({
73
+ from: (_a = this.start) === null || _a === void 0 ? void 0 : _a.toFormat(this.format),
74
+ to: (_b = this.end) === null || _b === void 0 ? void 0 : _b.toFormat(this.format),
75
+ });
76
+ }
77
+ onDateChange() {
78
+ var _a, _b;
79
+ const from = (_a = this.start) === null || _a === void 0 ? void 0 : _a.toFormat(this.format);
80
+ const to = (_b = this.end) === null || _b === void 0 ? void 0 : _b.toFormat(this.format);
81
+ this.from = from;
82
+ this.to = to;
83
+ if (this.eventDelimiter) {
84
+ this.dateChange.emit(this.getOutputFormat());
85
+ }
86
+ else {
87
+ this.dateChange.emit({
88
+ from,
89
+ to,
90
+ });
91
+ }
92
+ if (this.range) {
93
+ this.dateRangeChange.emit({
94
+ from,
95
+ to,
96
+ });
97
+ }
98
+ }
99
+ getStartOfMonth(year = luxon.DateTime.local().get('year'), month = luxon.DateTime.local().get('month')) {
100
+ return luxon.DateTime.local(year, month).startOf('month');
101
+ }
102
+ getEndOfMonth(year = luxon.DateTime.local().get('year'), month = luxon.DateTime.local().get('month')) {
103
+ return luxon.DateTime.local(year, month).endOf('month');
104
+ }
105
+ getDaysInMonth(start = this.getStartOfMonth(), end = this.getEndOfMonth()) {
106
+ return Math.ceil(end.diff(start, 'days').days);
107
+ }
108
+ calculateCalendar() {
109
+ const start = this.getStartOfMonth(this.yearValue, this.monthValue);
110
+ const end = this.getEndOfMonth(this.yearValue, this.monthValue);
111
+ const totalDays = this.getDaysInMonth(start, end);
112
+ const totalWeeks = 6;
113
+ const totalDaysInWeeks = totalWeeks * this.daysInWeek;
114
+ const startWeekDay = start.weekday;
115
+ const prependDays = startWeekDay - 1;
116
+ const appendDays = totalDaysInWeeks - totalDays - prependDays;
117
+ let weekdays = [];
118
+ const calendar = [];
119
+ // create list of days
120
+ let days = [...new Array(totalDaysInWeeks).keys()].map((day) => day + 1);
121
+ // add start empty days
122
+ days.unshift(...new Array(prependDays));
123
+ // remove & add end days
124
+ days = days.slice(0, days.length - prependDays - appendDays);
125
+ days.push(...new Array(appendDays));
126
+ // make weeks
127
+ weekdays = days.reduce((result, item, index) => {
128
+ const weekIndex = Math.floor(index / this.daysInWeek);
129
+ if (!result[weekIndex])
130
+ result[weekIndex] = [];
131
+ result[weekIndex].push(item);
132
+ return result;
133
+ }, []);
134
+ for (let index = 1; index <= totalWeeks; index++) {
135
+ const week = weekdays[index - 1];
136
+ const firstWeekDay = week.find((day) => day !== undefined);
137
+ const weekNumber = firstWeekDay
138
+ ? luxon.DateTime.local(this.yearValue, this.monthValue, weekdays[index - 1][0]).weekNumber
139
+ : undefined;
140
+ calendar.push([weekNumber, week]);
141
+ }
142
+ this.calendar = calendar;
143
+ }
144
+ changeMonth(number) {
145
+ if (this.monthValue + number < 1) {
146
+ this.yearValue--;
147
+ this.monthValue = 12;
148
+ }
149
+ else if (this.monthValue + number > 12) {
150
+ this.yearValue++;
151
+ this.monthValue = 1;
152
+ }
153
+ else {
154
+ this.monthValue += number;
155
+ }
156
+ this.calculateCalendar();
157
+ }
158
+ selectMonth(month) {
159
+ this.monthValue = month;
160
+ this.yearValue = this.tempYear;
161
+ this.tempMonth = month;
162
+ }
163
+ infiniteScrollYears() {
164
+ const scroll = this.yearContainerRef.scrollTop;
165
+ const maxScroll = this.yearContainerRef.scrollHeight;
166
+ const atTop = scroll === 0;
167
+ const atBottom = scroll + this.yearContainerRef.getBoundingClientRect().height ===
168
+ maxScroll;
169
+ const limit = 200;
170
+ if (this.years.length > limit)
171
+ return;
172
+ if (atTop) {
173
+ this.years = [
174
+ ...[...Array(5).keys()].map((year) => year + this.years[0] - 5),
175
+ ...this.years,
176
+ ];
177
+ this.yearContainerRef.scroll({ behavior: 'smooth', top: scroll + 100 });
178
+ }
179
+ if (atBottom) {
180
+ this.years = [
181
+ ...this.years,
182
+ ...[...Array(5).keys()].map((year) => year + this.years[this.years.length - 1]),
183
+ ];
184
+ this.yearContainerRef.scroll({ behavior: 'smooth', top: scroll - 50 });
185
+ }
186
+ }
187
+ selectTempYear(event, year) {
188
+ event.stopPropagation();
189
+ this.tempYear = year;
190
+ }
191
+ getDayClasses(day) {
192
+ var _a, _b;
193
+ if (!day) {
194
+ return;
195
+ }
196
+ const todayLocal = luxon.DateTime.local();
197
+ const dayLocal = luxon.DateTime.local(this.yearValue, this.monthValue, day);
198
+ const dayIso = dayLocal.toISO();
199
+ const startIso = (_a = this.start) === null || _a === void 0 ? void 0 : _a.toISO();
200
+ const endIso = (_b = this.end) === null || _b === void 0 ? void 0 : _b.toISO();
201
+ const isToday = Math.ceil(dayLocal.diff(todayLocal, 'days').days) === 0;
202
+ return {
203
+ 'calendar-item': true,
204
+ 'empty-day': day === undefined,
205
+ today: isToday,
206
+ selected: (this.start && dayIso === startIso) || (this.end && dayIso === endIso),
207
+ range: this.start && this.end && dayIso > startIso && dayIso < endIso,
208
+ disabled: !this.isWithinMinMax(dayLocal),
209
+ };
210
+ }
211
+ selectDay(day) {
212
+ const date = luxon.DateTime.local(this.yearValue, this.monthValue, day);
213
+ const isStartBeforeEnd = this.start && this.start.toISO() < date.toISO();
214
+ const isSameDay = this.start && !this.end && this.start.toISO() === date.toISO();
215
+ if (day === undefined)
216
+ return;
217
+ if (isSameDay) {
218
+ this.start = null;
219
+ this.onDateChange();
220
+ return;
221
+ }
222
+ if (this.range) {
223
+ if (this.start === null) {
224
+ this.start = date;
225
+ }
226
+ else if (this.end === null) {
227
+ if (isStartBeforeEnd) {
228
+ this.end = date;
229
+ }
230
+ else {
231
+ this.end = this.start;
232
+ this.start = date;
233
+ }
234
+ }
235
+ else {
236
+ this.start = date;
237
+ this.end = null;
238
+ }
239
+ }
240
+ else {
241
+ this.start = date;
242
+ }
243
+ this.onDateChange();
244
+ }
245
+ getOutputFormat() {
246
+ if (!this.start) {
247
+ return null;
248
+ }
249
+ if (!this.end) {
250
+ return this.start.toFormat(this.format);
251
+ }
252
+ return [
253
+ this.start.toFormat(this.format),
254
+ this.end.toFormat(this.format),
255
+ ].join(this.eventDelimiter);
256
+ }
257
+ isWithinMinMax(date) {
258
+ const dateIso = date.toISO();
259
+ const _minDate = this.minDate
260
+ ? luxon.DateTime.fromFormat(this.minDate, this.format)
261
+ : null;
262
+ const _maxDate = this.maxDate
263
+ ? luxon.DateTime.fromFormat(this.maxDate, this.format)
264
+ : null;
265
+ return ((!_minDate || _minDate.toISO() <= dateIso) &&
266
+ (!_maxDate || _maxDate.toISO() >= dateIso));
267
+ }
268
+ componentWillLoad() {
269
+ if (this.from === null) {
270
+ this.start = null;
271
+ }
272
+ if (this.year !== null) {
273
+ this.yearValue = this.year;
274
+ }
275
+ if (this.month) {
276
+ this.monthValue = this.month;
277
+ }
278
+ }
279
+ componentWillRender() {
280
+ this.calculateCalendar();
281
+ }
282
+ /**
283
+ * Get the current DateTime
284
+ */
285
+ async getCurrentDate() {
286
+ var _a, _b;
287
+ return {
288
+ start: (_a = this.start) === null || _a === void 0 ? void 0 : _a.toFormat(this.format),
289
+ end: (_b = this.end) === null || _b === void 0 ? void 0 : _b.toFormat(this.format),
290
+ };
291
+ }
292
+ render() {
293
+ return (h(Host, null, h("ix-date-time-card", { individual: this.individual, corners: this.corners }, h("div", { class: "header", slot: "header" }, h("ix-icon-button", { onClick: () => this.changeMonth(-1), ghost: true, icon: 'chevron-left', variant: "primary", class: "arrows" }), h("div", { class: "selector" }, h("ix-button", { ghost: true, ref: (ref) => (this.dropdownButtonRef = ref) }, h("span", { class: "fontSize capitalize" }, this.monthNames[this.monthValue - 1], " ", this.yearValue)), h("ix-dropdown", { class: "dropdown", trigger: this.dropdownButtonRef, placement: "bottom-start" }, h("div", { class: "wrapper" }, h("div", { class: "overflow", onScroll: () => this.infiniteScrollYears(), ref: (ref) => (this.yearContainerRef = ref) }, this.years.map((year) => (h("div", { key: year, class: { arrowYear: true }, onClick: (event) => this.selectTempYear(event, year) }, h("ix-icon", { class: {
294
+ hidden: this.tempYear !== year,
295
+ arrowPosition: true,
296
+ }, name: 'chevron-right', size: "12" }), h("div", { style: { 'min-width': 'max-content' } }, `${year}`))))), h("div", { class: "overflow" }, this.monthNames.map((month, index) => (h("div", { key: month, class: {
297
+ arrowYear: true,
298
+ selected: this.tempMonth - 1 === index,
299
+ }, onClick: () => this.selectMonth((index + 1)) }, h("ix-icon", { class: {
300
+ hidden: this.tempMonth - 1 !== index,
301
+ checkPosition: true,
302
+ }, name: 'single-check', size: "16" }), h("div", null, h("span", { class: { capitalize: true, monthMargin: true } }, `${month} ${this.tempYear}`))))))))), h("ix-icon-button", { onClick: () => this.changeMonth(1), ghost: true, icon: 'chevron-right', variant: "primary", class: "arrows" })), h("div", { class: "grid" }, h("div", { class: "calendar-item week-day" }), this.dayNames.map((name) => (h("div", { key: name, class: "calendar-item week-day" }, name.slice(0, 3)))), this.calendar.map((week) => {
303
+ return (h(Fragment, null, h("div", { class: "calendar-item week-number" }, week[0]), week[1].map((day) => (h("div", { key: day, class: this.getDayClasses(day), onClick: () => this.selectDay(day) }, day)))));
304
+ })), h("div", { class: { button: true, hidden: !this.individual || !this.range } }, h("ix-button", { onClick: () => this.onDone() }, this.textSelectDate)))));
305
+ }
306
+ static get style() { return datePickerCss; }
307
+ }, [1, "ix-date-picker", {
308
+ "format": [1],
309
+ "range": [4],
310
+ "individual": [4],
311
+ "corners": [1],
312
+ "from": [1],
313
+ "to": [1],
314
+ "minDate": [1, "min-date"],
315
+ "maxDate": [1, "max-date"],
316
+ "eventDelimiter": [1, "event-delimiter"],
317
+ "textSelectDate": [1, "text-select-date"],
318
+ "yearValue": [32],
319
+ "today": [32],
320
+ "monthValue": [32],
321
+ "calendar": [32],
322
+ "years": [32],
323
+ "tempYear": [32],
324
+ "tempMonth": [32],
325
+ "start": [32],
326
+ "end": [32],
327
+ "dropdownButtonRef": [32],
328
+ "yearContainerRef": [32],
329
+ "getCurrentDate": [64]
330
+ }]);
331
+ function defineCustomElement() {
332
+ if (typeof customElements === "undefined") {
333
+ return;
334
+ }
335
+ const components = ["ix-date-picker", "ix-button", "ix-date-time-card", "ix-dropdown", "ix-icon-button", "ix-spinner"];
336
+ components.forEach(tagName => { switch (tagName) {
337
+ case "ix-date-picker":
338
+ if (!customElements.get(tagName)) {
339
+ customElements.define(tagName, DatePicker);
340
+ }
341
+ break;
342
+ case "ix-button":
343
+ if (!customElements.get(tagName)) {
344
+ defineCustomElement$5();
345
+ }
346
+ break;
347
+ case "ix-date-time-card":
348
+ if (!customElements.get(tagName)) {
349
+ defineCustomElement$4();
350
+ }
351
+ break;
352
+ case "ix-dropdown":
353
+ if (!customElements.get(tagName)) {
354
+ defineCustomElement$3();
355
+ }
356
+ break;
357
+ case "ix-icon-button":
358
+ if (!customElements.get(tagName)) {
359
+ defineCustomElement$2();
360
+ }
361
+ break;
362
+ case "ix-spinner":
363
+ if (!customElements.get(tagName)) {
364
+ defineCustomElement$1();
365
+ }
366
+ break;
367
+ } });
368
+ }
369
+
370
+ export { DatePicker as D, defineCustomElement as d };
371
+
372
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"file":"date-picker.js","mappings":"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","names":["Info","DateTime"],"sources":["./src/components/date-picker/date-picker.scss?tag=ix-date-picker&encapsulation=shadow","./src/components/date-picker/date-picker.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@import 'common-variables';\n@import 'mixins/shadow-dom/component';\n\n:host {\n @include ix-component;\n display: block;\n position: relative;\n width: 22rem;\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .selector {\n flex-basis: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $tiny-space $default-space;\n\n .dropdown {\n color: var(--theme-menu-item--color);\n font-size: 14px;\n line-height: 20px;\n }\n\n .fontSize {\n font-size: 16px;\n }\n\n .capitalize {\n text-transform: capitalize;\n }\n\n .arrowYear {\n display: flex;\n position: relative;\n padding: $medium-space $x-large-space;\n align-items: center;\n cursor: pointer;\n\n &:hover {\n background-color: var(--theme-select-list-item--background--hover);\n }\n\n &.selected {\n background-color: var(--theme-select-list-item--background--selected);\n }\n\n .arrowPosition {\n position: absolute;\n left: calc(($x-large-space / 2) - 6px);\n top: calc(50% - 6px);\n }\n\n .checkPosition {\n position: absolute;\n left: calc(($x-large-space / 2) - 6px);\n top: calc(50% - 8px);\n }\n\n .monthMargin {\n margin-left: 10px;\n }\n }\n }\n\n .wrapper {\n display: flex;\n\n .overflow {\n overflow-y: scroll;\n max-height: 250px;\n }\n }\n\n .grid {\n display: grid;\n grid-template-columns: repeat(8, 40px);\n grid-template-rows: repeat(7, 40px);\n align-items: center;\n justify-items: center;\n justify-content: center;\n color: var(--theme-datepicker-today--color);\n\n .calendar-item {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--theme-datepicker-day--background);\n border: 1px solid var(--theme-datepicker-day--background);\n width: 40px;\n height: 40px;\n cursor: pointer;\n\n &.today {\n border: 1px solid var(--theme-datepicker-today--border-color);\n\n &:hover {\n background-color: var(--theme-datepicker-day--background--hover);\n }\n\n &:active {\n background-color: var(--theme-datepicker-day--background--active);\n }\n\n &.selected {\n box-shadow: inset 0 0 0 1px white;\n\n &:hover {\n background-color: var(\n --theme-datepicker-day--background--selected-hover\n );\n }\n\n &:active {\n background-color: var(\n --theme-datepicker-day--background--selected-active\n );\n }\n\n &.disabled {\n pointer-events: none;\n background-color: var(\n --theme-datepicker-day--background--selected-disabled\n );\n border: 1px solid\n var(--theme-datepicker-day--background--selected-disabled);\n color: var(--theme-datepicker-day--color--selected-disabled);\n }\n }\n\n &.range {\n background-color: var(--theme-datepicker-day--background--range);\n color: var(--theme-datepicker-day--color--range);\n border: 1px solid var(--theme-datepicker-today--border-color--range);\n box-shadow: inset 0 0 0 1px white;\n\n &:hover {\n background-color: var(\n --theme-datepicker-day--background--range-hover\n );\n border: 1px solid\n var(--theme-datepicker-today--border-color--range-hover);\n }\n\n &:active {\n background-color: var(\n --theme-datepicker-day--background--range-active\n );\n border: 1px solid\n var(--theme-datepicker-today--border-color--range-active);\n }\n\n &.disabled {\n background-color: var(\n --theme-datepicker-day--background--range-disabled\n );\n color: var(--theme-datepicker-day--color--range-disabled);\n border: 1px solid\n var(--theme-datepicker-today--border-color--range-disabled);\n }\n }\n\n &.disabled {\n pointer-events: none;\n background-color: var(--theme-datepicker-day--background--disabled);\n color: var(--theme-datepicker-day--color--disabled);\n cursor: default;\n pointer-events: none;\n }\n }\n\n &:hover {\n background-color: var(--theme-datepicker-day--background--hover);\n }\n\n &:active {\n background-color: var(--theme-datepicker-day--background--active);\n }\n\n &.selected {\n background-color: var(--theme-datepicker-day--background--selected);\n color: var(--theme-datepicker-day--color--selected);\n border: 1px solid var(--theme-datepicker-day--background--selected);\n\n &:hover {\n background-color: var(\n --theme-datepicker-day--background--selected-hover\n );\n }\n\n &:active {\n background-color: var(\n --theme-datepicker-day--background--selected-active\n );\n }\n\n &.disabled {\n pointer-events: none;\n background-color: var(\n --theme-datepicker-day--background--selected-disabled\n );\n color: var(--theme-datepicker-day--color--selected-disabled);\n }\n }\n\n &.range {\n background-color: var(--theme-datepicker-day--background--range);\n color: var(--theme-datepicker-day--color--range);\n\n &:hover {\n background-color: var(\n --theme-datepicker-day--background--range-hover\n );\n }\n\n &:active {\n background-color: var(\n --theme-datepicker-day--background--range-active\n );\n }\n\n &.disabled {\n pointer-events: none;\n background-color: var(\n --theme-datepicker-day--background--range-disabled\n );\n color: var(--theme-datepicker-day--color--range-disabled);\n }\n }\n\n &.disabled {\n pointer-events: none;\n background-color: var(--theme-datepicker-day--background--disabled);\n color: var(--theme-datepicker-day--color--disabled);\n }\n\n &.week-day {\n color: var(--theme-datepicker-weekday--color);\n font-size: 12px;\n line-height: 20px;\n border: none;\n background: none;\n cursor: initial;\n }\n\n &.empty-day {\n border: none;\n background: none;\n cursor: initial;\n }\n\n &.week-number {\n font-size: 10px;\n line-height: 14px;\n color: var(--theme-datepicker-ix--color);\n border: none;\n background: none;\n cursor: initial;\n }\n\n &:focus-visible {\n background-color: var(--theme-datepicker-day--background--selected);\n border: inset 1px solid\n var(--theme-datepicker-day--border-color--selected);\n color: var(--theme-datepicker-day--color--selected);\n font-size: 14px;\n line-height: 20px;\n letter-spacing: 0;\n }\n }\n }\n\n .button {\n display: flex;\n justify-content: flex-end;\n }\n\n .hidden {\n display: none;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { DateTime, Info, MonthNumbers } from 'luxon';\nimport { DateTimeCardCorners } from '../date-time-card/date-time-card';\n\nexport type DateChangeEvent = {\n from: string;\n to: string;\n};\n\nexport type LegacyDateChangeEvent = DateChangeEvent | string;\n\nexport type DateTimeCorners = DateTimeCardCorners;\n\n@Component({\n tag: 'ix-date-picker',\n styleUrl: './date-picker.scss',\n shadow: true,\n})\nexport class DatePicker {\n private daysInWeek = 7;\n private dayNames = Info.weekdays();\n private monthNames = Info.months();\n\n /**\n * Date format string.\n * See @link https://moment.github.io/luxon/#/formatting?id=table-of-tokens for all available tokens.\n */\n @Prop() format: string = 'yyyy/LL/dd';\n\n /**\n * If true a range of dates can be selected.\n */\n @Prop() range: boolean = true;\n\n /**\n * @deprecated Will be removed in 2.0.0\n */\n @Prop() individual: boolean = true;\n\n /**\n * Corner style\n */\n @Prop() corners: DateTimeCardCorners = 'rounded';\n\n /**\n * Picker date. If the picker is in range mode this property is the start date.\n * If set to `null` no default start date will be pre-selected.\n *\n * Format is based on `format`\n *\n * @since 1.1.0\n */\n @Prop() from: string | null = DateTime.now().toFormat(this.format);\n\n /**\n * Picker date. If the picker is in range mode this property is the end date.\n * If the picker is not in range mode leave this value `null`\n *\n * Format is based on `format`\n *\n * @since 1.1.0\n */\n @Prop() to: string | null = null;\n\n /**\n * The earliest date that can be selected by the date picker.\n * If not set there will be no restriction.\n *\n * @since 1.1.0\n */\n @Prop() minDate: string;\n\n /**\n * The latest date that can be selected by the date picker.\n * If not set there will be no restriction.\n *\n * @since 1.1.0\n */\n @Prop() maxDate: string;\n\n /**\n * Default behavior of the done event is to join the two events (date and time) into one combined string output.\n * This combination can be configured over the delimiter\n *\n * @since 1.1.0\n */\n @Prop() eventDelimiter = ' - ';\n\n /**\n * Text of date select button\n *\n * @since 1.1.0\n */\n @Prop() textSelectDate = 'Done';\n\n @State() yearValue = this.year;\n @State() today = DateTime.now();\n @State() monthValue: number = this.month;\n @State() calendar: [number, number[]][] = [];\n\n @State() years = [...Array(10).keys()].map((year) => year + this.year - 5);\n @State() tempYear: number = this.yearValue;\n @State() tempMonth: number = this.monthValue;\n @State() start: DateTime = DateTime.fromObject({\n year: this.year,\n month: this.month,\n day: this.day,\n });\n\n @State() end: DateTime = this.to\n ? DateTime.fromFormat(this.to, this.format)\n : null;\n\n @State() dropdownButtonRef: HTMLElement;\n @State() yearContainerRef: HTMLElement;\n\n /**\n * Date change event\n *\n * If datepicker is in range mode the event detail will be sperated with a `-` e.g.\n * `2022/10/22 - 2022/10/24` (start and end). If range mode is chosen consider to use `dateRangeChange`.\n *\n * @deprecated String output will be removed. Set ´doneEventDelimiter´ to undefined or null to get date change object instead of a string\n */\n @Event() dateChange: EventEmitter<LegacyDateChangeEvent>;\n\n /**\n * Date range change.\n * Only triggered if datepicker is in range mode\n *\n * @since 1.1.0\n */\n @Event() dateRangeChange: EventEmitter<DateChangeEvent>;\n\n /**\n * Date selection confirmed via button action\n *\n * @deprecated Will be removed in 2.0.0. Use `dateSelect`\n */\n @Event() done: EventEmitter<string>;\n\n /**\n * Date selection confirmed via button action\n *\n * @since 1.1.0\n */\n @Event() dateSelect: EventEmitter<DateChangeEvent>;\n\n get year() {\n if (this.from !== null) {\n return DateTime.fromFormat(this.from, this.format).year;\n }\n\n return DateTime.now().year;\n }\n\n get day() {\n if (this.from !== null) {\n return DateTime.fromFormat(this.from, this.format).day;\n }\n\n return null;\n }\n\n get month() {\n if (this.from !== null) {\n return DateTime.fromFormat(this.from, this.format).month;\n }\n\n return DateTime.now().month;\n }\n\n private onDone() {\n this.done.emit(this.getOutputFormat());\n\n this.dateSelect.emit({\n from: this.start?.toFormat(this.format),\n to: this.end?.toFormat(this.format),\n });\n }\n\n private onDateChange() {\n const from = this.start?.toFormat(this.format);\n const to = this.end?.toFormat(this.format);\n\n this.from = from;\n this.to = to;\n\n if (this.eventDelimiter) {\n this.dateChange.emit(this.getOutputFormat());\n } else {\n this.dateChange.emit({\n from,\n to,\n });\n }\n\n if (this.range) {\n this.dateRangeChange.emit({\n from,\n to,\n });\n }\n }\n\n private getStartOfMonth(\n year = DateTime.local().get('year'),\n month = DateTime.local().get('month')\n ) {\n return DateTime.local(year, month).startOf('month');\n }\n\n private getEndOfMonth(\n year = DateTime.local().get('year'),\n month = DateTime.local().get('month')\n ) {\n return DateTime.local(year, month).endOf('month');\n }\n\n private getDaysInMonth(\n start = this.getStartOfMonth(),\n end = this.getEndOfMonth()\n ) {\n return Math.ceil(end.diff(start, 'days').days);\n }\n\n private calculateCalendar() {\n const start = this.getStartOfMonth(this.yearValue, this.monthValue);\n const end = this.getEndOfMonth(this.yearValue, this.monthValue);\n const totalDays = this.getDaysInMonth(start, end);\n const totalWeeks = 6;\n const totalDaysInWeeks = totalWeeks * this.daysInWeek;\n const startWeekDay = start.weekday;\n const prependDays = startWeekDay - 1;\n const appendDays = totalDaysInWeeks - totalDays - prependDays;\n let weekdays: number[][] = [];\n const calendar: [number, number[]][] = [];\n\n // create list of days\n let days = [...new Array(totalDaysInWeeks).keys()].map((day) => day + 1);\n\n // add start empty days\n days.unshift(...new Array(prependDays));\n\n // remove & add end days\n days = days.slice(0, days.length - prependDays - appendDays);\n days.push(...new Array(appendDays));\n\n // make weeks\n weekdays = days.reduce((result, item, index) => {\n const weekIndex = Math.floor(index / this.daysInWeek);\n\n if (!result[weekIndex]) result[weekIndex] = [];\n\n result[weekIndex].push(item);\n\n return result;\n }, []);\n\n for (let index = 1; index <= totalWeeks; index++) {\n const week = weekdays[index - 1];\n const firstWeekDay = week.find((day) => day !== undefined);\n const weekNumber = firstWeekDay\n ? DateTime.local(\n this.yearValue,\n this.monthValue,\n weekdays[index - 1][0]\n ).weekNumber\n : undefined;\n calendar.push([weekNumber, week]);\n }\n\n this.calendar = calendar;\n }\n\n private changeMonth(number) {\n if (this.monthValue + number < 1) {\n this.yearValue--;\n this.monthValue = 12;\n } else if (this.monthValue + number > 12) {\n this.yearValue++;\n this.monthValue = 1;\n } else {\n this.monthValue += number;\n }\n this.calculateCalendar();\n }\n\n private selectMonth(month: MonthNumbers) {\n this.monthValue = month;\n this.yearValue = this.tempYear;\n this.tempMonth = month;\n }\n\n private infiniteScrollYears() {\n const scroll = this.yearContainerRef.scrollTop;\n const maxScroll = this.yearContainerRef.scrollHeight;\n const atTop = scroll === 0;\n const atBottom =\n scroll + this.yearContainerRef.getBoundingClientRect().height ===\n maxScroll;\n const limit = 200;\n\n if (this.years.length > limit) return;\n\n if (atTop) {\n this.years = [\n ...[...Array(5).keys()].map((year) => year + this.years[0] - 5),\n ...this.years,\n ];\n this.yearContainerRef.scroll({ behavior: 'smooth', top: scroll + 100 });\n }\n\n if (atBottom) {\n this.years = [\n ...this.years,\n ...[...Array(5).keys()].map(\n (year) => year + this.years[this.years.length - 1]\n ),\n ];\n this.yearContainerRef.scroll({ behavior: 'smooth', top: scroll - 50 });\n }\n }\n\n private selectTempYear(event: MouseEvent, year: number) {\n event.stopPropagation();\n this.tempYear = year;\n }\n\n private getDayClasses(day: number) {\n if (!day) {\n return;\n }\n\n const todayLocal = DateTime.local();\n const dayLocal = DateTime.local(this.yearValue, this.monthValue, day);\n const dayIso = dayLocal.toISO();\n const startIso = this.start?.toISO();\n const endIso = this.end?.toISO();\n const isToday = Math.ceil(dayLocal.diff(todayLocal, 'days').days) === 0;\n\n return {\n 'calendar-item': true,\n 'empty-day': day === undefined,\n today: isToday,\n selected:\n (this.start && dayIso === startIso) || (this.end && dayIso === endIso),\n range: this.start && this.end && dayIso > startIso && dayIso < endIso,\n disabled: !this.isWithinMinMax(dayLocal),\n };\n }\n\n private selectDay(day: number) {\n const date = DateTime.local(this.yearValue, this.monthValue, day);\n const isStartBeforeEnd = this.start && this.start.toISO() < date.toISO();\n const isSameDay =\n this.start && !this.end && this.start.toISO() === date.toISO();\n\n if (day === undefined) return;\n\n if (isSameDay) {\n this.start = null;\n this.onDateChange();\n return;\n }\n\n if (this.range) {\n if (this.start === null) {\n this.start = date;\n } else if (this.end === null) {\n if (isStartBeforeEnd) {\n this.end = date;\n } else {\n this.end = this.start;\n this.start = date;\n }\n } else {\n this.start = date;\n this.end = null;\n }\n } else {\n this.start = date;\n }\n\n this.onDateChange();\n }\n\n private getOutputFormat() {\n if (!this.start) {\n return null;\n }\n\n if (!this.end) {\n return this.start.toFormat(this.format);\n }\n\n return [\n this.start.toFormat(this.format),\n this.end.toFormat(this.format),\n ].join(this.eventDelimiter);\n }\n\n private isWithinMinMax(date: DateTime) {\n const dateIso = date.toISO();\n const _minDate = this.minDate\n ? DateTime.fromFormat(this.minDate, this.format)\n : null;\n const _maxDate = this.maxDate\n ? DateTime.fromFormat(this.maxDate, this.format)\n : null;\n return (\n (!_minDate || _minDate.toISO() <= dateIso) &&\n (!_maxDate || _maxDate.toISO() >= dateIso)\n );\n }\n\n componentWillLoad() {\n if (this.from === null) {\n this.start = null;\n }\n\n if (this.year !== null) {\n this.yearValue = this.year;\n }\n if (this.month) {\n this.monthValue = this.month;\n }\n }\n\n componentWillRender() {\n this.calculateCalendar();\n }\n\n /**\n * Get the current DateTime\n */\n @Method()\n async getCurrentDate() {\n return {\n start: this.start?.toFormat(this.format),\n end: this.end?.toFormat(this.format),\n };\n }\n\n render() {\n return (\n <Host>\n <ix-date-time-card individual={this.individual} corners={this.corners}>\n <div class=\"header\" slot=\"header\">\n <ix-icon-button\n onClick={() => this.changeMonth(-1)}\n ghost\n icon={'chevron-left'}\n variant=\"primary\"\n class=\"arrows\"\n ></ix-icon-button>\n\n <div class=\"selector\">\n <ix-button ghost ref={(ref) => (this.dropdownButtonRef = ref)}>\n <span class=\"fontSize capitalize\">\n {this.monthNames[this.monthValue - 1]} {this.yearValue}\n </span>\n </ix-button>\n <ix-dropdown\n class=\"dropdown\"\n trigger={this.dropdownButtonRef}\n placement=\"bottom-start\"\n >\n <div class=\"wrapper\">\n <div\n class=\"overflow\"\n onScroll={() => this.infiniteScrollYears()}\n ref={(ref) => (this.yearContainerRef = ref)}\n >\n {this.years.map((year) => (\n <div\n key={year}\n class={{ arrowYear: true }}\n onClick={(event) => this.selectTempYear(event, year)}\n >\n <ix-icon\n class={{\n hidden: this.tempYear !== year,\n arrowPosition: true,\n }}\n name={'chevron-right'}\n size=\"12\"\n ></ix-icon>\n <div\n style={{ 'min-width': 'max-content' }}\n >{`${year}`}</div>\n </div>\n ))}\n </div>\n <div class=\"overflow\">\n {this.monthNames.map((month, index) => (\n <div\n key={month}\n class={{\n arrowYear: true,\n selected: this.tempMonth - 1 === index,\n }}\n onClick={() =>\n this.selectMonth((index + 1) as MonthNumbers)\n }\n >\n <ix-icon\n class={{\n hidden: this.tempMonth - 1 !== index,\n checkPosition: true,\n }}\n name={'single-check'}\n size=\"16\"\n ></ix-icon>\n <div>\n <span\n class={{ capitalize: true, monthMargin: true }}\n >{`${month} ${this.tempYear}`}</span>\n </div>\n </div>\n ))}\n </div>\n </div>\n </ix-dropdown>\n </div>\n\n <ix-icon-button\n onClick={() => this.changeMonth(1)}\n ghost\n icon={'chevron-right'}\n variant=\"primary\"\n class=\"arrows\"\n ></ix-icon-button>\n </div>\n\n <div class=\"grid\">\n <div class=\"calendar-item week-day\"></div>\n {this.dayNames.map((name) => (\n <div key={name} class=\"calendar-item week-day\">\n {name.slice(0, 3)}\n </div>\n ))}\n\n {this.calendar.map((week) => {\n return (\n <Fragment>\n <div class=\"calendar-item week-number\">{week[0]}</div>\n {week[1].map((day) => (\n <div\n key={day}\n class={this.getDayClasses(day)}\n onClick={() => this.selectDay(day)}\n >\n {day}\n </div>\n ))}\n </Fragment>\n );\n })}\n </div>\n\n <div\n class={{ button: true, hidden: !this.individual || !this.range }}\n >\n <ix-button onClick={() => this.onDone()}>\n {this.textSelectDate}\n </ix-button>\n </div>\n </ix-date-time-card>\n </Host>\n );\n }\n}\n"],"version":3}