@siemens/element-ng 48.10.0 → 49.0.0-rc.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 (396) hide show
  1. package/about/package.json +2 -1
  2. package/accordion/package.json +2 -1
  3. package/action-modal/package.json +2 -1
  4. package/ag-grid/package.json +2 -1
  5. package/application-header/package.json +2 -1
  6. package/auto-collapsable-list/package.json +2 -1
  7. package/autocomplete/package.json +2 -1
  8. package/avatar/package.json +2 -1
  9. package/badge/package.json +2 -1
  10. package/breadcrumb/package.json +2 -1
  11. package/breadcrumb-router/package.json +2 -1
  12. package/card/package.json +2 -1
  13. package/chat-messages/package.json +2 -1
  14. package/circle-status/package.json +2 -1
  15. package/color-picker/package.json +2 -1
  16. package/column-selection-dialog/package.json +2 -1
  17. package/common/package.json +2 -1
  18. package/connection-strength/package.json +2 -1
  19. package/content-action-bar/package.json +2 -1
  20. package/copyright-notice/package.json +2 -1
  21. package/dashboard/package.json +2 -1
  22. package/datatable/package.json +2 -1
  23. package/date-range-filter/package.json +2 -1
  24. package/datepicker/package.json +2 -1
  25. package/electron-titlebar/package.json +2 -1
  26. package/empty-state/package.json +2 -1
  27. package/fesm2022/siemens-element-ng-about.mjs +25 -24
  28. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-accordion.mjs +49 -75
  30. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-action-modal.mjs +59 -55
  32. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-ag-grid.mjs +33 -37
  34. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-application-header.mjs +122 -150
  36. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +30 -32
  38. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-autocomplete.mjs +34 -48
  40. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-avatar.mjs +23 -24
  42. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-badge.mjs +6 -6
  44. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +16 -16
  46. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -17
  48. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-card.mjs +32 -34
  50. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-chat-messages.mjs +204 -109
  52. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-circle-status.mjs +26 -26
  54. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -17
  56. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +36 -35
  58. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-common.mjs +13 -38
  60. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-connection-strength.mjs +11 -11
  62. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-content-action-bar.mjs +33 -30
  64. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-copyright-notice.mjs +13 -13
  66. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-dashboard.mjs +161 -169
  68. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-datatable.mjs +9 -9
  70. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-date-range-filter.mjs +128 -149
  72. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-datepicker.mjs +260 -271
  74. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +19 -18
  76. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-empty-state.mjs +11 -11
  78. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-file-uploader.mjs +66 -69
  80. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-filter-bar.mjs +23 -23
  82. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-filtered-search.mjs +141 -159
  84. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-footer.mjs +10 -10
  86. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-form.mjs +99 -85
  88. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-formly.mjs +96 -94
  90. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-header-dropdown.mjs +33 -33
  92. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-help-button.mjs +7 -6
  94. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-icon-status.mjs +4 -4
  96. package/fesm2022/siemens-element-ng-icon.mjs +53 -135
  97. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  98. package/fesm2022/siemens-element-ng-info-page.mjs +11 -12
  99. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  100. package/fesm2022/siemens-element-ng-inline-notification.mjs +15 -16
  101. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  102. package/fesm2022/siemens-element-ng-ip-input.mjs +16 -16
  103. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  104. package/fesm2022/siemens-element-ng-landing-page.mjs +71 -71
  105. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  106. package/fesm2022/siemens-element-ng-language-switcher.mjs +13 -13
  107. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  108. package/fesm2022/siemens-element-ng-link.mjs +22 -23
  109. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  110. package/fesm2022/siemens-element-ng-list-details.mjs +68 -86
  111. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  112. package/fesm2022/siemens-element-ng-loading-spinner.mjs +38 -52
  113. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  114. package/fesm2022/siemens-element-ng-localization.mjs +14 -11
  115. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  116. package/fesm2022/siemens-element-ng-main-detail-container.mjs +30 -30
  117. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  118. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +5 -5
  119. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-menu.mjs +55 -54
  121. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-modal.mjs +10 -13
  123. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  124. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +183 -298
  125. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  126. package/fesm2022/siemens-element-ng-navbar.mjs +43 -43
  127. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  128. package/fesm2022/siemens-element-ng-notification-item.mjs +14 -13
  129. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  130. package/fesm2022/siemens-element-ng-number-input.mjs +32 -32
  131. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  132. package/fesm2022/siemens-element-ng-pagination.mjs +21 -20
  133. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  134. package/fesm2022/siemens-element-ng-password-strength.mjs +21 -21
  135. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  136. package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -15
  137. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  138. package/fesm2022/siemens-element-ng-phone-number.mjs +56 -50
  139. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  140. package/fesm2022/siemens-element-ng-photo-upload.mjs +48 -47
  141. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-pills-input.mjs +45 -44
  143. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-popover-legacy.mjs +31 -31
  145. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-popover.mjs +29 -29
  147. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-progressbar.mjs +15 -15
  149. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-resize-observer.mjs +25 -61
  151. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-result-details-list.mjs +13 -12
  153. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-search-bar.mjs +25 -24
  155. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-select.mjs +204 -347
  157. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  159. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-side-panel.mjs +144 -69
  161. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-skip-links.mjs +13 -13
  163. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-slider.mjs +30 -29
  165. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-sort-bar.mjs +14 -13
  167. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-split.mjs +26 -28
  169. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-status-bar.mjs +42 -43
  171. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-status-counter.mjs +11 -12
  173. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-status-toggle.mjs +15 -16
  175. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-summary-chip.mjs +16 -17
  177. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-summary-widget.mjs +16 -16
  179. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-system-banner.mjs +7 -7
  181. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  182. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -16
  183. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  184. package/fesm2022/siemens-element-ng-tabs.mjs +44 -47
  185. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  186. package/fesm2022/siemens-element-ng-theme.mjs +4 -4
  187. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  188. package/fesm2022/siemens-element-ng-threshold.mjs +51 -71
  189. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  190. package/fesm2022/siemens-element-ng-toast-notification.mjs +26 -52
  191. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  192. package/fesm2022/siemens-element-ng-tooltip.mjs +60 -68
  193. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  194. package/fesm2022/siemens-element-ng-tour.mjs +20 -20
  195. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  196. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  197. package/fesm2022/siemens-element-ng-tree-view.mjs +92 -117
  198. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  199. package/fesm2022/siemens-element-ng-typeahead.mjs +46 -62
  200. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  201. package/fesm2022/siemens-element-ng-wizard.mjs +49 -48
  202. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  203. package/file-uploader/package.json +2 -1
  204. package/filter-bar/package.json +2 -1
  205. package/filtered-search/package.json +2 -1
  206. package/footer/package.json +2 -1
  207. package/form/package.json +2 -1
  208. package/formly/package.json +2 -1
  209. package/header-dropdown/package.json +2 -1
  210. package/help-button/package.json +2 -1
  211. package/icon/package.json +2 -1
  212. package/icon-status/package.json +2 -1
  213. package/info-page/package.json +2 -1
  214. package/inline-notification/package.json +2 -1
  215. package/ip-input/package.json +2 -1
  216. package/landing-page/package.json +2 -1
  217. package/language-switcher/package.json +2 -1
  218. package/link/package.json +2 -1
  219. package/list-details/package.json +2 -1
  220. package/loading-spinner/package.json +2 -1
  221. package/localization/package.json +2 -1
  222. package/main-detail-container/package.json +2 -1
  223. package/markdown-renderer/package.json +2 -1
  224. package/menu/package.json +2 -1
  225. package/modal/package.json +2 -1
  226. package/navbar/package.json +2 -1
  227. package/navbar-vertical/package.json +2 -1
  228. package/notification-item/package.json +2 -1
  229. package/number-input/package.json +2 -1
  230. package/package.json +115 -107
  231. package/pagination/package.json +2 -1
  232. package/password-strength/package.json +2 -1
  233. package/password-toggle/package.json +2 -1
  234. package/phone-number/package.json +2 -1
  235. package/photo-upload/package.json +2 -1
  236. package/pills-input/package.json +2 -1
  237. package/popover/package.json +2 -1
  238. package/popover-legacy/package.json +2 -1
  239. package/progressbar/package.json +2 -1
  240. package/resize-observer/package.json +2 -1
  241. package/result-details-list/package.json +2 -1
  242. package/schematics/collection.json +0 -12
  243. package/schematics/migration.json +15 -0
  244. package/schematics/migrations/data/attribute-selectors.js +1 -6
  245. package/schematics/migrations/data/component-names.js +9 -68
  246. package/schematics/migrations/data/element-selectors.js +9 -8
  247. package/schematics/migrations/data/index.js +0 -1
  248. package/schematics/migrations/data/migration-test-data.js +167 -0
  249. package/schematics/migrations/data/output-names.js +1 -7
  250. package/schematics/migrations/data/symbol-removals.js +4 -45
  251. package/schematics/migrations/element-migration/element-migration.js +1 -3
  252. package/schematics/migrations/index.js +15 -5
  253. package/schematics/migrations/ngx-translate/index.js +93 -0
  254. package/schematics/ng-update/index.js +17 -0
  255. package/schematics/ng-update/schema.json +15 -0
  256. package/schematics/simpl-siemens-migration/index.js +1 -5
  257. package/schematics/utils/ts-utils.js +135 -0
  258. package/search-bar/package.json +2 -1
  259. package/select/package.json +2 -1
  260. package/shadow-root/package.json +2 -1
  261. package/side-panel/package.json +2 -1
  262. package/skip-links/package.json +2 -1
  263. package/slider/package.json +2 -1
  264. package/sort-bar/package.json +2 -1
  265. package/split/package.json +2 -1
  266. package/status-bar/package.json +2 -1
  267. package/status-counter/package.json +2 -1
  268. package/status-toggle/package.json +2 -1
  269. package/summary-chip/package.json +2 -1
  270. package/summary-widget/package.json +2 -1
  271. package/system-banner/package.json +2 -1
  272. package/tabs/package.json +2 -1
  273. package/tabs-legacy/package.json +2 -1
  274. package/template-i18n.json +32 -25
  275. package/test-styles.scss +5 -0
  276. package/theme/package.json +2 -1
  277. package/threshold/package.json +2 -1
  278. package/toast-notification/package.json +2 -1
  279. package/tooltip/package.json +2 -1
  280. package/tour/package.json +2 -1
  281. package/translate/package.json +2 -1
  282. package/tree-view/package.json +2 -1
  283. package/typeahead/package.json +2 -1
  284. package/{accordion/index.d.ts → types/siemens-element-ng-accordion.d.ts} +2 -3
  285. package/{application-header/index.d.ts → types/siemens-element-ng-application-header.d.ts} +19 -18
  286. package/{autocomplete/index.d.ts → types/siemens-element-ng-autocomplete.d.ts} +1 -3
  287. package/{breadcrumb/index.d.ts → types/siemens-element-ng-breadcrumb.d.ts} +2 -2
  288. package/{chat-messages/index.d.ts → types/siemens-element-ng-chat-messages.d.ts} +72 -10
  289. package/{common/index.d.ts → types/siemens-element-ng-common.d.ts} +2 -30
  290. package/{content-action-bar/index.d.ts → types/siemens-element-ng-content-action-bar.d.ts} +2 -2
  291. package/{dashboard/index.d.ts → types/siemens-element-ng-dashboard.d.ts} +6 -6
  292. package/{date-range-filter/index.d.ts → types/siemens-element-ng-date-range-filter.d.ts} +28 -27
  293. package/{datepicker/index.d.ts → types/siemens-element-ng-datepicker.d.ts} +5 -6
  294. package/{electron-titlebar/index.d.ts → types/siemens-element-ng-electron-titlebar.d.ts} +4 -4
  295. package/{file-uploader/index.d.ts → types/siemens-element-ng-file-uploader.d.ts} +26 -26
  296. package/{filter-bar/index.d.ts → types/siemens-element-ng-filter-bar.d.ts} +4 -4
  297. package/{filtered-search/index.d.ts → types/siemens-element-ng-filtered-search.d.ts} +6 -21
  298. package/{form/index.d.ts → types/siemens-element-ng-form.d.ts} +4 -6
  299. package/{formly/index.d.ts → types/siemens-element-ng-formly.d.ts} +1 -1
  300. package/types/siemens-element-ng-icon.d.ts +203 -0
  301. package/{landing-page/index.d.ts → types/siemens-element-ng-landing-page.d.ts} +15 -15
  302. package/{language-switcher/index.d.ts → types/siemens-element-ng-language-switcher.d.ts} +1 -2
  303. package/{list-details/index.d.ts → types/siemens-element-ng-list-details.d.ts} +4 -11
  304. package/{loading-spinner/index.d.ts → types/siemens-element-ng-loading-spinner.d.ts} +2 -3
  305. package/{modal/index.d.ts → types/siemens-element-ng-modal.d.ts} +0 -6
  306. package/{navbar-vertical/index.d.ts → types/siemens-element-ng-navbar-vertical.d.ts} +12 -7
  307. package/{navbar/index.d.ts → types/siemens-element-ng-navbar.d.ts} +11 -11
  308. package/{notification-item/index.d.ts → types/siemens-element-ng-notification-item.d.ts} +15 -3
  309. package/{pagination/index.d.ts → types/siemens-element-ng-pagination.d.ts} +4 -4
  310. package/{password-toggle/index.d.ts → types/siemens-element-ng-password-toggle.d.ts} +6 -4
  311. package/{phone-number/index.d.ts → types/siemens-element-ng-phone-number.d.ts} +8 -11
  312. package/{pills-input/index.d.ts → types/siemens-element-ng-pills-input.d.ts} +3 -3
  313. package/{popover/index.d.ts → types/siemens-element-ng-popover.d.ts} +2 -2
  314. package/{resize-observer/index.d.ts → types/siemens-element-ng-resize-observer.d.ts} +0 -30
  315. package/{search-bar/index.d.ts → types/siemens-element-ng-search-bar.d.ts} +2 -2
  316. package/{select/index.d.ts → types/siemens-element-ng-select.d.ts} +18 -97
  317. package/{side-panel/index.d.ts → types/siemens-element-ng-side-panel.d.ts} +26 -5
  318. package/{slider/index.d.ts → types/siemens-element-ng-slider.d.ts} +4 -4
  319. package/{split/index.d.ts → types/siemens-element-ng-split.d.ts} +1 -3
  320. package/{status-bar/index.d.ts → types/siemens-element-ng-status-bar.d.ts} +6 -6
  321. package/{tabs-legacy/index.d.ts → types/siemens-element-ng-tabs-legacy.d.ts} +5 -0
  322. package/{threshold/index.d.ts → types/siemens-element-ng-threshold.d.ts} +7 -7
  323. package/{toast-notification/index.d.ts → types/siemens-element-ng-toast-notification.d.ts} +3 -4
  324. package/{tooltip/index.d.ts → types/siemens-element-ng-tooltip.d.ts} +3 -6
  325. package/{tour/index.d.ts → types/siemens-element-ng-tour.d.ts} +1 -10
  326. package/{translate/index.d.ts → types/siemens-element-ng-translate.d.ts} +8 -1
  327. package/{tree-view/index.d.ts → types/siemens-element-ng-tree-view.d.ts} +0 -1
  328. package/{typeahead/index.d.ts → types/siemens-element-ng-typeahead.d.ts} +0 -2
  329. package/{wizard/index.d.ts → types/siemens-element-ng-wizard.d.ts} +6 -6
  330. package/wizard/package.json +2 -1
  331. package/fesm2022/siemens-element-ng-unauthorized-page.mjs +0 -75
  332. package/fesm2022/siemens-element-ng-unauthorized-page.mjs.map +0 -1
  333. package/icon/index.d.ts +0 -285
  334. package/schematics/migrations/action-modal-migration/action-modal-migration.js +0 -162
  335. package/schematics/migrations/action-modal-migration/action-modal.mappings.js +0 -98
  336. package/schematics/migrations/action-modal-migration/index.js +0 -5
  337. package/schematics/migrations/wizard-migration/index.js +0 -80
  338. package/schematics/scss-import-to-siemens-migration/index.js +0 -101
  339. package/schematics/scss-import-to-siemens-migration/schema.json +0 -16
  340. package/schematics/scss-import-to-siemens-migration/style-mappings.js +0 -62
  341. package/schematics/ts-import-to-siemens-migration/index.js +0 -230
  342. package/schematics/ts-import-to-siemens-migration/mappings/charts-ng-mappings.js +0 -71
  343. package/schematics/ts-import-to-siemens-migration/mappings/dashboards-ng-mappings.js +0 -54
  344. package/schematics/ts-import-to-siemens-migration/mappings/element-ng-mappings.js +0 -705
  345. package/schematics/ts-import-to-siemens-migration/mappings/element-translate-ng-mappings.js +0 -21
  346. package/schematics/ts-import-to-siemens-migration/mappings/index.js +0 -10
  347. package/schematics/ts-import-to-siemens-migration/mappings/maps-ng-mappings.js +0 -47
  348. package/schematics/ts-import-to-siemens-migration/mappings/native-charts-ng-mappings.js +0 -33
  349. package/schematics/ts-import-to-siemens-migration/model.js +0 -4
  350. package/schematics/ts-import-to-siemens-migration/schema.json +0 -16
  351. package/unauthorized-page/index.d.ts +0 -44
  352. package/unauthorized-page/package.json +0 -3
  353. /package/{about/index.d.ts → types/siemens-element-ng-about.d.ts} +0 -0
  354. /package/{action-modal/index.d.ts → types/siemens-element-ng-action-modal.d.ts} +0 -0
  355. /package/{ag-grid/index.d.ts → types/siemens-element-ng-ag-grid.d.ts} +0 -0
  356. /package/{auto-collapsable-list/index.d.ts → types/siemens-element-ng-auto-collapsable-list.d.ts} +0 -0
  357. /package/{avatar/index.d.ts → types/siemens-element-ng-avatar.d.ts} +0 -0
  358. /package/{badge/index.d.ts → types/siemens-element-ng-badge.d.ts} +0 -0
  359. /package/{breadcrumb-router/index.d.ts → types/siemens-element-ng-breadcrumb-router.d.ts} +0 -0
  360. /package/{card/index.d.ts → types/siemens-element-ng-card.d.ts} +0 -0
  361. /package/{circle-status/index.d.ts → types/siemens-element-ng-circle-status.d.ts} +0 -0
  362. /package/{color-picker/index.d.ts → types/siemens-element-ng-color-picker.d.ts} +0 -0
  363. /package/{column-selection-dialog/index.d.ts → types/siemens-element-ng-column-selection-dialog.d.ts} +0 -0
  364. /package/{connection-strength/index.d.ts → types/siemens-element-ng-connection-strength.d.ts} +0 -0
  365. /package/{copyright-notice/index.d.ts → types/siemens-element-ng-copyright-notice.d.ts} +0 -0
  366. /package/{datatable/index.d.ts → types/siemens-element-ng-datatable.d.ts} +0 -0
  367. /package/{empty-state/index.d.ts → types/siemens-element-ng-empty-state.d.ts} +0 -0
  368. /package/{footer/index.d.ts → types/siemens-element-ng-footer.d.ts} +0 -0
  369. /package/{header-dropdown/index.d.ts → types/siemens-element-ng-header-dropdown.d.ts} +0 -0
  370. /package/{help-button/index.d.ts → types/siemens-element-ng-help-button.d.ts} +0 -0
  371. /package/{icon-status/index.d.ts → types/siemens-element-ng-icon-status.d.ts} +0 -0
  372. /package/{info-page/index.d.ts → types/siemens-element-ng-info-page.d.ts} +0 -0
  373. /package/{inline-notification/index.d.ts → types/siemens-element-ng-inline-notification.d.ts} +0 -0
  374. /package/{ip-input/index.d.ts → types/siemens-element-ng-ip-input.d.ts} +0 -0
  375. /package/{link/index.d.ts → types/siemens-element-ng-link.d.ts} +0 -0
  376. /package/{localization/index.d.ts → types/siemens-element-ng-localization.d.ts} +0 -0
  377. /package/{main-detail-container/index.d.ts → types/siemens-element-ng-main-detail-container.d.ts} +0 -0
  378. /package/{markdown-renderer/index.d.ts → types/siemens-element-ng-markdown-renderer.d.ts} +0 -0
  379. /package/{menu/index.d.ts → types/siemens-element-ng-menu.d.ts} +0 -0
  380. /package/{number-input/index.d.ts → types/siemens-element-ng-number-input.d.ts} +0 -0
  381. /package/{password-strength/index.d.ts → types/siemens-element-ng-password-strength.d.ts} +0 -0
  382. /package/{photo-upload/index.d.ts → types/siemens-element-ng-photo-upload.d.ts} +0 -0
  383. /package/{popover-legacy/index.d.ts → types/siemens-element-ng-popover-legacy.d.ts} +0 -0
  384. /package/{progressbar/index.d.ts → types/siemens-element-ng-progressbar.d.ts} +0 -0
  385. /package/{result-details-list/index.d.ts → types/siemens-element-ng-result-details-list.d.ts} +0 -0
  386. /package/{shadow-root/index.d.ts → types/siemens-element-ng-shadow-root.d.ts} +0 -0
  387. /package/{skip-links/index.d.ts → types/siemens-element-ng-skip-links.d.ts} +0 -0
  388. /package/{sort-bar/index.d.ts → types/siemens-element-ng-sort-bar.d.ts} +0 -0
  389. /package/{status-counter/index.d.ts → types/siemens-element-ng-status-counter.d.ts} +0 -0
  390. /package/{status-toggle/index.d.ts → types/siemens-element-ng-status-toggle.d.ts} +0 -0
  391. /package/{summary-chip/index.d.ts → types/siemens-element-ng-summary-chip.d.ts} +0 -0
  392. /package/{summary-widget/index.d.ts → types/siemens-element-ng-summary-widget.d.ts} +0 -0
  393. /package/{system-banner/index.d.ts → types/siemens-element-ng-system-banner.d.ts} +0 -0
  394. /package/{tabs/index.d.ts → types/siemens-element-ng-tabs.d.ts} +0 -0
  395. /package/{theme/index.d.ts → types/siemens-element-ng-theme.d.ts} +0 -0
  396. /package/{index.d.ts → types/siemens-element-ng.d.ts} +0 -0
