@ptsecurity/mosaic 13.10.0 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/_theming.scss +90 -7388
  2. package/_visual.scss +6 -2778
  3. package/autocomplete/autocomplete-origin.directive.d.ts +1 -1
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +1 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/button/button.component.d.ts +4 -4
  7. package/button-toggle/button-toggle.component.d.ts +2 -2
  8. package/card/card.component.d.ts +3 -3
  9. package/checkbox/checkbox-required-validator.d.ts +1 -1
  10. package/checkbox/checkbox.d.ts +7 -16
  11. package/core/common-behaviors/color.d.ts +4 -1
  12. package/core/common-behaviors/error-state.d.ts +7 -4
  13. package/core/error/error-options.d.ts +3 -3
  14. package/core/formatters/date/formatter.pipe.d.ts +95 -0
  15. package/core/formatters/index.d.ts +3 -1
  16. package/core/formatters/number/formatter.d.ts +1 -1
  17. package/core/forms/forms.directive.d.ts +2 -2
  18. package/core/highlight/highlight.pipe.d.ts +1 -1
  19. package/core/line/line.d.ts +1 -1
  20. package/core/option/action.d.ts +2 -2
  21. package/core/option/optgroup.d.ts +2 -2
  22. package/core/option/option.d.ts +1 -1
  23. package/core/pop-up/pop-up-trigger.d.ts +5 -4
  24. package/core/pop-up/pop-up.d.ts +2 -2
  25. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -3
  26. package/core/validation/validation.d.ts +1 -12
  27. package/datepicker/calendar-body.component.d.ts +1 -1
  28. package/datepicker/calendar.component.d.ts +30 -30
  29. package/datepicker/datepicker-input.directive.d.ts +6 -11
  30. package/datepicker/datepicker-toggle.component.d.ts +2 -2
  31. package/datepicker/datepicker.component.d.ts +2 -2
  32. package/datepicker/month-view.component.d.ts +1 -1
  33. package/datepicker/multi-year-view.component.d.ts +1 -1
  34. package/datepicker/year-view.component.d.ts +1 -1
  35. package/design-tokens/legacy-2017/tokens/components/badge.json5 +46 -46
  36. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +2 -1
  37. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +20 -15
  38. package/design-tokens/legacy-2017/tokens/components/forms.json5 +0 -4
  39. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +10 -1
  40. package/design-tokens/legacy-2017/tokens/components/timezone.json5 +23 -0
  41. package/design-tokens/legacy-2017/tokens.d.ts +55 -35
  42. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +2 -1
  43. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +21 -16
  44. package/design-tokens/pt-2022/tokens/components/forms.json5 +0 -4
  45. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +10 -1
  46. package/design-tokens/pt-2022/tokens/components/timezone.json5 +23 -0
  47. package/design-tokens/pt-2022/tokens/properties/colors.json5 +2 -2
  48. package/design-tokens/pt-2022/tokens/properties/typography.json5 +17 -17
  49. package/design-tokens/pt-2022/tokens.d.ts +43 -23
  50. package/design-tokens/style-dictionary/formats/figma.js +2 -2
  51. package/design-tokens/style-dictionary/transforms/attribute/palette.js +1 -1
  52. package/design-tokens/style-dictionary/transforms/attribute/size.js +1 -1
  53. package/design-tokens/style-dictionary/transforms/attribute/typography.js +1 -1
  54. package/divider/divider.component.d.ts +1 -1
  55. package/dl/dl.component.d.ts +3 -3
  56. package/dropdown/dropdown-content.directive.d.ts +1 -1
  57. package/dropdown/dropdown-item.component.d.ts +1 -1
  58. package/dropdown/dropdown-trigger.directive.d.ts +1 -1
  59. package/dropdown/dropdown.component.d.ts +1 -1
  60. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +4 -4
  61. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +7 -7
  62. package/esm2020/autocomplete/autocomplete.component.mjs +5 -6
  63. package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
  64. package/esm2020/button/button.component.mjs +13 -13
  65. package/esm2020/button/button.module.mjs +7 -9
  66. package/esm2020/button-toggle/button-toggle.component.mjs +9 -9
  67. package/esm2020/button-toggle/button-toggle.module.mjs +5 -5
  68. package/esm2020/card/card.component.mjs +9 -9
  69. package/esm2020/card/card.module.mjs +7 -9
  70. package/esm2020/checkbox/checkbox-module.mjs +5 -5
  71. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  72. package/esm2020/checkbox/checkbox.mjs +22 -38
  73. package/esm2020/core/common-behaviors/color.mjs +6 -3
  74. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  75. package/esm2020/core/common-behaviors/disabled.mjs +1 -1
  76. package/esm2020/core/common-behaviors/error-state.mjs +1 -11
  77. package/esm2020/core/error/error-options.mjs +7 -7
  78. package/esm2020/core/formatters/date/formatter.mjs +4 -4
  79. package/esm2020/core/formatters/date/formatter.pipe.mjs +187 -0
  80. package/esm2020/core/formatters/index.mjs +65 -7
  81. package/esm2020/core/formatters/number/formatter.mjs +5 -5
  82. package/esm2020/core/forms/forms-module.mjs +5 -5
  83. package/esm2020/core/forms/forms.directive.mjs +7 -7
  84. package/esm2020/core/highlight/highlight.pipe.mjs +4 -4
  85. package/esm2020/core/highlight/index.mjs +5 -5
  86. package/esm2020/core/line/line.mjs +8 -8
  87. package/esm2020/core/option/action.mjs +6 -6
  88. package/esm2020/core/option/optgroup.mjs +6 -6
  89. package/esm2020/core/option/option-module.mjs +6 -6
  90. package/esm2020/core/option/option.mjs +6 -6
  91. package/esm2020/core/pop-up/pop-up-trigger.mjs +16 -14
  92. package/esm2020/core/pop-up/pop-up.mjs +4 -4
  93. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -7
  94. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  95. package/esm2020/core/services/measure-scrollbar.service.mjs +4 -4
  96. package/esm2020/core/validation/validation.mjs +1 -114
  97. package/esm2020/datepicker/calendar-body.component.mjs +4 -4
  98. package/esm2020/datepicker/calendar.component.mjs +125 -128
  99. package/esm2020/datepicker/datepicker-input.directive.mjs +14 -32
  100. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  101. package/esm2020/datepicker/datepicker-module.mjs +11 -17
  102. package/esm2020/datepicker/datepicker-toggle.component.mjs +10 -10
  103. package/esm2020/datepicker/datepicker.component.mjs +10 -10
  104. package/esm2020/datepicker/month-view.component.mjs +6 -6
  105. package/esm2020/datepicker/multi-year-view.component.mjs +4 -4
  106. package/esm2020/datepicker/year-view.component.mjs +4 -4
  107. package/esm2020/design-tokens/legacy-2017/tokens.mjs +56 -36
  108. package/esm2020/design-tokens/pt-2022/tokens.mjs +44 -24
  109. package/esm2020/divider/divider.component.mjs +4 -4
  110. package/esm2020/divider/divider.module.mjs +5 -5
  111. package/esm2020/dl/dl.component.mjs +11 -11
  112. package/esm2020/dl/dl.module.mjs +7 -9
  113. package/esm2020/dropdown/dropdown-content.directive.mjs +4 -4
  114. package/esm2020/dropdown/dropdown-item.component.mjs +7 -7
  115. package/esm2020/dropdown/dropdown-trigger.directive.mjs +4 -4
  116. package/esm2020/dropdown/dropdown.component.mjs +5 -5
  117. package/esm2020/dropdown/dropdown.module.mjs +7 -9
  118. package/esm2020/form-field/cleaner.mjs +4 -4
  119. package/esm2020/form-field/form-field.mjs +24 -21
  120. package/esm2020/form-field/form-field.module.mjs +14 -9
  121. package/esm2020/form-field/hint.mjs +6 -7
  122. package/esm2020/form-field/password-hint.mjs +11 -12
  123. package/esm2020/form-field/prefix.mjs +4 -4
  124. package/esm2020/form-field/public-api.mjs +2 -1
  125. package/esm2020/form-field/stepper.mjs +4 -4
  126. package/esm2020/form-field/suffix.mjs +4 -4
  127. package/esm2020/form-field/validate.directive.mjs +156 -0
  128. package/esm2020/icon/icon.component.mjs +10 -11
  129. package/esm2020/icon/icon.module.mjs +7 -9
  130. package/esm2020/input/input-number-validators.mjs +7 -7
  131. package/esm2020/input/input-number.mjs +4 -4
  132. package/esm2020/input/input-password.mjs +17 -50
  133. package/esm2020/input/input.mjs +19 -46
  134. package/esm2020/input/input.module.mjs +8 -10
  135. package/esm2020/link/link.component.mjs +4 -4
  136. package/esm2020/link/link.module.mjs +6 -8
  137. package/esm2020/list/list-selection.component.mjs +10 -10
  138. package/esm2020/list/list.component.mjs +8 -8
  139. package/esm2020/list/list.module.mjs +9 -11
  140. package/esm2020/loader-overlay/loader-overlay.component.mjs +15 -15
  141. package/esm2020/loader-overlay/loader-overlay.module.mjs +8 -10
  142. package/esm2020/modal/css-unit.pipe.mjs +4 -4
  143. package/esm2020/modal/modal-control.service.mjs +4 -4
  144. package/esm2020/modal/modal.component.mjs +8 -8
  145. package/esm2020/modal/modal.directive.mjs +13 -13
  146. package/esm2020/modal/modal.module.mjs +11 -14
  147. package/esm2020/modal/modal.service.mjs +6 -6
  148. package/esm2020/navbar/navbar-item.component.mjs +36 -36
  149. package/esm2020/navbar/navbar.component.mjs +11 -11
  150. package/esm2020/navbar/navbar.module.mjs +9 -11
  151. package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
  152. package/esm2020/popover/popover-confirm.component.mjs +11 -11
  153. package/esm2020/popover/popover.component.mjs +20 -11
  154. package/esm2020/popover/popover.module.mjs +6 -7
  155. package/esm2020/progress-bar/progress-bar.component.mjs +7 -8
  156. package/esm2020/progress-bar/progress-bar.module.mjs +6 -8
  157. package/esm2020/progress-spinner/progress-spinner.component.mjs +25 -11
  158. package/esm2020/progress-spinner/progress-spinner.module.mjs +6 -8
  159. package/esm2020/radio/radio.component.mjs +53 -54
  160. package/esm2020/radio/radio.module.mjs +5 -5
  161. package/esm2020/select/select-option.directive.mjs +4 -4
  162. package/esm2020/select/select.component.mjs +41 -55
  163. package/esm2020/select/select.module.mjs +10 -12
  164. package/esm2020/sidebar/sidebar.component.mjs +10 -10
  165. package/esm2020/sidebar/sidebar.module.mjs +5 -5
  166. package/esm2020/sidepanel/sidepanel-container.component.mjs +7 -7
  167. package/esm2020/sidepanel/sidepanel-directives.mjs +22 -20
  168. package/esm2020/sidepanel/sidepanel.module.mjs +11 -14
  169. package/esm2020/sidepanel/sidepanel.service.mjs +33 -29
  170. package/esm2020/splitter/splitter.component.mjs +37 -37
  171. package/esm2020/splitter/splitter.module.mjs +6 -8
  172. package/esm2020/table/table.component.mjs +4 -4
  173. package/esm2020/table/table.module.mjs +7 -9
  174. package/esm2020/tabs/paginated-tab-header.mjs +4 -4
  175. package/esm2020/tabs/tab-body.component.mjs +7 -7
  176. package/esm2020/tabs/tab-content.directive.mjs +4 -4
  177. package/esm2020/tabs/tab-group.component.mjs +29 -30
  178. package/esm2020/tabs/tab-header.component.mjs +5 -5
  179. package/esm2020/tabs/tab-label-wrapper.directive.mjs +4 -4
  180. package/esm2020/tabs/tab-label.directive.mjs +4 -4
  181. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +7 -7
  182. package/esm2020/tabs/tab.component.mjs +4 -4
  183. package/esm2020/tabs/tabs.module.mjs +11 -13
  184. package/esm2020/tags/tag-input.mjs +4 -4
  185. package/esm2020/tags/tag-list.component.mjs +26 -35
  186. package/esm2020/tags/tag.component.mjs +23 -21
  187. package/esm2020/tags/tag.module.mjs +6 -6
  188. package/esm2020/textarea/textarea.component.mjs +24 -39
  189. package/esm2020/textarea/textarea.module.mjs +5 -5
  190. package/esm2020/timepicker/timepicker.directive.mjs +10 -27
  191. package/esm2020/timepicker/timepicker.module.mjs +8 -10
  192. package/esm2020/timezone/cities-by-filter.pipe.mjs +17 -0
  193. package/esm2020/timezone/index.mjs +2 -0
  194. package/esm2020/timezone/ptsecurity-mosaic-timezone.mjs +5 -0
  195. package/esm2020/timezone/public-api.mjs +7 -0
  196. package/esm2020/timezone/timezone-option.component.mjs +48 -0
  197. package/esm2020/timezone/timezone-option.directive.mjs +58 -0
  198. package/esm2020/timezone/timezone-select.component.mjs +40 -0
  199. package/esm2020/timezone/timezone.models.mjs +3 -0
  200. package/esm2020/timezone/timezone.module.mjs +75 -0
  201. package/esm2020/timezone/timezone.utils.mjs +72 -0
  202. package/esm2020/timezone/utc-offset.pipe.mjs +17 -0
  203. package/esm2020/toast/toast-container.component.mjs +5 -5
  204. package/esm2020/toast/toast.component.mjs +9 -9
  205. package/esm2020/toast/toast.module.mjs +12 -12
  206. package/esm2020/toast/toast.service.mjs +23 -14
  207. package/esm2020/toggle/toggle.component.mjs +13 -16
  208. package/esm2020/toggle/toggle.module.mjs +5 -5
  209. package/esm2020/tooltip/tooltip.component.mjs +14 -14
  210. package/esm2020/tooltip/tooltip.module.mjs +7 -8
  211. package/esm2020/tree/control/flat-tree-control.mjs +1 -1
  212. package/esm2020/tree/data-source/nested-data-source.mjs +1 -1
  213. package/esm2020/tree/node.mjs +4 -4
  214. package/esm2020/tree/outlet.mjs +4 -4
  215. package/esm2020/tree/padding.directive.mjs +4 -4
  216. package/esm2020/tree/toggle.mjs +10 -10
  217. package/esm2020/tree/tree-base.mjs +7 -7
  218. package/esm2020/tree/tree-option.component.mjs +8 -8
  219. package/esm2020/tree/tree-selection.component.mjs +5 -5
  220. package/esm2020/tree/tree.mjs +4 -4
  221. package/esm2020/tree/tree.module.mjs +5 -5
  222. package/esm2020/tree-select/tree-select.component.mjs +39 -53
  223. package/esm2020/tree-select/tree-select.module.mjs +11 -13
  224. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +17 -18
  225. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  226. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +12 -12
  227. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  228. package/fesm2015/ptsecurity-mosaic-button.mjs +18 -20
  229. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  230. package/fesm2015/ptsecurity-mosaic-card.mjs +14 -16
  231. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  232. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +28 -44
  233. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  234. package/fesm2015/ptsecurity-mosaic-core.mjs +341 -217
  235. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  236. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +174 -201
  237. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  238. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +153 -93
  239. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  240. package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
  241. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  242. package/fesm2015/ptsecurity-mosaic-dl.mjs +16 -18
  243. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  244. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +22 -24
  245. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  246. package/fesm2015/ptsecurity-mosaic-form-field.mjs +216 -57
  247. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  248. package/fesm2015/ptsecurity-mosaic-icon.mjs +15 -18
  249. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  250. package/fesm2015/ptsecurity-mosaic-input.mjs +45 -107
  251. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  252. package/fesm2015/ptsecurity-mosaic-link.mjs +8 -10
  253. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  254. package/fesm2015/ptsecurity-mosaic-list.mjs +24 -26
  255. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  256. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +21 -23
  257. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  258. package/fesm2015/ptsecurity-mosaic-modal.mjs +41 -44
  259. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  260. package/fesm2015/ptsecurity-mosaic-navbar.mjs +58 -60
  261. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  262. package/fesm2015/ptsecurity-mosaic-popover.mjs +33 -25
  263. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  264. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +11 -14
  265. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  266. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +29 -17
  267. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  268. package/fesm2015/ptsecurity-mosaic-radio.mjs +57 -57
  269. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  270. package/fesm2015/ptsecurity-mosaic-select.mjs +52 -68
  271. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  272. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  273. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  274. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +69 -66
  275. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  276. package/fesm2015/ptsecurity-mosaic-splitter.mjs +41 -43
  277. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  278. package/fesm2015/ptsecurity-mosaic-table.mjs +9 -11
  279. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  280. package/fesm2015/ptsecurity-mosaic-tabs.mjs +137 -140
  281. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  282. package/fesm2015/ptsecurity-mosaic-tags.mjs +54 -61
  283. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  284. package/fesm2015/ptsecurity-mosaic-textarea.mjs +28 -42
  285. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  286. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +15 -34
  287. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  288. package/fesm2015/ptsecurity-mosaic-timezone.mjs +308 -0
  289. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -0
  290. package/fesm2015/ptsecurity-mosaic-toast.mjs +135 -125
  291. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  292. package/fesm2015/ptsecurity-mosaic-toggle.mjs +16 -19
  293. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  294. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +19 -20
  295. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  296. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +50 -66
  297. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  298. package/fesm2015/ptsecurity-mosaic-tree.mjs +43 -43
  299. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  300. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +17 -18
  301. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  302. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +12 -12
  303. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  304. package/fesm2020/ptsecurity-mosaic-button.mjs +18 -20
  305. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  306. package/fesm2020/ptsecurity-mosaic-card.mjs +14 -16
  307. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  308. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +28 -44
  309. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  310. package/fesm2020/ptsecurity-mosaic-core.mjs +338 -217
  311. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  312. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +173 -200
  313. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  314. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +153 -93
  315. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  316. package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
  317. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  318. package/fesm2020/ptsecurity-mosaic-dl.mjs +16 -18
  319. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  320. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +22 -24
  321. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  322. package/fesm2020/ptsecurity-mosaic-form-field.mjs +214 -57
  323. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  324. package/fesm2020/ptsecurity-mosaic-icon.mjs +15 -18
  325. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  326. package/fesm2020/ptsecurity-mosaic-input.mjs +45 -107
  327. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  328. package/fesm2020/ptsecurity-mosaic-link.mjs +8 -10
  329. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  330. package/fesm2020/ptsecurity-mosaic-list.mjs +24 -26
  331. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  332. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +21 -23
  333. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  334. package/fesm2020/ptsecurity-mosaic-modal.mjs +41 -44
  335. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  336. package/fesm2020/ptsecurity-mosaic-navbar.mjs +58 -60
  337. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  338. package/fesm2020/ptsecurity-mosaic-popover.mjs +33 -25
  339. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  340. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +11 -14
  341. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  342. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +29 -17
  343. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  344. package/fesm2020/ptsecurity-mosaic-radio.mjs +56 -57
  345. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  346. package/fesm2020/ptsecurity-mosaic-select.mjs +50 -67
  347. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  348. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  349. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  350. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +69 -66
  351. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  352. package/fesm2020/ptsecurity-mosaic-splitter.mjs +41 -43
  353. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  354. package/fesm2020/ptsecurity-mosaic-table.mjs +9 -11
  355. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  356. package/fesm2020/ptsecurity-mosaic-tabs.mjs +66 -69
  357. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  358. package/fesm2020/ptsecurity-mosaic-tags.mjs +53 -61
  359. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  360. package/fesm2020/ptsecurity-mosaic-textarea.mjs +26 -41
  361. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  362. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +15 -34
  363. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  364. package/fesm2020/ptsecurity-mosaic-timezone.mjs +306 -0
  365. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -0
  366. package/fesm2020/ptsecurity-mosaic-toast.mjs +130 -120
  367. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  368. package/fesm2020/ptsecurity-mosaic-toggle.mjs +16 -19
  369. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  370. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +19 -20
  371. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  372. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +47 -64
  373. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  374. package/fesm2020/ptsecurity-mosaic-tree.mjs +43 -43
  375. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  376. package/form-field/cleaner.d.ts +1 -1
  377. package/form-field/form-field.d.ts +13 -7
  378. package/form-field/form-field.module.d.ts +4 -3
  379. package/form-field/hint.d.ts +3 -3
  380. package/form-field/password-hint.d.ts +2 -3
  381. package/form-field/prefix.d.ts +1 -1
  382. package/form-field/public-api.d.ts +1 -0
  383. package/form-field/stepper.d.ts +1 -1
  384. package/form-field/suffix.d.ts +1 -1
  385. package/form-field/validate.directive.d.ts +32 -0
  386. package/icon/icon.component.d.ts +4 -4
  387. package/input/input-number-validators.d.ts +2 -2
  388. package/input/input-number.d.ts +1 -1
  389. package/input/input-password.d.ts +9 -15
  390. package/input/input.d.ts +14 -14
  391. package/link/link.component.d.ts +1 -1
  392. package/list/list-selection.component.d.ts +2 -2
  393. package/list/list.component.d.ts +2 -2
  394. package/loader-overlay/loader-overlay.component.d.ts +4 -4
  395. package/modal/css-unit.pipe.d.ts +1 -1
  396. package/modal/modal.component.d.ts +1 -1
  397. package/modal/modal.directive.d.ts +4 -4
  398. package/navbar/navbar-item.component.d.ts +11 -11
  399. package/navbar/navbar.component.d.ts +3 -3
  400. package/navbar/vertical-navbar.component.d.ts +1 -1
  401. package/package.json +56 -48
  402. package/popover/popover-confirm.component.d.ts +2 -2
  403. package/popover/popover.component.d.ts +5 -5
  404. package/prebuilt-themes/dark-theme.css +1 -1
  405. package/prebuilt-themes/default-theme.css +1 -1
  406. package/prebuilt-visual/default-visual.css +1 -1
  407. package/progress-bar/progress-bar.component.d.ts +3 -3
  408. package/progress-spinner/progress-spinner.component.d.ts +8 -3
  409. package/radio/radio.component.d.ts +11 -17
  410. package/select/select-option.directive.d.ts +1 -1
  411. package/select/select.component.d.ts +16 -14
  412. package/sidebar/sidebar.component.d.ts +3 -3
  413. package/sidepanel/sidepanel-container.component.d.ts +1 -1
  414. package/sidepanel/sidepanel-directives.d.ts +5 -5
  415. package/splitter/splitter.component.d.ts +4 -4
  416. package/table/table.component.d.ts +1 -1
  417. package/tabs/paginated-tab-header.d.ts +1 -1
  418. package/tabs/tab-body.component.d.ts +2 -2
  419. package/tabs/tab-content.directive.d.ts +1 -1
  420. package/tabs/tab-group.component.d.ts +8 -8
  421. package/tabs/tab-header.component.d.ts +1 -1
  422. package/tabs/tab-label-wrapper.directive.d.ts +1 -1
  423. package/tabs/tab-label.directive.d.ts +1 -1
  424. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +2 -2
  425. package/tabs/tab.component.d.ts +1 -1
  426. package/tags/tag-input.d.ts +1 -1
  427. package/tags/tag-list.component.d.ts +14 -10
  428. package/tags/tag.component.d.ts +8 -6
  429. package/textarea/textarea.component.d.ts +14 -13
  430. package/timepicker/timepicker.directive.d.ts +5 -10
  431. package/timezone/README.md +0 -0
  432. package/timezone/cities-by-filter.pipe.d.ts +7 -0
  433. package/timezone/index.d.ts +1 -0
  434. package/timezone/public-api.d.ts +6 -0
  435. package/timezone/timezone-option.component.d.ts +15 -0
  436. package/timezone/timezone-option.directive.d.ts +20 -0
  437. package/timezone/timezone-select.component.d.ts +14 -0
  438. package/timezone/timezone.models.d.ts +16 -0
  439. package/timezone/timezone.module.d.ts +19 -0
  440. package/timezone/timezone.utils.d.ts +18 -0
  441. package/timezone/utc-offset.pipe.d.ts +7 -0
  442. package/toast/toast-container.component.d.ts +1 -1
  443. package/toast/toast.component.d.ts +1 -1
  444. package/toast/toast.service.d.ts +6 -4
  445. package/toggle/toggle.component.d.ts +5 -5
  446. package/tooltip/tooltip.component.d.ts +5 -6
  447. package/tree/control/flat-tree-control.d.ts +8 -8
  448. package/tree/node.d.ts +1 -1
  449. package/tree/outlet.d.ts +1 -1
  450. package/tree/padding.directive.d.ts +1 -1
  451. package/tree/toggle.d.ts +3 -3
  452. package/tree/tree-base.d.ts +2 -2
  453. package/tree/tree-option.component.d.ts +1 -1
  454. package/tree/tree-selection.component.d.ts +1 -1
  455. package/tree/tree.d.ts +1 -1
  456. package/tree-select/tree-select.component.d.ts +14 -12
  457. package/autocomplete/package.json +0 -10
  458. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +0 -5
  459. package/button/package.json +0 -10
  460. package/button/ptsecurity-mosaic-button.d.ts +0 -5
  461. package/button-toggle/package.json +0 -10
  462. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +0 -5
  463. package/card/package.json +0 -10
  464. package/card/ptsecurity-mosaic-card.d.ts +0 -5
  465. package/checkbox/package.json +0 -10
  466. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +0 -5
  467. package/core/package.json +0 -10
  468. package/core/ptsecurity-mosaic-core.d.ts +0 -5
  469. package/datepicker/package.json +0 -10
  470. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +0 -5
  471. package/design-tokens/package.json +0 -10
  472. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +0 -5
  473. package/divider/package.json +0 -10
  474. package/divider/ptsecurity-mosaic-divider.d.ts +0 -5
  475. package/dl/package.json +0 -10
  476. package/dl/ptsecurity-mosaic-dl.d.ts +0 -5
  477. package/dropdown/package.json +0 -10
  478. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +0 -5
  479. package/form-field/package.json +0 -10
  480. package/form-field/ptsecurity-mosaic-form-field.d.ts +0 -5
  481. package/icon/package.json +0 -10
  482. package/icon/ptsecurity-mosaic-icon.d.ts +0 -5
  483. package/input/package.json +0 -10
  484. package/input/ptsecurity-mosaic-input.d.ts +0 -5
  485. package/link/package.json +0 -10
  486. package/link/ptsecurity-mosaic-link.d.ts +0 -5
  487. package/list/package.json +0 -10
  488. package/list/ptsecurity-mosaic-list.d.ts +0 -5
  489. package/loader-overlay/package.json +0 -10
  490. package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +0 -5
  491. package/modal/package.json +0 -10
  492. package/modal/ptsecurity-mosaic-modal.d.ts +0 -5
  493. package/navbar/package.json +0 -10
  494. package/navbar/ptsecurity-mosaic-navbar.d.ts +0 -5
  495. package/popover/package.json +0 -10
  496. package/popover/ptsecurity-mosaic-popover.d.ts +0 -5
  497. package/progress-bar/package.json +0 -10
  498. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +0 -5
  499. package/progress-spinner/package.json +0 -10
  500. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +0 -5
  501. package/ptsecurity-mosaic.d.ts +0 -5
  502. package/radio/package.json +0 -10
  503. package/radio/ptsecurity-mosaic-radio.d.ts +0 -5
  504. package/select/package.json +0 -10
  505. package/select/ptsecurity-mosaic-select.d.ts +0 -5
  506. package/sidebar/package.json +0 -10
  507. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +0 -5
  508. package/sidepanel/package.json +0 -10
  509. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +0 -5
  510. package/splitter/package.json +0 -10
  511. package/splitter/ptsecurity-mosaic-splitter.d.ts +0 -5
  512. package/table/package.json +0 -10
  513. package/table/ptsecurity-mosaic-table.d.ts +0 -5
  514. package/tabs/package.json +0 -10
  515. package/tabs/ptsecurity-mosaic-tabs.d.ts +0 -5
  516. package/tags/package.json +0 -10
  517. package/tags/ptsecurity-mosaic-tags.d.ts +0 -5
  518. package/textarea/package.json +0 -10
  519. package/textarea/ptsecurity-mosaic-textarea.d.ts +0 -5
  520. package/timepicker/package.json +0 -10
  521. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +0 -5
  522. package/toast/package.json +0 -10
  523. package/toast/ptsecurity-mosaic-toast.d.ts +0 -5
  524. package/toggle/package.json +0 -10
  525. package/toggle/ptsecurity-mosaic-toggle.d.ts +0 -5
  526. package/tooltip/package.json +0 -10
  527. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +0 -5
  528. package/tree/package.json +0 -10
  529. package/tree/ptsecurity-mosaic-tree.d.ts +0 -5
  530. package/tree-select/package.json +0 -10
  531. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +0 -5