@@ -1,12 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, inject, ChangeDetectorRef, ElementRef, input, model, booleanAttribute, output, viewChild, signal, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { Directive, inject, LOCALE_ID, ChangeDetectorRef, ElementRef, input, model, booleanAttribute, output, viewChild, signal, computed, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
4
- import { NgClass, LowerCasePipe } from '@angular/common';
4
+ import { LowerCasePipe } from '@angular/common';
5
5
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import { elementDown2 } from '@siemens/element-icons';
6
7
  import { SI_FORM_ITEM_CONTROL } from '@siemens/element-ng/form';
7
- import { addIcons, elementDown2, SiIconComponent } from '@siemens/element-ng/icon';
8
+ import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
8
9
  import * as i1 from '@siemens/element-ng/select';
9
- import { SiSelectComplexOptionsDirective, SiSelectSingleValueDirective, SiSelectListHasFilterComponent } from '@siemens/element-ng/select';
10
+ import { SiSelectSimpleOptionsDirective, SiSelectSingleValueDirective, SiSelectListHasFilterComponent } from '@siemens/element-ng/select';
10
11
  import { injectSiTranslateService, t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
11
12
  import { PhoneNumberUtil, PhoneNumberFormat } from 'google-libphonenumber';
12
13
 
@@ -19,17 +20,17 @@ import { PhoneNumberUtil, PhoneNumberFormat } from 'google-libphonenumber';
19
20
  * As we don't use si-select directly, we need to provide these strategies manually.
20
21
  */
21
22
  class SiPhoneNumberInputSelectDirective {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: SiPhoneNumberInputSelectDirective, isStandalone: true, selector: "[siPhoneNumberInputSelect]", hostDirectives: [{ directive: i1.SiSelectComplexOptionsDirective, inputs: ["complexOptions", "complexOptions", "valueProvider", "valueProvider"] }, { directive: i1.SiSelectSingleValueDirective, inputs: ["value", "value"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 });
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type: SiPhoneNumberInputSelectDirective, isStandalone: true, selector: "[siPhoneNumberInputSelect]", hostDirectives: [{ directive: i1.SiSelectSimpleOptionsDirective, inputs: ["options", "options"] }, { directive: i1.SiSelectSingleValueDirective, inputs: ["value", "value"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 });
24
25
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputSelectDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputSelectDirective, decorators: [{
26
27
  type: Directive,
27
28
  args: [{
28
29
  selector: '[siPhoneNumberInputSelect]',
29
30
  hostDirectives: [
30
31
  {
31
- directive: SiSelectComplexOptionsDirective,
32
- inputs: ['complexOptions', 'valueProvider']
32
+ directive: SiSelectSimpleOptionsDirective,
33
+ inputs: ['options']
33
34
  },
34
35
  { directive: SiSelectSingleValueDirective, inputs: ['value'], outputs: ['valueChange'] }
35
36
  ]
@@ -44,6 +45,7 @@ class SiPhoneNumberInputComponent {
44
45
  static idCounter = 0;
45
46
  phoneUtil = PhoneNumberUtil.getInstance();
46
47
  translate = injectSiTranslateService();
48
+ locale = inject(LOCALE_ID).toString();
47
49
  changeDetectorRef = inject(ChangeDetectorRef);
48
50
  elementRef = inject(ElementRef);
49
51
  /**
@@ -54,15 +56,15 @@ class SiPhoneNumberInputComponent {
54
56
  * `__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`
55
57
  * ```
56
58
  */
57
- id = input(`__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`);
59
+ id = input(`__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
58
60
  /**
59
61
  * ISO_3166-2 Code of the selected country.
60
62
  */
61
- country = model();
63
+ country = model(...(ngDevMode ? [undefined, { debugName: "country" }] : []));
62
64
  /**
63
65
  * ISO_3166-2 Code of the country which shall be used on form-control reset.
64
66
  */
65
- defaultCountry = input();
67
+ defaultCountry = input(...(ngDevMode ? [undefined, { debugName: "defaultCountry" }] : []));
66
68
  /**
67
69
  * Placeholder text for country search input.
68
70
  *
@@ -71,14 +73,14 @@ class SiPhoneNumberInputComponent {
71
73
  * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`)
72
74
  * ```
73
75
  */
74
- placeholderForSearch = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`));
76
+ placeholderForSearch = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`), ...(ngDevMode ? [{ debugName: "placeholderForSearch" }] : []));
75
77
  /**
76
78
  * @defaultValue
77
79
  * ```
78
80
  * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`)
79
81
  * ```
80
82
  */
81
- searchNoResultsFoundLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`));
83
+ searchNoResultsFoundLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`), ...(ngDevMode ? [{ debugName: "searchNoResultsFoundLabel" }] : []));
82
84
  /**
83
85
  * Text for the country dropdown aria-label attribute.
84
86
  *
@@ -87,7 +89,7 @@ class SiPhoneNumberInputComponent {
87
89
  * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`)
88
90
  * ```
89
91
  */
90
- selectCountryAriaLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`));
92
+ selectCountryAriaLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`), ...(ngDevMode ? [{ debugName: "selectCountryAriaLabel" }] : []));
91
93
  /**
92
94
  * Text for the phone number input aria-label attribute.
93
95
  *
@@ -96,24 +98,24 @@ class SiPhoneNumberInputComponent {
96
98
  * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`)
97
99
  * ```
98
100
  */
99
- phoneNumberAriaLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`));
101
+ phoneNumberAriaLabel = input(t(() => $localize `:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`), ...(ngDevMode ? [{ debugName: "phoneNumberAriaLabel" }] : []));
100
102
  /**
101
103
  * List of countries in ISO2 format, from which the user is allowed to select one.
102
104
  * If no values are provided, the dropdown will show all known countries.
103
105
  */
104
- supportedCountries = input();
106
+ supportedCountries = input(...(ngDevMode ? [undefined, { debugName: "supportedCountries" }] : []));
105
107
  /**
106
108
  * @defaultValue
107
109
  * ```
108
110
  * `${this.id()}-label`
109
111
  * ```
110
112
  */
111
- labelledby = input(`${this.id()}-label`);
113
+ labelledby = input(`${this.id()}-label`, ...(ngDevMode ? [{ debugName: "labelledby" }] : []));
112
114
  /** @defaultValue false */
113
115
  // eslint-disable-next-line @angular-eslint/no-input-rename
114
- disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });
116
+ disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : {}), alias: 'disabled', transform: booleanAttribute });
115
117
  /** @defaultValue false */
116
- readonly = input(false, { transform: booleanAttribute });
118
+ readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
117
119
  valueChange = output();
118
120
  /**
119
121
  * This ID will be bound to the `aria-describedby` attribute of the phone-number-input.
@@ -125,27 +127,35 @@ class SiPhoneNumberInputComponent {
125
127
  * `${this.id()}-errormessage`
126
128
  * ```
127
129
  */
128
- errormessageId = input(`${this.id()}-errormessage`);
130
+ errormessageId = input(`${this.id()}-errormessage`, ...(ngDevMode ? [{ debugName: "errormessageId" }] : []));
129
131
  phoneInput = viewChild.required('phoneInput');
130
132
  selectedCountry;
131
133
  placeholder = '';
132
- countryFocused = signal(false);
134
+ countryFocused = signal(false, ...(ngDevMode ? [{ debugName: "countryFocused" }] : []));
133
135
  open = false;
134
136
  overlayWidth = 0;
135
- disabled = computed(() => this.disabledInput() || this.disabledNgControl());
137
+ disabled = computed(() => this.disabledInput() || this.disabledNgControl(), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
136
138
  countryList = computed(() => {
137
139
  const countries = this.allowedCountries() ?? this.phoneUtil.getSupportedRegions();
138
140
  return countries
139
- .map((country) => ({
140
- name: this.getCountryName(country),
141
- countryCode: this.phoneUtil.getCountryCodeForRegion(country),
142
- isoCode: country
143
- }))
144
- .sort((a, b) => a.name.localeCompare(b.name));
145
- });
141
+ .map((country) => {
142
+ const countryInfo = {
143
+ name: this.getCountryName(country),
144
+ countryCode: this.phoneUtil.getCountryCodeForRegion(country),
145
+ isoCode: country
146
+ };
147
+ return {
148
+ type: 'option',
149
+ value: countryInfo,
150
+ label: `${countryInfo.name} +${countryInfo.countryCode}`,
151
+ typeaheadLabel: `${countryInfo.name} +${countryInfo.countryCode}`
152
+ };
153
+ })
154
+ .sort((a, b) => a.value.name.localeCompare(b.value.name));
155
+ }, ...(ngDevMode ? [{ debugName: "countryList" }] : []));
146
156
  icons = addIcons({ elementDown2 });
147
- allowedCountries = computed(() => this.supportedCountries() ?? this.phoneUtil.getSupportedRegions());
148
- disabledNgControl = signal(false);
157
+ allowedCountries = computed(() => this.supportedCountries() ?? this.phoneUtil.getSupportedRegions(), ...(ngDevMode ? [{ debugName: "allowedCountries" }] : []));
158
+ disabledNgControl = signal(false, ...(ngDevMode ? [{ debugName: "disabledNgControl" }] : []));
149
159
  isValidNumber = true;
150
160
  phoneNumber;
151
161
  onChange = () => { };
@@ -193,7 +203,7 @@ class SiPhoneNumberInputComponent {
193
203
  invalidPhoneNumberFormat: true
194
204
  };
195
205
  }
196
- if (!this.countryList().some(c => c.isoCode === this.selectedCountry.isoCode)) {
206
+ if (!this.countryList().some(c => c.value.isoCode === this.selectedCountry.isoCode)) {
197
207
  return {
198
208
  notSupportedPhoneNumberCountry: true
199
209
  };
@@ -206,7 +216,7 @@ class SiPhoneNumberInputComponent {
206
216
  this.phoneNumber = this.parseNumber(rawNumber);
207
217
  if (this.phoneNumber) {
208
218
  const regionCode = this.getRegionCode();
209
- let countryInfo = this.countryList().find(country => regionCode === country.isoCode);
219
+ let countryInfo = this.countryList().find(country => regionCode === country.value.isoCode)?.value;
210
220
  if (!countryInfo && regionCode) {
211
221
  countryInfo = {
212
222
  name: this.getCountryName(regionCode),
@@ -249,12 +259,9 @@ class SiPhoneNumberInputComponent {
249
259
  this.open = false;
250
260
  this.phoneInput().nativeElement.focus();
251
261
  }
252
- valueProvider(country) {
253
- return `${country.name} +${country.countryCode}`;
254
- }
255
262
  writeCountry() {
256
263
  const currentCountry = this.country();
257
- this.selectedCountry = this.countryList().find(country => country.isoCode === currentCountry);
264
+ this.selectedCountry = this.countryList().find(country => country.value.isoCode === currentCountry)?.value;
258
265
  if (!this.selectedCountry) {
259
266
  const countryCode = this.phoneUtil.getCountryCodeForRegion(currentCountry ?? this.defaultCountry() ?? 'XX');
260
267
  if (countryCode) {
@@ -270,7 +277,7 @@ class SiPhoneNumberInputComponent {
270
277
  }
271
278
  getCountryName(countryCode) {
272
279
  // This auto translates the given country name to the selected locale language
273
- return (new Intl.DisplayNames([this.translate.currentLanguage], { type: 'region' }).of(countryCode.toUpperCase()) ?? '');
280
+ return (new Intl.DisplayNames([this.translate.currentLanguage ?? this.locale], { type: 'region' }).of(countryCode.toUpperCase()) ?? '');
274
281
  }
275
282
  updatePlaceholder() {
276
283
  if (this.selectedCountry) {
@@ -351,8 +358,8 @@ class SiPhoneNumberInputComponent {
351
358
  this.writeValueToInput();
352
359
  }
353
360
  }
354
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
355
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiPhoneNumberInputComponent, isStandalone: true, selector: "si-phone-number-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: "country", publicName: "country", isSignal: true, isRequired: false, transformFunction: null }, defaultCountry: { classPropertyName: "defaultCountry", publicName: "defaultCountry", isSignal: true, isRequired: false, transformFunction: null }, placeholderForSearch: { classPropertyName: "placeholderForSearch", publicName: "placeholderForSearch", isSignal: true, isRequired: false, transformFunction: null }, searchNoResultsFoundLabel: { classPropertyName: "searchNoResultsFoundLabel", publicName: "searchNoResultsFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, selectCountryAriaLabel: { classPropertyName: "selectCountryAriaLabel", publicName: "selectCountryAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, phoneNumberAriaLabel: { classPropertyName: "phoneNumberAriaLabel", publicName: "phoneNumberAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, supportedCountries: { classPropertyName: "supportedCountries", publicName: "supportedCountries", isSignal: true, isRequired: false, transformFunction: null }, labelledby: { classPropertyName: "labelledby", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, errormessageId: { classPropertyName: "errormessageId", publicName: "errormessageId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { country: "countryChange", valueChange: "valueChange" }, host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelledby()", "attr.id": "id()", "class.disabled": "disabled()", "class.readonly": "readonly()", "class.country-focus": "countryFocused()" } }, providers: [
361
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
362
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiPhoneNumberInputComponent, isStandalone: true, selector: "si-phone-number-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: "country", publicName: "country", isSignal: true, isRequired: false, transformFunction: null }, defaultCountry: { classPropertyName: "defaultCountry", publicName: "defaultCountry", isSignal: true, isRequired: false, transformFunction: null }, placeholderForSearch: { classPropertyName: "placeholderForSearch", publicName: "placeholderForSearch", isSignal: true, isRequired: false, transformFunction: null }, searchNoResultsFoundLabel: { classPropertyName: "searchNoResultsFoundLabel", publicName: "searchNoResultsFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, selectCountryAriaLabel: { classPropertyName: "selectCountryAriaLabel", publicName: "selectCountryAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, phoneNumberAriaLabel: { classPropertyName: "phoneNumberAriaLabel", publicName: "phoneNumberAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, supportedCountries: { classPropertyName: "supportedCountries", publicName: "supportedCountries", isSignal: true, isRequired: false, transformFunction: null }, labelledby: { classPropertyName: "labelledby", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, errormessageId: { classPropertyName: "errormessageId", publicName: "errormessageId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { country: "countryChange", valueChange: "valueChange" }, host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelledby()", "attr.id": "id()", "class.disabled": "disabled()", "class.readonly": "readonly()", "class.country-focus": "countryFocused()" } }, providers: [
356
363
  {
357
364
  provide: NG_VALIDATORS,
358
365
  useExisting: SiPhoneNumberInputComponent,
@@ -367,14 +374,13 @@ class SiPhoneNumberInputComponent {
367
374
  provide: SI_FORM_ITEM_CONTROL,
368
375
  useExisting: SiPhoneNumberInputComponent
369
376
  }
370
- ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [complexOptions]=\"countryList()\"\n [value]=\"selectedCountry\"\n [valueProvider]=\"valueProvider\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n class=\"fi\"\n aria-hidden=\"true\"\n [ngClass]=\"'fi-' + ((selectedCountry?.isoCode | lowercase) ?? 'xx')\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span class=\"fi me-5\" [ngClass]=\"'fi-' + (option.value.isoCode | lowercase)\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n", styles: [":host:focus-within:not(.country-focus){outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.search-country{display:inline-block;margin-block-start:8px;margin-block-end:8px;margin-inline:8px;inline-size:calc(100% - 16px)}.disabled{pointer-events:none}.disabled,.disabled:hover,.disabled:focus{--border-color: var(--element-ui-3);color:var(--element-text-disabled)}.dropdown-toggle{border-radius:var(--element-input-radius);min-inline-size:auto!important;background:transparent}.dropdown-toggle .fi.fi-xx{background-image:none;background-color:var(--element-text-disabled)}.dropdown-toggle:disabled{opacity:var(--element-action-disabled-opacity)}.dropdown-toggle.readonly{cursor:default}.phone-number{background-color:transparent;inline-size:inherit}.phone-number:disabled,.phone-number[readonly]{opacity:1}.phone-number:disabled{color:var(--element-text-disabled)}.phone-number:disabled::placeholder{color:transparent}.phone-number::placeholder{color:var(--element-text-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiPhoneNumberInputSelectDirective, selector: "[siPhoneNumberInputSelect]" }, { kind: "component", type: SiSelectListHasFilterComponent, selector: "si-select-list-has-filter", inputs: ["filterPlaceholder", "noResultsFoundLabel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
377
+ ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [options]=\"countryList()\"\n [value]=\"selectedCountry\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n aria-hidden=\"true\"\n [class]=\"`fi fi-${(selectedCountry?.isoCode | lowercase) ?? 'xx'}`\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span aria-hidden=\"true\" [class]=\"`fi me-5 fi-${(option.value.isoCode | lowercase)}`\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n", styles: [":host:focus-within:not(.country-focus){outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.search-country{display:inline-block;margin-block-start:8px;margin-block-end:8px;margin-inline:8px;inline-size:calc(100% - 16px)}.disabled{pointer-events:none}.disabled,.disabled:hover,.disabled:focus{--border-color: var(--element-ui-3);color:var(--element-text-disabled)}.dropdown-toggle{border-radius:var(--element-input-radius);min-inline-size:auto!important;background:transparent}.dropdown-toggle .fi.fi-xx{background-image:none;background-color:var(--element-text-disabled)}.dropdown-toggle:disabled{opacity:var(--element-action-disabled-opacity)}.dropdown-toggle.readonly{cursor:default}.phone-number{background-color:transparent;inline-size:inherit}.phone-number:disabled,.phone-number[readonly]{opacity:1}.phone-number:disabled{color:var(--element-text-disabled)}.phone-number:disabled::placeholder{color:transparent}.phone-number::placeholder{color:var(--element-text-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiPhoneNumberInputSelectDirective, selector: "[siPhoneNumberInputSelect]" }, { kind: "component", type: SiSelectListHasFilterComponent, selector: "si-select-list-has-filter", inputs: ["filterPlaceholder", "noResultsFoundLabel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
371
378
  }
372
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputComponent, decorators: [{
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputComponent, decorators: [{
373
380
  type: Component,
374
381
  args: [{ selector: 'si-phone-number-input', imports: [
375
382
  CdkOverlayOrigin,
376
383
  CdkConnectedOverlay,
377
- NgClass,
378
384
  SiIconComponent,
379
385
  SiPhoneNumberInputSelectDirective,
380
386
  SiSelectListHasFilterComponent,
@@ -402,19 +408,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
402
408
  '[class.disabled]': 'disabled()',
403
409
  '[class.readonly]': 'readonly()',
404
410
  '[class.country-focus]': 'countryFocused()'
405
- }, template: "<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [complexOptions]=\"countryList()\"\n [value]=\"selectedCountry\"\n [valueProvider]=\"valueProvider\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n class=\"fi\"\n aria-hidden=\"true\"\n [ngClass]=\"'fi-' + ((selectedCountry?.isoCode | lowercase) ?? 'xx')\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span class=\"fi me-5\" [ngClass]=\"'fi-' + (option.value.isoCode | lowercase)\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n", styles: [":host:focus-within:not(.country-focus){outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.search-country{display:inline-block;margin-block-start:8px;margin-block-end:8px;margin-inline:8px;inline-size:calc(100% - 16px)}.disabled{pointer-events:none}.disabled,.disabled:hover,.disabled:focus{--border-color: var(--element-ui-3);color:var(--element-text-disabled)}.dropdown-toggle{border-radius:var(--element-input-radius);min-inline-size:auto!important;background:transparent}.dropdown-toggle .fi.fi-xx{background-image:none;background-color:var(--element-text-disabled)}.dropdown-toggle:disabled{opacity:var(--element-action-disabled-opacity)}.dropdown-toggle.readonly{cursor:default}.phone-number{background-color:transparent;inline-size:inherit}.phone-number:disabled,.phone-number[readonly]{opacity:1}.phone-number:disabled{color:var(--element-text-disabled)}.phone-number:disabled::placeholder{color:transparent}.phone-number::placeholder{color:var(--element-text-secondary)}\n"] }]
406
- }] });
411
+ }, template: "<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [options]=\"countryList()\"\n [value]=\"selectedCountry\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n aria-hidden=\"true\"\n [class]=\"`fi fi-${(selectedCountry?.isoCode | lowercase) ?? 'xx'}`\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span aria-hidden=\"true\" [class]=\"`fi me-5 fi-${(option.value.isoCode | lowercase)}`\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n", styles: [":host:focus-within:not(.country-focus){outline:var(--element-button-focus-width) solid var(--element-focus-default);outline-offset:var(--element-button-focus-overlay-width)}.search-country{display:inline-block;margin-block-start:8px;margin-block-end:8px;margin-inline:8px;inline-size:calc(100% - 16px)}.disabled{pointer-events:none}.disabled,.disabled:hover,.disabled:focus{--border-color: var(--element-ui-3);color:var(--element-text-disabled)}.dropdown-toggle{border-radius:var(--element-input-radius);min-inline-size:auto!important;background:transparent}.dropdown-toggle .fi.fi-xx{background-image:none;background-color:var(--element-text-disabled)}.dropdown-toggle:disabled{opacity:var(--element-action-disabled-opacity)}.dropdown-toggle.readonly{cursor:default}.phone-number{background-color:transparent;inline-size:inherit}.phone-number:disabled,.phone-number[readonly]{opacity:1}.phone-number:disabled{color:var(--element-text-disabled)}.phone-number:disabled::placeholder{color:transparent}.phone-number::placeholder{color:var(--element-text-secondary)}\n"] }]
412
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], country: [{ type: i0.Input, args: [{ isSignal: true, alias: "country", required: false }] }, { type: i0.Output, args: ["countryChange"] }], defaultCountry: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCountry", required: false }] }], placeholderForSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderForSearch", required: false }] }], searchNoResultsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchNoResultsFoundLabel", required: false }] }], selectCountryAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectCountryAriaLabel", required: false }] }], phoneNumberAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "phoneNumberAriaLabel", required: false }] }], supportedCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedCountries", required: false }] }], labelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelledby", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], errormessageId: [{ type: i0.Input, args: [{ isSignal: true, alias: "errormessageId", required: false }] }], phoneInput: [{ type: i0.ViewChild, args: ['phoneInput', { isSignal: true }] }] } });
407
413
 
408
414
  /**
409
415
  * Copyright (c) Siemens 2016 - 2025
410
416
  * SPDX-License-Identifier: MIT
411
417
  */
412
418
  class SiPhoneNumberInputModule {
413
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
414
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputModule, imports: [SiPhoneNumberInputComponent], exports: [SiPhoneNumberInputComponent] });
415
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputModule, imports: [SiPhoneNumberInputComponent] });
419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
420
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputModule, imports: [SiPhoneNumberInputComponent], exports: [SiPhoneNumberInputComponent] });
421
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputModule, imports: [SiPhoneNumberInputComponent] });
416
422
  }
417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiPhoneNumberInputModule, decorators: [{
423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPhoneNumberInputModule, decorators: [{
418
424
  type: NgModule,
419
425
  args: [{
420
426
  imports: [SiPhoneNumberInputComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-phone-number.mjs","sources":["../../../../projects/element-ng/phone-number/si-phone-number-input-select.directive.ts","../../../../projects/element-ng/phone-number/si-phone-number-input.component.ts","../../../../projects/element-ng/phone-number/si-phone-number-input.component.html","../../../../projects/element-ng/phone-number/si-phone-number-input.module.ts","../../../../projects/element-ng/phone-number/index.ts","../../../../projects/element-ng/phone-number/siemens-element-ng-phone-number.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport {\n SiSelectComplexOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\n\n/**\n * This directive provides the si-select options and value strategy for the phone number input.\n * As we don't use si-select directly, we need to provide these strategies manually.\n */\n@Directive({\n selector: '[siPhoneNumberInputSelect]',\n hostDirectives: [\n {\n directive: SiSelectComplexOptionsDirective,\n inputs: ['complexOptions', 'valueProvider']\n },\n { directive: SiSelectSingleValueDirective, inputs: ['value'], outputs: ['valueChange'] }\n ]\n})\nexport class SiPhoneNumberInputSelectDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { LowerCasePipe, NgClass } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, elementDown2, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiSelectListHasFilterComponent } from '@siemens/element-ng/select';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { PhoneNumber, PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\n\nimport { SiPhoneNumberInputSelectDirective } from './si-phone-number-input-select.directive';\nimport { CountryInfo, PhoneDetails } from './si-phone-number-input.models';\n\n@Component({\n selector: 'si-phone-number-input',\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n NgClass,\n SiIconComponent,\n SiPhoneNumberInputSelectDirective,\n SiSelectListHasFilterComponent,\n SiTranslatePipe,\n LowerCasePipe\n ],\n templateUrl: './si-phone-number-input.component.html',\n styleUrl: './si-phone-number-input.component.scss',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SiPhoneNumberInputComponent,\n multi: true\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiPhoneNumberInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiPhoneNumberInputComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': 'labelledby()',\n '[attr.id]': 'id()',\n '[class.disabled]': 'disabled()',\n '[class.readonly]': 'readonly()',\n '[class.country-focus]': 'countryFocused()'\n }\n})\nexport class SiPhoneNumberInputComponent\n implements ControlValueAccessor, Validator, OnChanges, SiFormItemControl\n{\n private static idCounter = 0;\n\n private phoneUtil = PhoneNumberUtil.getInstance();\n private translate = injectSiTranslateService();\n private changeDetectorRef = inject(ChangeDetectorRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Unique identifier.\n *\n * @defaultValue\n * ```\n * `__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`);\n\n /**\n * ISO_3166-2 Code of the selected country.\n */\n readonly country = model<string>();\n\n /**\n * ISO_3166-2 Code of the country which shall be used on form-control reset.\n */\n readonly defaultCountry = input<string>();\n\n /**\n * Placeholder text for country search input.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`)\n * ```\n */\n readonly placeholderForSearch = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`)\n * ```\n */\n readonly searchNoResultsFoundLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`)\n );\n /**\n * Text for the country dropdown aria-label attribute.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`)\n * ```\n */\n readonly selectCountryAriaLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`)\n );\n /**\n * Text for the phone number input aria-label attribute.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`)\n * ```\n */\n readonly phoneNumberAriaLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`)\n );\n /**\n * List of countries in ISO2 format, from which the user is allowed to select one.\n * If no values are provided, the dropdown will show all known countries.\n */\n readonly supportedCountries = input<readonly string[] | null>();\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n readonly valueChange = output<PhoneDetails>();\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the phone-number-input.\n * Use this to reference the element containing the error message(s) for the phone-number-input.\n * It will be picked by the {@link SiFormItemComponent} if the phone-number-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected readonly phoneInput = viewChild.required<ElementRef<HTMLInputElement>>('phoneInput');\n protected selectedCountry?: CountryInfo;\n protected placeholder = '';\n protected readonly countryFocused = signal(false);\n protected open = false;\n protected overlayWidth = 0;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly countryList = computed(() => {\n const countries = this.allowedCountries() ?? this.phoneUtil.getSupportedRegions();\n return countries\n .map((country: string) => ({\n name: this.getCountryName(country),\n countryCode: this.phoneUtil.getCountryCodeForRegion(country),\n isoCode: country\n }))\n .sort((a: CountryInfo, b: CountryInfo) => a.name.localeCompare(b.name));\n });\n protected readonly icons = addIcons({ elementDown2 });\n private readonly allowedCountries = computed(\n () => this.supportedCountries() ?? this.phoneUtil.getSupportedRegions()\n );\n private readonly disabledNgControl = signal(false);\n private isValidNumber = true;\n private phoneNumber?: PhoneNumber;\n private onChange: (val: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.country) {\n this.writeCountry();\n }\n }\n\n /** @internal */\n writeValue(value: string | undefined): void {\n this.phoneNumber = this.parseNumber(value);\n if (this.phoneNumber) {\n this.writeValueToInput();\n this.country.set(this.getRegionCode());\n } else {\n // Number could not be parsed, write raw value instead to handle cases like undefined\n this.writeTextToInput(value);\n this.country.set(this.defaultCountry() ?? this.country());\n }\n this.writeCountry();\n this.changeDetectorRef.markForCheck();\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n validate(control: AbstractControl): ValidationErrors | null {\n if (!this.phoneInput().nativeElement.value) {\n return null;\n }\n\n this.isValidNumber = false;\n if (!this.phoneNumber || !this.phoneUtil.isValidNumber(this.phoneNumber)) {\n return {\n invalidPhoneNumberFormat: true\n };\n }\n\n if (!this.countryList().some(c => c.isoCode === this.selectedCountry!.isoCode)) {\n return {\n notSupportedPhoneNumberCountry: true\n };\n }\n\n this.isValidNumber = true;\n return null;\n }\n\n protected input(): void {\n const rawNumber = this.phoneInput().nativeElement.value;\n this.phoneNumber = this.parseNumber(rawNumber);\n\n if (this.phoneNumber) {\n const regionCode = this.getRegionCode();\n let countryInfo = this.countryList().find(country => regionCode === country.isoCode);\n if (!countryInfo && regionCode) {\n countryInfo = {\n name: this.getCountryName(regionCode),\n countryCode: this.phoneNumber.getCountryCode()!,\n isoCode: regionCode\n };\n }\n if (countryInfo && this.selectedCountry?.isoCode !== countryInfo.isoCode) {\n this.selectedCountry = countryInfo;\n }\n } else if (rawNumber.trim().startsWith('+')) {\n this.selectedCountry = undefined;\n }\n\n this.handleChange();\n }\n\n protected blur(): void {\n this.countryFocused.set(false);\n this.onTouched();\n this.writeValueToInput();\n this.valueChange.emit({\n country: this.selectedCountry,\n phoneNumber: this.formatPhoneNumber(PhoneNumberFormat.INTERNATIONAL),\n isValid: this.isValidNumber\n });\n }\n\n protected countryInput(num: CountryInfo): void {\n this.selectedCountry = num;\n this.updatePlaceholder();\n this.refreshValueAfterCountryChange();\n this.handleChange();\n }\n\n protected openOverlay(): void {\n if (!this.readonly()) {\n this.open = true;\n this.overlayWidth = this.elementRef.nativeElement.getBoundingClientRect().width + 2; // 2px border\n }\n }\n\n protected overlayDetach(): void {\n this.open = false;\n this.phoneInput().nativeElement.focus();\n }\n\n protected valueProvider(country: CountryInfo): string {\n return `${country.name} +${country.countryCode}`;\n }\n\n private writeCountry(): void {\n const currentCountry = this.country()!;\n this.selectedCountry = this.countryList().find(country => country.isoCode === currentCountry);\n if (!this.selectedCountry) {\n const countryCode = this.phoneUtil.getCountryCodeForRegion(\n currentCountry ?? this.defaultCountry() ?? 'XX'\n );\n if (countryCode) {\n this.selectedCountry = {\n isoCode: currentCountry,\n countryCode,\n name: this.getCountryName(currentCountry)\n };\n }\n }\n this.updatePlaceholder();\n this.refreshValueAfterCountryChange();\n }\n\n private getCountryName(countryCode: string): string {\n // This auto translates the given country name to the selected locale language\n return (\n new Intl.DisplayNames([this.translate.currentLanguage], { type: 'region' }).of(\n countryCode.toUpperCase()\n ) ?? ''\n );\n }\n\n private updatePlaceholder(): void {\n if (this.selectedCountry) {\n this.placeholder = this.phoneUtil\n .format(\n this.phoneUtil.getExampleNumber(this.selectedCountry.isoCode),\n PhoneNumberFormat.NATIONAL\n )\n .replace(/^0/, '');\n }\n }\n\n private parseNumber(rawNumber: string | undefined): PhoneNumber | undefined {\n try {\n let regionCodeForParsing: string | undefined;\n if (!rawNumber?.trim().startsWith('+')) {\n regionCodeForParsing = this.selectedCountry?.isoCode;\n }\n return this.phoneUtil.parse(rawNumber, regionCodeForParsing);\n } catch (e) {\n // The Number is too short, we cannot parse it yet. Error can be ignored. Hopefully, the user enters more digits.\n return;\n }\n }\n\n /**\n * PhoneUtil does not resolve country code early enough when the national prefix is shared among other countries (+1 and +44).\n * This Method fakes a complete number to force PhoneUtil returning a proper region code.\n */\n private getRegionCode(): string | undefined {\n if (this.phoneNumber) {\n const regionCode = this.phoneUtil.getRegionCodeForNumber(this.phoneNumber);\n if (regionCode) {\n return regionCode;\n }\n\n const nationalNumber = this.phoneNumber.getNationalNumber() + '';\n if (\n // USA, CANADA, ...\n (this.phoneNumber.getCountryCode() === 1 && nationalNumber.length >= 3) ||\n // UK, ...\n (this.phoneNumber.getCountryCode() === 44 && nationalNumber.length >= 4)\n ) {\n return this.phoneUtil.getRegionCodeForNumber(\n this.phoneUtil.parse(\n '+' +\n this.phoneNumber.getCountryCode() +\n nationalNumber +\n new Array(10 - nationalNumber.length).fill(5).join('')\n )\n );\n }\n\n return this.phoneUtil.getRegionCodeForCountryCode(this.phoneNumber.getCountryCode()!);\n }\n\n return undefined;\n }\n\n private formatPhoneNumber(format: PhoneNumberFormat): string | undefined {\n if (this.phoneNumber) {\n return this.phoneUtil.format(this.phoneNumber, format);\n }\n\n return undefined;\n }\n\n private handleChange(): void {\n if (this.selectedCountry && this.country() !== this.selectedCountry?.isoCode) {\n this.country.set(this.selectedCountry?.isoCode);\n }\n\n if (this.phoneNumber) {\n this.onChange(this.formatPhoneNumber(PhoneNumberFormat.INTERNATIONAL)!);\n } else {\n this.onChange('');\n }\n }\n\n private writeTextToInput(value?: string): void {\n this.phoneInput().nativeElement.value = value ?? '';\n }\n /**\n * Format and update input text or clear input text if the input value is undefined.\n */\n private writeValueToInput(): void {\n if (this.phoneNumber) {\n this.writeTextToInput(this.formatPhoneNumber(PhoneNumberFormat.NATIONAL)!.replace(/^0/, ''));\n }\n }\n\n private refreshValueAfterCountryChange(): void {\n if (this.selectedCountry) {\n this.phoneNumber?.setCountryCode(this.selectedCountry?.countryCode);\n this.writeValueToInput();\n }\n }\n}\n","<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [complexOptions]=\"countryList()\"\n [value]=\"selectedCountry\"\n [valueProvider]=\"valueProvider\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n class=\"fi\"\n aria-hidden=\"true\"\n [ngClass]=\"'fi-' + ((selectedCountry?.isoCode | lowercase) ?? 'xx')\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span class=\"fi me-5\" [ngClass]=\"'fi-' + (option.value.isoCode | lowercase)\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPhoneNumberInputComponent } from './si-phone-number-input.component';\n\n@NgModule({\n imports: [SiPhoneNumberInputComponent],\n exports: [SiPhoneNumberInputComponent]\n})\nexport class SiPhoneNumberInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-phone-number-input.module';\nexport * from './si-phone-number-input.component';\nexport * from './si-phone-number-input.models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-phone-number.mjs","sources":["../../../../projects/element-ng/phone-number/si-phone-number-input-select.directive.ts","../../../../projects/element-ng/phone-number/si-phone-number-input.component.ts","../../../../projects/element-ng/phone-number/si-phone-number-input.component.html","../../../../projects/element-ng/phone-number/si-phone-number-input.module.ts","../../../../projects/element-ng/phone-number/index.ts","../../../../projects/element-ng/phone-number/siemens-element-ng-phone-number.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport {\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n} from '@siemens/element-ng/select';\n\n/**\n * This directive provides the si-select options and value strategy for the phone number input.\n * As we don't use si-select directly, we need to provide these strategies manually.\n */\n@Directive({\n selector: '[siPhoneNumberInputSelect]',\n hostDirectives: [\n {\n directive: SiSelectSimpleOptionsDirective,\n inputs: ['options']\n },\n { directive: SiSelectSingleValueDirective, inputs: ['value'], outputs: ['valueChange'] }\n ]\n})\nexport class SiPhoneNumberInputSelectDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { LowerCasePipe } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n LOCALE_ID,\n model,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SelectOption, SiSelectListHasFilterComponent } from '@siemens/element-ng/select';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { PhoneNumber, PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\n\nimport { SiPhoneNumberInputSelectDirective } from './si-phone-number-input-select.directive';\nimport { CountryInfo, PhoneDetails } from './si-phone-number-input.models';\n\n@Component({\n selector: 'si-phone-number-input',\n imports: [\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n SiIconComponent,\n SiPhoneNumberInputSelectDirective,\n SiSelectListHasFilterComponent,\n SiTranslatePipe,\n LowerCasePipe\n ],\n templateUrl: './si-phone-number-input.component.html',\n styleUrl: './si-phone-number-input.component.scss',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SiPhoneNumberInputComponent,\n multi: true\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiPhoneNumberInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiPhoneNumberInputComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': 'labelledby()',\n '[attr.id]': 'id()',\n '[class.disabled]': 'disabled()',\n '[class.readonly]': 'readonly()',\n '[class.country-focus]': 'countryFocused()'\n }\n})\nexport class SiPhoneNumberInputComponent\n implements ControlValueAccessor, Validator, OnChanges, SiFormItemControl\n{\n private static idCounter = 0;\n\n private phoneUtil = PhoneNumberUtil.getInstance();\n private translate = injectSiTranslateService();\n private locale = inject(LOCALE_ID).toString();\n private changeDetectorRef = inject(ChangeDetectorRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Unique identifier.\n *\n * @defaultValue\n * ```\n * `__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++}`);\n\n /**\n * ISO_3166-2 Code of the selected country.\n */\n readonly country = model<string>();\n\n /**\n * ISO_3166-2 Code of the country which shall be used on form-control reset.\n */\n readonly defaultCountry = input<string>();\n\n /**\n * Placeholder text for country search input.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`)\n * ```\n */\n readonly placeholderForSearch = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`)\n * ```\n */\n readonly searchNoResultsFoundLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found`)\n );\n /**\n * Text for the country dropdown aria-label attribute.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`)\n * ```\n */\n readonly selectCountryAriaLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country`)\n );\n /**\n * Text for the phone number input aria-label attribute.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`)\n * ```\n */\n readonly phoneNumberAriaLabel = input(\n t(() => $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number`)\n );\n /**\n * List of countries in ISO2 format, from which the user is allowed to select one.\n * If no values are provided, the dropdown will show all known countries.\n */\n readonly supportedCountries = input<readonly string[] | null>();\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n readonly valueChange = output<PhoneDetails>();\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the phone-number-input.\n * Use this to reference the element containing the error message(s) for the phone-number-input.\n * It will be picked by the {@link SiFormItemComponent} if the phone-number-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected readonly phoneInput = viewChild.required<ElementRef<HTMLInputElement>>('phoneInput');\n protected selectedCountry?: CountryInfo;\n protected placeholder = '';\n protected readonly countryFocused = signal(false);\n protected open = false;\n protected overlayWidth = 0;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly countryList = computed(() => {\n const countries = this.allowedCountries() ?? this.phoneUtil.getSupportedRegions();\n return countries\n .map((country: string) => {\n const countryInfo: CountryInfo = {\n name: this.getCountryName(country),\n countryCode: this.phoneUtil.getCountryCodeForRegion(country),\n isoCode: country\n };\n return {\n type: 'option',\n value: countryInfo,\n label: `${countryInfo.name} +${countryInfo.countryCode}`,\n typeaheadLabel: `${countryInfo.name} +${countryInfo.countryCode}`\n } as SelectOption<CountryInfo>;\n })\n .sort((a, b) => a.value.name.localeCompare(b.value.name));\n });\n protected readonly icons = addIcons({ elementDown2 });\n private readonly allowedCountries = computed(\n () => this.supportedCountries() ?? this.phoneUtil.getSupportedRegions()\n );\n private readonly disabledNgControl = signal(false);\n private isValidNumber = true;\n private phoneNumber?: PhoneNumber;\n private onChange: (val: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.country) {\n this.writeCountry();\n }\n }\n\n /** @internal */\n writeValue(value: string | undefined): void {\n this.phoneNumber = this.parseNumber(value);\n if (this.phoneNumber) {\n this.writeValueToInput();\n this.country.set(this.getRegionCode());\n } else {\n // Number could not be parsed, write raw value instead to handle cases like undefined\n this.writeTextToInput(value);\n this.country.set(this.defaultCountry() ?? this.country());\n }\n this.writeCountry();\n this.changeDetectorRef.markForCheck();\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n validate(control: AbstractControl): ValidationErrors | null {\n if (!this.phoneInput().nativeElement.value) {\n return null;\n }\n\n this.isValidNumber = false;\n if (!this.phoneNumber || !this.phoneUtil.isValidNumber(this.phoneNumber)) {\n return {\n invalidPhoneNumberFormat: true\n };\n }\n\n if (!this.countryList().some(c => c.value.isoCode === this.selectedCountry!.isoCode)) {\n return {\n notSupportedPhoneNumberCountry: true\n };\n }\n\n this.isValidNumber = true;\n return null;\n }\n\n protected input(): void {\n const rawNumber = this.phoneInput().nativeElement.value;\n this.phoneNumber = this.parseNumber(rawNumber);\n\n if (this.phoneNumber) {\n const regionCode = this.getRegionCode();\n let countryInfo = this.countryList().find(\n country => regionCode === country.value.isoCode\n )?.value;\n if (!countryInfo && regionCode) {\n countryInfo = {\n name: this.getCountryName(regionCode),\n countryCode: this.phoneNumber.getCountryCode()!,\n isoCode: regionCode\n };\n }\n if (countryInfo && this.selectedCountry?.isoCode !== countryInfo.isoCode) {\n this.selectedCountry = countryInfo;\n }\n } else if (rawNumber.trim().startsWith('+')) {\n this.selectedCountry = undefined;\n }\n\n this.handleChange();\n }\n\n protected blur(): void {\n this.countryFocused.set(false);\n this.onTouched();\n this.writeValueToInput();\n this.valueChange.emit({\n country: this.selectedCountry,\n phoneNumber: this.formatPhoneNumber(PhoneNumberFormat.INTERNATIONAL),\n isValid: this.isValidNumber\n });\n }\n\n protected countryInput(num: CountryInfo): void {\n this.selectedCountry = num;\n this.updatePlaceholder();\n this.refreshValueAfterCountryChange();\n this.handleChange();\n }\n\n protected openOverlay(): void {\n if (!this.readonly()) {\n this.open = true;\n this.overlayWidth = this.elementRef.nativeElement.getBoundingClientRect().width + 2; // 2px border\n }\n }\n\n protected overlayDetach(): void {\n this.open = false;\n this.phoneInput().nativeElement.focus();\n }\n\n private writeCountry(): void {\n const currentCountry = this.country()!;\n this.selectedCountry = this.countryList().find(\n country => country.value.isoCode === currentCountry\n )?.value;\n if (!this.selectedCountry) {\n const countryCode = this.phoneUtil.getCountryCodeForRegion(\n currentCountry ?? this.defaultCountry() ?? 'XX'\n );\n if (countryCode) {\n this.selectedCountry = {\n isoCode: currentCountry,\n countryCode,\n name: this.getCountryName(currentCountry)\n };\n }\n }\n this.updatePlaceholder();\n this.refreshValueAfterCountryChange();\n }\n\n private getCountryName(countryCode: string): string {\n // This auto translates the given country name to the selected locale language\n return (\n new Intl.DisplayNames([this.translate.currentLanguage ?? this.locale], { type: 'region' }).of(\n countryCode.toUpperCase()\n ) ?? ''\n );\n }\n\n private updatePlaceholder(): void {\n if (this.selectedCountry) {\n this.placeholder = this.phoneUtil\n .format(\n this.phoneUtil.getExampleNumber(this.selectedCountry.isoCode),\n PhoneNumberFormat.NATIONAL\n )\n .replace(/^0/, '');\n }\n }\n\n private parseNumber(rawNumber: string | undefined): PhoneNumber | undefined {\n try {\n let regionCodeForParsing: string | undefined;\n if (!rawNumber?.trim().startsWith('+')) {\n regionCodeForParsing = this.selectedCountry?.isoCode;\n }\n return this.phoneUtil.parse(rawNumber, regionCodeForParsing);\n } catch (e) {\n // The Number is too short, we cannot parse it yet. Error can be ignored. Hopefully, the user enters more digits.\n return;\n }\n }\n\n /**\n * PhoneUtil does not resolve country code early enough when the national prefix is shared among other countries (+1 and +44).\n * This Method fakes a complete number to force PhoneUtil returning a proper region code.\n */\n private getRegionCode(): string | undefined {\n if (this.phoneNumber) {\n const regionCode = this.phoneUtil.getRegionCodeForNumber(this.phoneNumber);\n if (regionCode) {\n return regionCode;\n }\n\n const nationalNumber = this.phoneNumber.getNationalNumber() + '';\n if (\n // USA, CANADA, ...\n (this.phoneNumber.getCountryCode() === 1 && nationalNumber.length >= 3) ||\n // UK, ...\n (this.phoneNumber.getCountryCode() === 44 && nationalNumber.length >= 4)\n ) {\n return this.phoneUtil.getRegionCodeForNumber(\n this.phoneUtil.parse(\n '+' +\n this.phoneNumber.getCountryCode() +\n nationalNumber +\n new Array(10 - nationalNumber.length).fill(5).join('')\n )\n );\n }\n\n return this.phoneUtil.getRegionCodeForCountryCode(this.phoneNumber.getCountryCode()!);\n }\n\n return undefined;\n }\n\n private formatPhoneNumber(format: PhoneNumberFormat): string | undefined {\n if (this.phoneNumber) {\n return this.phoneUtil.format(this.phoneNumber, format);\n }\n\n return undefined;\n }\n\n private handleChange(): void {\n if (this.selectedCountry && this.country() !== this.selectedCountry?.isoCode) {\n this.country.set(this.selectedCountry?.isoCode);\n }\n\n if (this.phoneNumber) {\n this.onChange(this.formatPhoneNumber(PhoneNumberFormat.INTERNATIONAL)!);\n } else {\n this.onChange('');\n }\n }\n\n private writeTextToInput(value?: string): void {\n this.phoneInput().nativeElement.value = value ?? '';\n }\n /**\n * Format and update input text or clear input text if the input value is undefined.\n */\n private writeValueToInput(): void {\n if (this.phoneNumber) {\n this.writeTextToInput(this.formatPhoneNumber(PhoneNumberFormat.NATIONAL)!.replace(/^0/, ''));\n }\n }\n\n private refreshValueAfterCountryChange(): void {\n if (this.selectedCountry) {\n this.phoneNumber?.setCountryCode(this.selectedCountry?.countryCode);\n this.writeValueToInput();\n }\n }\n}\n","<div\n class=\"btn-group w-100 d-flex shadow-none border-0\"\n [class.disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-disabled]=\"disabled()\"\n>\n <button\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n siPhoneNumberInputSelect\n class=\"dropdown-toggle d-flex align-items-center ms-n4 my-n4 py-2 px-4 border-0\"\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [disabled]=\"disabled()\"\n [class.readonly]=\"readonly()\"\n [attr.aria-labelledby]=\"id() + '-aria-label ' + id() + '-value'\"\n [attr.aria-expanded]=\"open\"\n [options]=\"countryList()\"\n [value]=\"selectedCountry\"\n [tabindex]=\"disabled() ? '-1' : '0'\"\n [attr.aria-controls]=\"id() + '-listbox'\"\n (valueChange)=\"countryInput($event)\"\n (click)=\"openOverlay()\"\n (focus)=\"countryFocused.set(true)\"\n (blur)=\"countryFocused.set(false)\"\n >\n <span class=\"visually-hidden\" [id]=\"id() + '-aria-label'\">{{\n selectCountryAriaLabel() | translate\n }}</span>\n <span\n aria-hidden=\"true\"\n [class]=\"`fi fi-${(selectedCountry?.isoCode | lowercase) ?? 'xx'}`\"\n ></span>\n @if (selectedCountry) {\n <span class=\"si-body ms-4\" [id]=\"id() + '-value'\">\n <span class=\"visually-hidden\">{{ selectedCountry.name }}</span>\n +{{ selectedCountry.countryCode }}\n </span>\n }\n <si-icon class=\"icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n >\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"placeholderForSearch()\"\n [noResultsFoundLabel]=\"searchNoResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate\"\n (closeOverlay)=\"overlayDetach()\"\n />\n </ng-template>\n <ng-template #optionTemplate let-option>\n <span aria-hidden=\"true\" [class]=\"`fi me-5 fi-${(option.value.isoCode | lowercase)}`\"></span>\n {{ option.value.name }} +{{ option.value.countryCode }}\n </ng-template>\n </button>\n <input\n #phoneInput\n type=\"tel\"\n class=\"ms-4 border-0 p-0 focus-none shadow-none flex-grow-1 phone-number\"\n [attr.aria-label]=\"phoneNumberAriaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPhoneNumberInputComponent } from './si-phone-number-input.component';\n\n@NgModule({\n imports: [SiPhoneNumberInputComponent],\n exports: [SiPhoneNumberInputComponent]\n})\nexport class SiPhoneNumberInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-phone-number-input.module';\nexport * from './si-phone-number-input.component';\nexport * from './si-phone-number-input.models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;AAGG;AAOH;;;AAGG;MAWU,iCAAiC,CAAA;uGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAV7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,8BAA8B;4BACzC,MAAM,EAAE,CAAC,SAAS;AACnB,yBAAA;AACD,wBAAA,EAAE,SAAS,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC;AACvF;AACF,iBAAA;;;ACvBD;;;AAGG;MAiFU,2BAA2B,CAAA;AAG9B,IAAA,OAAO,SAAS,GAAG,CAAC;AAEpB,IAAA,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE;IACzC,SAAS,GAAG,wBAAwB,EAAE;IACtC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;AACrC,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEhE;;;;;;;AAOG;IACM,EAAE,GAAG,KAAK,CAAC,CAAA,wBAAA,EAA2B,2BAA2B,CAAC,SAAS,EAAE,CAAA,CAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEzF;;AAEG;IACM,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAElC;;AAEG;IACM,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEzC;;;;;;;AAOG;AACM,IAAA,oBAAoB,GAAG,KAAK,CACnC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,kDAAA,CAAoD,CAAC,gEACvE;AACD;;;;;AAKG;AACM,IAAA,yBAAyB,GAAG,KAAK,CACxC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,iEAAA,CAAmE,CAAC,qEACtF;AACD;;;;;;;AAOG;AACM,IAAA,sBAAsB,GAAG,KAAK,CACrC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,sDAAA,CAAwD,CAAC,kEAC3E;AACD;;;;;;;AAOG;AACM,IAAA,oBAAoB,GAAG,KAAK,CACnC,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,oEAAA,CAAsE,CAAC,gEACzF;AACD;;;AAGG;IACM,kBAAkB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA4B;AAE/D;;;;;AAKG;IACM,UAAU,GAAG,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;;AAIxC,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,GAAA,EAAA,CAAA,EAAI,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,GAAG;;IAGhF,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAExD,WAAW,GAAG,MAAM,EAAgB;AAE7C;;;;;;;;;AASG;IACM,cAAc,GAAG,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,aAAA,CAAe,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEzC,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA+B,YAAY,CAAC;AACpF,IAAA,eAAe;IACf,WAAW,GAAG,EAAE;AACP,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;IACvC,IAAI,GAAG,KAAK;IACZ,YAAY,GAAG,CAAC;AACP,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,oDAAC;AAC3E,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACjF,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,OAAe,KAAI;AACvB,YAAA,MAAM,WAAW,GAAgB;AAC/B,gBAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC;AAC5D,gBAAA,OAAO,EAAE;aACV;YACD,OAAO;AACL,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,WAAW,CAAA,CAAE;gBACxD,cAAc,EAAE,GAAG,WAAW,CAAC,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,WAAW,CAAA;aACnC;AAChC,QAAA,CAAC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7D,IAAA,CAAC,uDAAC;AACiB,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;AACpC,IAAA,gBAAgB,GAAG,QAAQ,CAC1C,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,4DACxE;AACgB,IAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,6DAAC;IAC1C,aAAa,GAAG,IAAI;AACpB,IAAA,WAAW;AACX,IAAA,QAAQ,GAA0B,MAAK,EAAE,CAAC;AAC1C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAExC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;;AAGA,IAAA,UAAU,CAAC,KAAyB,EAAA;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC;aAAO;;AAEL,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3D;QACA,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;IACvC;;AAGA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;;AAGA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;;AAGA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC;;AAGA,IAAA,QAAQ,CAAC,OAAwB,EAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1C,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxE,OAAO;AACL,gBAAA,wBAAwB,EAAE;aAC3B;QACH;QAEA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,EAAE;YACpF,OAAO;AACL,gBAAA,8BAA8B,EAAE;aACjC;QACH;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,OAAO,IAAI;IACb;IAEU,KAAK,GAAA;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AAE9C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;YACvC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CACvC,OAAO,IAAI,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAChD,EAAE,KAAK;AACR,YAAA,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AAC9B,gBAAA,WAAW,GAAG;AACZ,oBAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;AACrC,oBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAG;AAC/C,oBAAA,OAAO,EAAE;iBACV;YACH;AACA,YAAA,IAAI,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,OAAO,KAAK,WAAW,CAAC,OAAO,EAAE;AACxE,gBAAA,IAAI,CAAC,eAAe,GAAG,WAAW;YACpC;QACF;aAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;QAClC;QAEA,IAAI,CAAC,YAAY,EAAE;IACrB;IAEU,IAAI,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC;YACpE,OAAO,EAAE,IAAI,CAAC;AACf,SAAA,CAAC;IACJ;AAEU,IAAA,YAAY,CAAC,GAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG;QAC1B,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,YAAY,EAAE;IACrB;IAEU,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACtF;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IACzC;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAG;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,cAAc,CACpD,EAAE,KAAK;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACxD,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAChD;YACD,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,eAAe,GAAG;AACrB,oBAAA,OAAO,EAAE,cAAc;oBACvB,WAAW;AACX,oBAAA,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc;iBACzC;YACH;QACF;QACA,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,8BAA8B,EAAE;IACvC;AAEQ,IAAA,cAAc,CAAC,WAAmB,EAAA;;AAExC,QAAA,QACE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAC3F,WAAW,CAAC,WAAW,EAAE,CAC1B,IAAI,EAAE;IAEX;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACrB,iBAAA,MAAM,CACL,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7D,iBAAiB,CAAC,QAAQ;AAE3B,iBAAA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB;IACF;AAEQ,IAAA,WAAW,CAAC,SAA6B,EAAA;AAC/C,QAAA,IAAI;AACF,YAAA,IAAI,oBAAwC;YAC5C,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtC,gBAAA,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO;YACtD;YACA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC;QAC9D;QAAE,OAAO,CAAC,EAAE;;YAEV;QACF;IACF;AAEA;;;AAGG;IACK,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1E,IAAI,UAAU,EAAE;AACd,gBAAA,OAAO,UAAU;YACnB;YAEA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,GAAG,EAAE;AAChE,YAAA;;AAEE,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC;;AAEtE,iBAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,CAAC,EACxE;AACA,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,GAAG;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;oBACjC,cAAc;oBACd,IAAI,KAAK,CAAC,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACzD,CACF;YACH;AAEA,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAG,CAAC;QACvF;AAEA,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,iBAAiB,CAAC,MAAyB,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;QACxD;AAEA,QAAA,OAAO,SAAS;IAClB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;YAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;QACjD;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAE,CAAC;QACzE;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnB;IACF;AAEQ,IAAA,gBAAgB,CAAC,KAAc,EAAA;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;IACrD;AACA;;AAEG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9F;IACF;IAEQ,8BAA8B,GAAA;AACpC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC;YACnE,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;uGA/XW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EA1B3B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE;AACR,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE;AACR,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE;AACd;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzEH,g4FAgFA,EAAA,MAAA,EAAA,CAAA,0iCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhCI,gBAAgB,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,mBAAmB,EAAA,QAAA,EAAA,qEAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,8BAAA,EAAA,qCAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,kCAAA,EAAA,+BAAA,EAAA,mCAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,sCAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,uCAAA,EAAA,kCAAA,EAAA,yBAAA,EAAA,wCAAA,EAAA,+BAAA,EAAA,+BAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,iCAAiC,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjC,8BAA8B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAC9B,eAAe,6CACf,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FA8BJ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAvCvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,OAAA,EACxB;wBACP,gBAAgB;wBAChB,mBAAmB;wBACnB,eAAe;wBACf,iCAAiC;wBACjC,8BAA8B;wBAC9B,eAAe;wBACf;qBACD,EAAA,SAAA,EAGU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAA,2BAA6B;AACxC,4BAAA,KAAK,EAAE;AACR,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,2BAA6B;AACxC,4BAAA,KAAK,EAAE;AACR,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAA;AACZ;qBACF,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,kBAAkB,EAAE,YAAY;AAChC,wBAAA,kBAAkB,EAAE,YAAY;AAChC,wBAAA,uBAAuB,EAAE;AAC1B,qBAAA,EAAA,QAAA,EAAA,g4FAAA,EAAA,MAAA,EAAA,CAAA,0iCAAA,CAAA,EAAA;s8CA8GgF,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEhM/F;;;AAGG;MASU,wBAAwB,CAAA;uGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAxB,wBAAwB,EAAA,OAAA,EAAA,CAHzB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAC3B,2BAA2B,CAAA,EAAA,CAAA;AAE1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAHzB,2BAA2B,CAAA,EAAA,CAAA;;2FAG1B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,2BAA2B,CAAC;oBACtC,OAAO,EAAE,CAAC,2BAA2B;AACtC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}