@@ -0,0 +1,306 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, Directive, Inject, Optional, ContentChild, NgModule } from '@angular/core';
3
+ import * as i1 from '@ptsecurity/mosaic/core';
4
+ import { McOption, MC_OPTION_PARENT_COMPONENT, McOptionModule, McHighlightModule } from '@ptsecurity/mosaic/core';
5
+ import * as i3 from '@angular/cdk/bidi';
6
+ import * as i2 from '@angular/cdk/overlay';
7
+ import { OverlayModule } from '@angular/cdk/overlay';
8
+ import { McTooltipTrigger, MC_TOOLTIP_SCROLL_STRATEGY, McToolTipModule } from '@ptsecurity/mosaic/tooltip';
9
+ import { McFormFieldControl, McFormFieldModule } from '@ptsecurity/mosaic/form-field';
10
+ import { McSelect, McSelectSearch, McSelectModule } from '@ptsecurity/mosaic/select';
11
+ import * as i1$1 from '@angular/common';
12
+ import { CommonModule } from '@angular/common';
13
+ import * as i3$1 from '@ptsecurity/mosaic/icon';
14
+ import { McIconModule } from '@ptsecurity/mosaic/icon';
15
+ import { McTagsModule } from '@ptsecurity/mosaic/tags';
16
+
17
+ /**
18
+ * Convert string timezone offset (formatted offset) to number (minutes)
19
+ */
20
+ function parseOffset(offset) {
21
+ const minutesPerHour = 60;
22
+ const [hours, minutes] = offset.split(':')
23
+ .map((part) => parseInt(part, 10));
24
+ return (hours * minutesPerHour) + (hours >= 0 ? minutes : minutes * -1);
25
+ }
26
+ /**
27
+ * Grouping timezones by countries
28
+ */
29
+ function getZonesGroupedByCountry(data, otherCountriesLabel = 'Other', priorityCountry) {
30
+ const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
31
+ const countryCode = priorityCountry
32
+ ? priorityCountry
33
+ : data.find((item) => item.id === systemTimezone)?.countryCode;
34
+ // collect data by countries
35
+ const dataByCountries = data.reduce((result, zone) => {
36
+ const countryName = zone.countryCode.toLowerCase() === countryCode?.toLowerCase()
37
+ ? zone.countryName
38
+ : otherCountriesLabel;
39
+ if (!Array.isArray(result[countryName])) {
40
+ result[countryName] = [];
41
+ }
42
+ result[countryName].push({ ...zone, countryName });
43
+ return result;
44
+ }, {});
45
+ // make data groups
46
+ const groups = Object.values(dataByCountries)
47
+ .map((zones) => ({
48
+ countryCode: zones[0].countryCode,
49
+ countryName: zones[0].countryName,
50
+ zones: zones.sort(timezonesSortComparator)
51
+ }));
52
+ // sort by priority country
53
+ const priorityGroupIndex = groups.findIndex((group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase());
54
+ if (priorityGroupIndex > -1) {
55
+ const priorityGroup = groups[priorityGroupIndex];
56
+ groups.splice(priorityGroupIndex, 1);
57
+ groups.unshift(priorityGroup);
58
+ }
59
+ return groups;
60
+ }
61
+ function offsetFormatter(value) {
62
+ const [hours, minutes] = value.split(':');
63
+ const offset = [hours, minutes].join(':');
64
+ return `UTC ${offset.charAt(0) !== '-' ? '+' : ''}${offset}`;
65
+ }
66
+ /**
67
+ * Comparator for timezone sorting. Sort by offset and country name
68
+ */
69
+ function timezonesSortComparator(first, second) {
70
+ return first.offset !== second.offset
71
+ ? parseOffset(first.offset)
72
+ : first.countryName.localeCompare(second.countryName);
73
+ }
74
+ /**
75
+ * Filtering timezone cities by search string
76
+ */
77
+ function filterCitiesBySearchString(cities, searchPattern) {
78
+ const onlyUTC = /^\\?(-|—|\+)?(\d{1,2}:?(\d{1,2})?)?$/.test(searchPattern ?? '');
79
+ if (!searchPattern || onlyUTC) {
80
+ return cities;
81
+ }
82
+ const regex = RegExp(`(${searchPattern})`, 'gi');
83
+ return cities
84
+ .split(',')
85
+ .filter((city) => regex.test(city))
86
+ .join(',');
87
+ }
88
+
89
+ class UtcOffsetPipe {
90
+ transform(value) {
91
+ return offsetFormatter(value);
92
+ }
93
+ }
94
+ /** @nocollapse */ UtcOffsetPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: UtcOffsetPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
95
+ /** @nocollapse */ UtcOffsetPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: UtcOffsetPipe, name: "utcOffset" });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: UtcOffsetPipe, decorators: [{
97
+ type: Pipe,
98
+ args: [{
99
+ name: 'utcOffset'
100
+ }]
101
+ }] });
102
+
103
+ class CitiesByFilterPipe {
104
+ transform(value, searchPattern) {
105
+ return filterCitiesBySearchString(value, searchPattern);
106
+ }
107
+ }
108
+ /** @nocollapse */ CitiesByFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CitiesByFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
109
+ /** @nocollapse */ CitiesByFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: CitiesByFilterPipe, name: "citiesByFilter" });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CitiesByFilterPipe, decorators: [{
111
+ type: Pipe,
112
+ args: [{
113
+ name: 'citiesByFilter'
114
+ }]
115
+ }] });
116
+
117
+ class McTimezoneOption extends McOption {
118
+ get timezone() {
119
+ return this._timezone;
120
+ }
121
+ set timezone(zone) {
122
+ this._timezone = zone;
123
+ this.value = zone.id;
124
+ }
125
+ get viewValue() {
126
+ const cities = [this.timezone.city, this.timezone.cities]
127
+ .filter(Boolean)
128
+ .join(', ');
129
+ return [offsetFormatter(this.timezone.offset), cities]
130
+ .join(' ');
131
+ }
132
+ }
133
+ /** @nocollapse */ McTimezoneOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneOption, deps: null, target: i0.ɵɵFactoryTarget.Component });
134
+ /** @nocollapse */ McTimezoneOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McTimezoneOption, selector: "mc-timezone-option", inputs: { highlightText: "highlightText", timezone: "timezone" }, host: { classAttribute: "mc-timezone-option" }, providers: [{
135
+ provide: McOption,
136
+ useExisting: forwardRef((() => McTimezoneOption))
137
+ }], viewQueries: [{ propertyName: "tooltipContentWrapper", first: true, predicate: ["tooltipContentWrapper"], descendants: true }, { propertyName: "tooltipContent", first: true, predicate: ["tooltipContent"], descendants: true }], exportAs: ["mcTimezoneOption"], usesInheritance: true, ngImport: i0, template: "<span class=\"mc-timezone-option__offset\"\n [innerHTML]=\"timezone.offset | utcOffset | mcHighlight:highlightText\">\n</span>\n\n<div class=\"mc-timezone-option__label\">\n <span class=\"mc-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight:highlightText\"></span>\n <div #tooltipContentWrapper class=\"mc-timezone-option__cities\">\n <span #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter:highlightText | mcHighlight:highlightText\">\n </span>\n </div>\n</div>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);border:2px solid transparent;border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:12px;padding-left:var(--mc-option-size-horizontal-padding, 12px);padding-right:12px;padding-right:var(--mc-option-size-horizontal-padding, 12px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:-2px;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:-2px;left:calc(-1 * var(--mc-option-size-border-width, 2px));right:-2px;right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:-2px;bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n", ".mc-timezone-option.mc-option{display:flex;flex-direction:row;align-items:flex-start;padding:6px 8px 6px 14px;padding:var(--mc-timezone-option-size-padding, 6px 8px 6px 14px);column-gap:16px;column-gap:var(--mc-timezone-option-size-column-gap, 16px)}.mc-timezone-option__label{display:flex;flex-direction:column;justify-content:stretch;flex:1;min-width:0}.mc-timezone-option__cities{display:-webkit-box;-webkit-box-orient:vertical;max-height:4em;max-height:var(--mc-timezone-option-size-max-height, 4em);overflow:hidden}.mc-select__panel .mc-timezone-option{height:auto;height:var(--mc-timezone-option-size-height, auto)}\n"], dependencies: [{ kind: "pipe", type: i1.McHighlightPipe, name: "mcHighlight" }, { kind: "pipe", type: UtcOffsetPipe, name: "utcOffset" }, { kind: "pipe", type: CitiesByFilterPipe, name: "citiesByFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneOption, decorators: [{
139
+ type: Component,
140
+ args: [{ selector: 'mc-timezone-option', exportAs: 'mcTimezoneOption', host: {
141
+ class: 'mc-timezone-option'
142
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
143
+ provide: McOption,
144
+ useExisting: forwardRef((() => McTimezoneOption))
145
+ }], template: "<span class=\"mc-timezone-option__offset\"\n [innerHTML]=\"timezone.offset | utcOffset | mcHighlight:highlightText\">\n</span>\n\n<div class=\"mc-timezone-option__label\">\n <span class=\"mc-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight:highlightText\"></span>\n <div #tooltipContentWrapper class=\"mc-timezone-option__cities\">\n <span #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter:highlightText | mcHighlight:highlightText\">\n </span>\n </div>\n</div>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);border:2px solid transparent;border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:12px;padding-left:var(--mc-option-size-horizontal-padding, 12px);padding-right:12px;padding-right:var(--mc-option-size-horizontal-padding, 12px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:-2px;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:-2px;left:calc(-1 * var(--mc-option-size-border-width, 2px));right:-2px;right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:-2px;bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n", ".mc-timezone-option.mc-option{display:flex;flex-direction:row;align-items:flex-start;padding:6px 8px 6px 14px;padding:var(--mc-timezone-option-size-padding, 6px 8px 6px 14px);column-gap:16px;column-gap:var(--mc-timezone-option-size-column-gap, 16px)}.mc-timezone-option__label{display:flex;flex-direction:column;justify-content:stretch;flex:1;min-width:0}.mc-timezone-option__cities{display:-webkit-box;-webkit-box-orient:vertical;max-height:4em;max-height:var(--mc-timezone-option-size-max-height, 4em);overflow:hidden}.mc-select__panel .mc-timezone-option{height:auto;height:var(--mc-timezone-option-size-height, auto)}\n"] }]
146
+ }], propDecorators: { tooltipContentWrapper: [{
147
+ type: ViewChild,
148
+ args: ['tooltipContentWrapper', { static: false }]
149
+ }], tooltipContent: [{
150
+ type: ViewChild,
151
+ args: ['tooltipContent', { static: false }]
152
+ }], highlightText: [{
153
+ type: Input
154
+ }], timezone: [{
155
+ type: Input
156
+ }] } });
157
+
158
+ const TOOLTIP_VISIBLE_ROWS_COUNT = 3;
159
+ class McTimezoneOptionTooltip extends McTooltipTrigger {
160
+ constructor(changeDetectorRef, option, overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
161
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
162
+ this.changeDetectorRef = changeDetectorRef;
163
+ this.option = option;
164
+ }
165
+ ngAfterViewInit() {
166
+ this.content = this.option.viewValue;
167
+ this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();
168
+ this.resizeObserver = new ResizeObserver(() => this.checkTooltipDisabled());
169
+ this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);
170
+ }
171
+ ngOnDestroy() {
172
+ super.ngOnDestroy();
173
+ this.resizeObserver?.unobserve(this.option.tooltipContentWrapper.nativeElement);
174
+ }
175
+ onMouseEnter() {
176
+ this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);
177
+ this.checkTooltipDisabled();
178
+ }
179
+ onMouseLeave() {
180
+ this.resizeObserver.unobserve(this.option.tooltipContentWrapper.nativeElement);
181
+ this.disabled = true;
182
+ }
183
+ checkTooltipDisabled() {
184
+ const count = this.option.tooltipContent.nativeElement.getClientRects().length;
185
+ this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;
186
+ this.changeDetectorRef.detectChanges();
187
+ }
188
+ }
189
+ /** @nocollapse */ McTimezoneOptionTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneOptionTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: McTimezoneOption }, { token: i2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
190
+ /** @nocollapse */ McTimezoneOptionTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: McTimezoneOptionTooltip, selector: "mc-timezone-option", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, usesInheritance: true, ngImport: i0 });
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneOptionTooltip, decorators: [{
192
+ type: Directive,
193
+ args: [{
194
+ selector: 'mc-timezone-option',
195
+ host: {
196
+ '(mouseenter)': 'onMouseEnter()',
197
+ '(mouseleave)': 'onMouseLeave()'
198
+ }
199
+ }]
200
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: McTimezoneOption }, { type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
201
+ type: Inject,
202
+ args: [MC_TOOLTIP_SCROLL_STRATEGY]
203
+ }] }, { type: i3.Directionality, decorators: [{
204
+ type: Optional
205
+ }] }]; } });
206
+
207
+ class McTimezoneSelectTrigger {
208
+ }
209
+ /** @nocollapse */ McTimezoneSelectTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
210
+ /** @nocollapse */ McTimezoneSelectTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: McTimezoneSelectTrigger, selector: "mc-timezone-select-trigger", ngImport: i0 });
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneSelectTrigger, decorators: [{
212
+ type: Directive,
213
+ args: [{ selector: 'mc-timezone-select-trigger' }]
214
+ }] });
215
+ class McTimezoneSelect extends McSelect {
216
+ }
217
+ /** @nocollapse */ McTimezoneSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
218
+ /** @nocollapse */ McTimezoneSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McTimezoneSelect, selector: "mc-timezone-select", providers: [
219
+ { provide: McFormFieldControl, useExisting: McTimezoneSelect },
220
+ { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McTimezoneSelect }
221
+ ], queries: [{ propertyName: "customTrigger", first: true, predicate: McTimezoneSelectTrigger, descendants: true }, { propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }], exportAs: ["mcTimezoneSelect"], usesInheritance: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n\n <div class=\"mc-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchCase=\"false\" class=\"mc-select__match-container\">\n <span class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n <ng-content select=\"mc-timezone-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n\n <div #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:30px;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer;padding-left:11px;padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:5px;padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple{padding-left:11px;padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:12px;padding-left:var(--mc-option-size-horizontal-padding, 12px);padding-right:12px;padding-right:var(--mc-option-size-horizontal-padding, 12px)}.mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-select__matcher>span{width:100%}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:30px;max-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:640px;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:1px;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:32px;line-height:var(--mc-option-size-height, 32px);height:32px;height:var(--mc-option-size-height, 32px)}.mc-select__content{max-height:232px;max-height:var(--mc-select-panel-size-max-height, 232px);padding:4px 0;padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:auto}.mc-select__content .cdk-virtual-scroll-viewport{min-height:232px-8px;min-height:var(--mc-select-panel-size-max-height, 232px)-8px;max-height:232px-8px;max-height:var(--mc-select-panel-size-max-height, 232px)-8px}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.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"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3$1.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i3$1.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneSelect, decorators: [{
223
+ type: Component,
224
+ args: [{ selector: 'mc-timezone-select', exportAs: 'mcTimezoneSelect', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
225
+ { provide: McFormFieldControl, useExisting: McTimezoneSelect },
226
+ { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McTimezoneSelect }
227
+ ], template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n\n <div class=\"mc-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchCase=\"false\" class=\"mc-select__match-container\">\n <span class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n <ng-content select=\"mc-timezone-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n\n <div #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:30px;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer;padding-left:11px;padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:5px;padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple{padding-left:11px;padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:12px;padding-left:var(--mc-option-size-horizontal-padding, 12px);padding-right:12px;padding-right:var(--mc-option-size-horizontal-padding, 12px)}.mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-select__matcher>span{width:100%}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:30px;max-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:640px;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:1px;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:32px;line-height:var(--mc-option-size-height, 32px);height:32px;height:var(--mc-option-size-height, 32px)}.mc-select__content{max-height:232px;max-height:var(--mc-select-panel-size-max-height, 232px);padding:4px 0;padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:auto}.mc-select__content .cdk-virtual-scroll-viewport{min-height:232px-8px;min-height:var(--mc-select-panel-size-max-height, 232px)-8px;max-height:232px-8px;max-height:var(--mc-select-panel-size-max-height, 232px)-8px}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
228
+ }], propDecorators: { customTrigger: [{
229
+ type: ContentChild,
230
+ args: [McTimezoneSelectTrigger, { static: false }]
231
+ }], cleaner: [{
232
+ type: ContentChild,
233
+ args: ['mcSelectCleaner', { static: true }]
234
+ }], search: [{
235
+ type: ContentChild,
236
+ args: [McSelectSearch, { static: false }]
237
+ }] } });
238
+
239
+ /* tslint:disable:naming-convention */
240
+
241
+ class McTimezoneModule {
242
+ }
243
+ /** @nocollapse */ McTimezoneModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
244
+ /** @nocollapse */ McTimezoneModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneModule, declarations: [UtcOffsetPipe,
245
+ CitiesByFilterPipe,
246
+ McTimezoneSelect,
247
+ McTimezoneOption,
248
+ McTimezoneOptionTooltip,
249
+ McTimezoneSelectTrigger], imports: [CommonModule,
250
+ OverlayModule,
251
+ McFormFieldModule,
252
+ McOptionModule,
253
+ McSelectModule,
254
+ McIconModule,
255
+ McTagsModule,
256
+ McToolTipModule,
257
+ McHighlightModule], exports: [McTimezoneSelect,
258
+ McTimezoneOption,
259
+ McTimezoneOptionTooltip,
260
+ McTimezoneSelectTrigger] });
261
+ /** @nocollapse */ McTimezoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneModule, imports: [CommonModule,
262
+ OverlayModule,
263
+ McFormFieldModule,
264
+ McOptionModule,
265
+ McSelectModule,
266
+ McIconModule,
267
+ McTagsModule,
268
+ McToolTipModule,
269
+ McHighlightModule] });
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McTimezoneModule, decorators: [{
271
+ type: NgModule,
272
+ args: [{
273
+ imports: [
274
+ CommonModule,
275
+ OverlayModule,
276
+ McFormFieldModule,
277
+ McOptionModule,
278
+ McSelectModule,
279
+ McIconModule,
280
+ McTagsModule,
281
+ McToolTipModule,
282
+ McHighlightModule
283
+ ],
284
+ declarations: [
285
+ UtcOffsetPipe,
286
+ CitiesByFilterPipe,
287
+ McTimezoneSelect,
288
+ McTimezoneOption,
289
+ McTimezoneOptionTooltip,
290
+ McTimezoneSelectTrigger
291
+ ],
292
+ exports: [
293
+ McTimezoneSelect,
294
+ McTimezoneOption,
295
+ McTimezoneOptionTooltip,
296
+ McTimezoneSelectTrigger
297
+ ]
298
+ }]
299
+ }] });
300
+
301
+ /**
302
+ * Generated bundle index. Do not edit.
303
+ */
304
+
305
+ export { McTimezoneModule, McTimezoneOption, McTimezoneOptionTooltip, McTimezoneSelect, McTimezoneSelectTrigger, TOOLTIP_VISIBLE_ROWS_COUNT, filterCitiesBySearchString, getZonesGroupedByCountry, offsetFormatter, parseOffset, timezonesSortComparator };
306
+ //# sourceMappingURL=ptsecurity-mosaic-timezone.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptsecurity-mosaic-timezone.mjs","sources":["../../../packages/mosaic/timezone/timezone.utils.ts","../../../packages/mosaic/timezone/utc-offset.pipe.ts","../../../packages/mosaic/timezone/cities-by-filter.pipe.ts","../../../packages/mosaic/timezone/timezone-option.component.ts","../../../packages/mosaic/timezone/timezone-option.component.html","../../../packages/mosaic/timezone/timezone-option.directive.ts","../../../packages/mosaic/timezone/timezone-select.component.ts","../../../packages/mosaic/timezone/timezone-select.component.html","../../../packages/mosaic/timezone/timezone.models.ts","../../../packages/mosaic/timezone/timezone.module.ts","../../../packages/mosaic/timezone/ptsecurity-mosaic-timezone.ts"],"sourcesContent":["import { McTimezoneZone, McTimezonesByCountry, McTimezoneGroup } from './timezone.models';\n\n\n/**\n * Convert string timezone offset (formatted offset) to number (minutes)\n */\nexport function parseOffset(offset: string): number {\n const minutesPerHour = 60;\n const [hours, minutes] = offset.split(':')\n .map((part: string) => parseInt(part, 10));\n\n return (hours * minutesPerHour) + (hours >= 0 ? minutes : minutes * -1);\n}\n\n/**\n * Grouping timezones by countries\n */\nexport function getZonesGroupedByCountry(\n data: McTimezoneZone[],\n otherCountriesLabel: string = 'Other',\n priorityCountry?: string\n): McTimezoneGroup[] {\n const systemTimezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const countryCode: string | undefined = priorityCountry\n ? priorityCountry\n : data.find((item: McTimezoneZone) => item.id === systemTimezone)?.countryCode;\n\n // collect data by countries\n const dataByCountries: McTimezonesByCountry = data.reduce<McTimezonesByCountry>(\n (result: McTimezonesByCountry, zone: McTimezoneZone) => {\n const countryName: string = zone.countryCode.toLowerCase() === countryCode?.toLowerCase()\n ? zone.countryName\n : otherCountriesLabel;\n\n if (!Array.isArray(result[countryName])) {\n result[countryName] = [];\n }\n\n result[countryName].push({ ...zone, countryName });\n\n return result;\n },\n {}\n );\n\n // make data groups\n const groups: McTimezoneGroup[] = Object.values(dataByCountries)\n .map<McTimezoneGroup>((zones: McTimezoneZone[]) => ({\n countryCode: zones[0].countryCode,\n countryName: zones[0].countryName,\n zones: zones.sort(timezonesSortComparator)\n }));\n\n // sort by priority country\n const priorityGroupIndex = groups.findIndex(\n (group) => group.countryCode.toLowerCase() === countryCode?.toLowerCase()\n );\n\n if (priorityGroupIndex > -1) {\n const priorityGroup = groups[priorityGroupIndex];\n\n groups.splice(priorityGroupIndex, 1);\n groups.unshift(priorityGroup);\n }\n\n return groups;\n}\n\nexport function offsetFormatter(value: string): string {\n const [hours, minutes] = value.split(':');\n const offset = [hours, minutes].join(':');\n\n return `UTC ${offset.charAt(0) !== '-' ? '+' : ''}${offset}`;\n}\n\n/**\n * Comparator for timezone sorting. Sort by offset and country name\n */\nexport function timezonesSortComparator(first: McTimezoneZone, second: McTimezoneZone): number {\n return first.offset !== second.offset\n ? parseOffset(first.offset)\n : first.countryName.localeCompare(second.countryName);\n}\n\n/**\n * Filtering timezone cities by search string\n */\nexport function filterCitiesBySearchString(cities: string, searchPattern?: string): string {\n const onlyUTC: boolean = /^\\\\?(-|—|\\+)?(\\d{1,2}:?(\\d{1,2})?)?$/.test(searchPattern ?? '');\n\n if (!searchPattern || onlyUTC) { return cities; }\n\n const regex: RegExp = RegExp(`(${searchPattern})`, 'gi');\n\n return cities\n .split(',')\n .filter((city: string) => regex.test(city))\n .join(',');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { offsetFormatter } from './timezone.utils';\n\n\n@Pipe({\n name: 'utcOffset'\n})\nexport class UtcOffsetPipe implements PipeTransform {\n transform(value: string): string {\n return offsetFormatter(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { filterCitiesBySearchString } from './timezone.utils';\n\n\n@Pipe({\n name: 'citiesByFilter'\n})\nexport class CitiesByFilterPipe implements PipeTransform {\n transform(value: string, searchPattern?: string): string {\n return filterCitiesBySearchString(value, searchPattern);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n ElementRef,\n Input,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { McOption } from '@ptsecurity/mosaic/core';\n\nimport { McTimezoneZone } from './timezone.models';\nimport { offsetFormatter } from './timezone.utils';\n\n\n@Component({\n selector: 'mc-timezone-option',\n exportAs: 'mcTimezoneOption',\n host: {\n class: 'mc-timezone-option'\n },\n templateUrl: 'timezone-option.component.html',\n styleUrls: ['../core/option/option.scss', 'timezone-option.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: McOption,\n useExisting: forwardRef(() => McTimezoneOption)\n }]\n})\nexport class McTimezoneOption extends McOption {\n @ViewChild('tooltipContentWrapper', { static: false }) tooltipContentWrapper: ElementRef<HTMLElement>;\n @ViewChild('tooltipContent', { static: false }) tooltipContent: ElementRef<HTMLElement>;\n\n @Input() highlightText: string;\n\n @Input()\n get timezone(): McTimezoneZone {\n return this._timezone;\n }\n\n set timezone(zone: McTimezoneZone) {\n this._timezone = zone;\n this.value = zone.id;\n }\n\n private _timezone: McTimezoneZone;\n\n get viewValue(): string {\n const cities: string = [this.timezone.city, this.timezone.cities]\n .filter(Boolean)\n .join(', ');\n\n return [offsetFormatter(this.timezone.offset), cities]\n .join(' ');\n }\n}\n","<span class=\"mc-timezone-option__offset\"\n [innerHTML]=\"timezone.offset | utcOffset | mcHighlight:highlightText\">\n</span>\n\n<div class=\"mc-timezone-option__label\">\n <span class=\"mc-timezone-option__city\" [innerHTML]=\"timezone.city | mcHighlight:highlightText\"></span>\n <div #tooltipContentWrapper class=\"mc-timezone-option__cities\">\n <span #tooltipContent\n [innerHTML]=\"timezone.cities | citiesByFilter:highlightText | mcHighlight:highlightText\">\n </span>\n </div>\n</div>\n\n<div class=\"mc-option-overlay\"></div>\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n Optional,\n ViewContainerRef, ChangeDetectorRef\n} from '@angular/core';\nimport { McTooltipTrigger, MC_TOOLTIP_SCROLL_STRATEGY } from '@ptsecurity/mosaic/tooltip';\n\nimport { McTimezoneOption } from './timezone-option.component';\n\n\nexport const TOOLTIP_VISIBLE_ROWS_COUNT = 3;\n\n\n@Directive({\n selector: 'mc-timezone-option',\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class McTimezoneOptionTooltip extends McTooltipTrigger implements AfterViewInit, OnDestroy {\n private resizeObserver: ResizeObserver;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private option: McTimezoneOption,\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_TOOLTIP_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n\n ngAfterViewInit(): void {\n this.content = this.option.viewValue;\n this.option.tooltipContentWrapper.nativeElement.style.webkitLineClamp = TOOLTIP_VISIBLE_ROWS_COUNT.toString();\n\n this.resizeObserver = new ResizeObserver(() => this.checkTooltipDisabled());\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.resizeObserver?.unobserve(this.option.tooltipContentWrapper.nativeElement);\n }\n\n onMouseEnter(): void {\n this.resizeObserver.observe(this.option.tooltipContentWrapper.nativeElement);\n this.checkTooltipDisabled();\n }\n\n onMouseLeave(): void {\n this.resizeObserver.unobserve(this.option.tooltipContentWrapper.nativeElement);\n\n this.disabled = true;\n }\n\n private checkTooltipDisabled(): void {\n const count: number = this.option.tooltipContent.nativeElement.getClientRects().length;\n\n this.disabled = count <= TOOLTIP_VISIBLE_ROWS_COUNT;\n\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, ContentChild } from '@angular/core';\nimport { MC_OPTION_PARENT_COMPONENT } from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl, McCleaner } from '@ptsecurity/mosaic/form-field';\nimport { McSelect, McSelectSearch } from '@ptsecurity/mosaic/select';\n\n\n@Directive({ selector: 'mc-timezone-select-trigger' })\nexport class McTimezoneSelectTrigger {}\n\n@Component({\n selector: 'mc-timezone-select',\n exportAs: 'mcTimezoneSelect',\n templateUrl: 'timezone-select.component.html',\n styleUrls: ['../select/select.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: McFormFieldControl, useExisting: McTimezoneSelect },\n { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McTimezoneSelect }\n ]\n})\nexport class McTimezoneSelect extends McSelect {\n @ContentChild(McTimezoneSelectTrigger, { static: false }) customTrigger: McTimezoneSelectTrigger;\n\n @ContentChild('mcSelectCleaner', { static: true }) cleaner: McCleaner;\n\n @ContentChild(McSelectSearch, { static: false }) search: McSelectSearch;\n}\n","<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n\n <div class=\"mc-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchCase=\"false\" class=\"mc-select__match-container\">\n <span class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n </div>\n <ng-content select=\"mc-timezone-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n\n <div #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","/* tslint:disable:naming-convention */\n\nexport interface McTimezoneZone {\n id: string;\n offset: string;\n city: string;\n countryCode: string;\n countryName: string;\n cities: string;\n}\n\nexport interface McTimezoneGroup {\n countryName: string;\n countryCode: string;\n zones: McTimezoneZone[];\n}\n\nexport interface McTimezonesByCountry {\n [countryName: string]: McTimezoneZone[];\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McHighlightModule, McOptionModule } from '@ptsecurity/mosaic/core';\nimport { McFormFieldModule } from '@ptsecurity/mosaic/form-field';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\nimport { McSelectModule } from '@ptsecurity/mosaic/select';\nimport { McTagsModule } from '@ptsecurity/mosaic/tags';\nimport { McToolTipModule } from '@ptsecurity/mosaic/tooltip';\n\nimport { CitiesByFilterPipe } from './cities-by-filter.pipe';\nimport { McTimezoneOption } from './timezone-option.component';\nimport { McTimezoneOptionTooltip } from './timezone-option.directive';\nimport { McTimezoneSelect, McTimezoneSelectTrigger } from './timezone-select.component';\nimport { UtcOffsetPipe } from './utc-offset.pipe';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n McFormFieldModule,\n McOptionModule,\n McSelectModule,\n McIconModule,\n McTagsModule,\n McToolTipModule,\n McHighlightModule\n ],\n declarations: [\n UtcOffsetPipe,\n CitiesByFilterPipe,\n McTimezoneSelect,\n McTimezoneOption,\n McTimezoneOptionTooltip,\n McTimezoneSelectTrigger\n ],\n exports: [\n McTimezoneSelect,\n McTimezoneOption,\n McTimezoneOptionTooltip,\n McTimezoneSelectTrigger\n ]\n})\nexport class McTimezoneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.UtcOffsetPipe","i3.CitiesByFilterPipe","i1","i3"],"mappings":"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"}