@ptsecurity/mosaic 13.4.0 → 13.5.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 (922) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -6
  3. package/_theming.scss +7091 -6963
  4. package/_visual.scss +2690 -2658
  5. package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
  6. package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
  7. package/autocomplete/autocomplete.component.d.ts +73 -73
  8. package/autocomplete/autocomplete.module.d.ts +12 -12
  9. package/autocomplete/index.d.ts +1 -1
  10. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
  11. package/autocomplete/public-api.d.ts +4 -4
  12. package/button/button.component.d.ts +40 -40
  13. package/button/button.module.d.ts +10 -10
  14. package/button/index.d.ts +1 -1
  15. package/button/ptsecurity-mosaic-button.d.ts +5 -5
  16. package/button/public-api.d.ts +2 -2
  17. package/button-toggle/button-toggle.component.d.ts +141 -141
  18. package/button-toggle/button-toggle.module.d.ts +9 -9
  19. package/button-toggle/index.d.ts +1 -1
  20. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
  21. package/button-toggle/public-api.d.ts +2 -2
  22. package/card/card.component.d.ts +26 -26
  23. package/card/card.module.d.ts +10 -10
  24. package/card/index.d.ts +1 -1
  25. package/card/ptsecurity-mosaic-card.d.ts +5 -5
  26. package/card/public-api.d.ts +2 -2
  27. package/checkbox/README.md +1 -1
  28. package/checkbox/checkbox-config.d.ts +13 -13
  29. package/checkbox/checkbox-module.d.ts +9 -9
  30. package/checkbox/checkbox-required-validator.d.ts +13 -13
  31. package/checkbox/checkbox.d.ts +140 -140
  32. package/checkbox/index.d.ts +1 -1
  33. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
  34. package/checkbox/public-api.d.ts +4 -4
  35. package/core/animation/animation.d.ts +6 -6
  36. package/core/animation/fade-animations.d.ts +2 -2
  37. package/core/animation/index.d.ts +3 -3
  38. package/core/animation/select-animations.d.ts +12 -12
  39. package/core/common-behaviors/color.d.ts +19 -19
  40. package/core/common-behaviors/common-module.d.ts +25 -25
  41. package/core/common-behaviors/constructor.d.ts +9 -9
  42. package/core/common-behaviors/disabled.d.ts +8 -8
  43. package/core/common-behaviors/error-state.d.ts +25 -25
  44. package/core/common-behaviors/index.d.ts +5 -5
  45. package/core/common-behaviors/tabindex.d.ts +8 -8
  46. package/core/error/error-options.d.ts +14 -14
  47. package/core/formatters/date/formatter.d.ts +203 -203
  48. package/core/formatters/date/templates/en-US.d.ts +74 -74
  49. package/core/formatters/date/templates/ru-RU.d.ts +74 -74
  50. package/core/formatters/index.d.ts +9 -9
  51. package/core/formatters/number/formatter.d.ts +27 -27
  52. package/core/forms/forms-module.d.ts +7 -7
  53. package/core/forms/forms.directive.d.ts +22 -22
  54. package/core/forms/index.d.ts +2 -2
  55. package/core/highlight/highlight.pipe.d.ts +7 -7
  56. package/core/highlight/index.d.ts +9 -9
  57. package/core/index.d.ts +1 -1
  58. package/core/label/label-options.d.ts +13 -13
  59. package/core/line/line.d.ts +28 -28
  60. package/core/option/action.d.ts +42 -42
  61. package/core/option/index.d.ts +4 -4
  62. package/core/option/optgroup.d.ts +16 -16
  63. package/core/option/option-module.d.ts +11 -11
  64. package/core/option/option.d.ts +115 -115
  65. package/core/overlay/overlay-position-map.d.ts +34 -34
  66. package/core/pop-up/constants.d.ts +29 -29
  67. package/core/pop-up/index.d.ts +3 -3
  68. package/core/pop-up/pop-up-trigger.d.ts +70 -70
  69. package/core/pop-up/pop-up.d.ts +36 -36
  70. package/core/ptsecurity-mosaic-core.d.ts +5 -5
  71. package/core/public-api.d.ts +17 -17
  72. package/core/select/constants.d.ts +23 -23
  73. package/core/select/errors.d.ts +19 -19
  74. package/core/select/events.d.ts +1 -1
  75. package/core/select/index.d.ts +3 -3
  76. package/core/selection/constants.d.ts +4 -4
  77. package/core/selection/index.d.ts +3 -3
  78. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +21 -21
  79. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
  80. package/core/services/measure-scrollbar.service.d.ts +11 -11
  81. package/core/utils/index.d.ts +1 -1
  82. package/core/utils/public-api.d.ts +1 -1
  83. package/core/utils/utils.d.ts +2 -2
  84. package/core/validation/index.d.ts +1 -1
  85. package/core/validation/validation.d.ts +18 -16
  86. package/core/version.d.ts +2 -2
  87. package/datepicker/calendar-body.component.d.ts +63 -63
  88. package/datepicker/calendar.component.d.ts +151 -151
  89. package/datepicker/datepicker-animations.d.ts +9 -9
  90. package/datepicker/datepicker-errors.d.ts +2 -2
  91. package/datepicker/datepicker-input.directive.d.ts +178 -172
  92. package/datepicker/datepicker-intl.d.ts +32 -32
  93. package/datepicker/datepicker-module.d.ts +20 -20
  94. package/datepicker/datepicker-toggle.component.d.ts +35 -35
  95. package/datepicker/datepicker.component.d.ts +158 -158
  96. package/datepicker/index.d.ts +1 -1
  97. package/datepicker/month-view.component.d.ts +93 -93
  98. package/datepicker/multi-year-view.component.d.ts +72 -72
  99. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
  100. package/datepicker/public-api.d.ts +11 -11
  101. package/datepicker/year-view.component.d.ts +90 -90
  102. package/design-tokens/index.d.ts +1 -1
  103. package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -83
  104. package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -11
  105. package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -174
  106. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -10
  107. package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -142
  108. package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -51
  109. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -39
  110. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
  111. package/design-tokens/legacy-2017/tokens/components/divider.json5 +8 -8
  112. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -38
  113. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -48
  114. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -92
  115. package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -52
  116. package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -104
  117. package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -12
  118. package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -50
  119. package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -13
  120. package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -81
  121. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -70
  122. package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -10
  123. package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -12
  124. package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -68
  125. package/design-tokens/legacy-2017/tokens/components/popup.json5 +18 -18
  126. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -13
  127. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -7
  128. package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -44
  129. package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
  130. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +32 -32
  131. package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -15
  132. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -101
  133. package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -131
  134. package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -12
  135. package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -7
  136. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -79
  137. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -83
  138. package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -15
  139. package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -3
  140. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +118 -118
  141. package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -12
  142. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -49
  143. package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -3
  144. package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -163
  145. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -175
  146. package/design-tokens/legacy-2017/tokens.d.ts +7839 -7810
  147. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -83
  148. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -11
  149. package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -174
  150. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -10
  151. package/design-tokens/pt-2022/tokens/components/button.json5 +142 -142
  152. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -51
  153. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -39
  154. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
  155. package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -8
  156. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -38
  157. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -48
  158. package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -92
  159. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -52
  160. package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -104
  161. package/design-tokens/pt-2022/tokens/components/input.json5 +12 -12
  162. package/design-tokens/pt-2022/tokens/components/link.json5 +50 -50
  163. package/design-tokens/pt-2022/tokens/components/list.json5 +13 -13
  164. package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -81
  165. package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -70
  166. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -10
  167. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -12
  168. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -68
  169. package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -18
  170. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -13
  171. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -7
  172. package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -44
  173. package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
  174. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +32 -32
  175. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -15
  176. package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -101
  177. package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -131
  178. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -12
  179. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -7
  180. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -79
  181. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -83
  182. package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -15
  183. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -3
  184. package/design-tokens/pt-2022/tokens/properties/colors.json5 +120 -120
  185. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -15
  186. package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -49
  187. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -3
  188. package/design-tokens/pt-2022/tokens/properties/palette.json5 +232 -232
  189. package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -175
  190. package/design-tokens/pt-2022/tokens.d.ts +9171 -9139
  191. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
  192. package/design-tokens/public-api.d.ts +3 -3
  193. package/design-tokens/style-dictionary/build.js +63 -62
  194. package/design-tokens/style-dictionary/configs/css.js +13 -13
  195. package/design-tokens/style-dictionary/configs/index.js +48 -48
  196. package/design-tokens/style-dictionary/configs/js.js +9 -9
  197. package/design-tokens/style-dictionary/configs/scss.js +23 -23
  198. package/design-tokens/style-dictionary/filters/color.js +7 -7
  199. package/design-tokens/style-dictionary/filters/palette.js +7 -7
  200. package/design-tokens/style-dictionary/filters/size.js +7 -7
  201. package/design-tokens/style-dictionary/filters/typography.js +7 -7
  202. package/design-tokens/style-dictionary/formats/palette.js +25 -25
  203. package/design-tokens/style-dictionary/formats/typography.js +52 -52
  204. package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
  205. package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
  206. package/design-tokens/style-dictionary/transformGroups/ts.js +11 -0
  207. package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
  208. package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
  209. package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
  210. package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
  211. package/divider/divider.component.d.ts +11 -11
  212. package/divider/divider.module.d.ts +8 -8
  213. package/divider/index.d.ts +1 -1
  214. package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
  215. package/divider/public-api.d.ts +2 -2
  216. package/dl/dl.component.d.ts +26 -26
  217. package/dl/dl.module.d.ts +10 -10
  218. package/dl/index.d.ts +1 -1
  219. package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
  220. package/dl/public-api.d.ts +2 -2
  221. package/dropdown/dropdown-animations.d.ts +11 -11
  222. package/dropdown/dropdown-content.directive.d.ts +32 -32
  223. package/dropdown/dropdown-errors.d.ts +17 -17
  224. package/dropdown/dropdown-item.component.d.ts +50 -50
  225. package/dropdown/dropdown-trigger.directive.d.ts +136 -136
  226. package/dropdown/dropdown.component.d.ts +121 -121
  227. package/dropdown/dropdown.module.d.ts +13 -13
  228. package/dropdown/dropdown.types.d.ts +53 -53
  229. package/dropdown/index.d.ts +1 -1
  230. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
  231. package/dropdown/public-api.d.ts +8 -8
  232. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
  233. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
  234. package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
  235. package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
  236. package/esm2020/autocomplete/index.mjs +2 -2
  237. package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
  238. package/esm2020/autocomplete/public-api.mjs +5 -5
  239. package/esm2020/button/button.component.mjs +137 -137
  240. package/esm2020/button/button.module.mjs +38 -38
  241. package/esm2020/button/index.mjs +2 -2
  242. package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
  243. package/esm2020/button/public-api.mjs +3 -3
  244. package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
  245. package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
  246. package/esm2020/button-toggle/index.mjs +2 -2
  247. package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
  248. package/esm2020/button-toggle/public-api.mjs +3 -3
  249. package/esm2020/card/card.component.mjs +80 -80
  250. package/esm2020/card/card.module.mjs +30 -30
  251. package/esm2020/card/index.mjs +2 -2
  252. package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
  253. package/esm2020/card/public-api.mjs +3 -3
  254. package/esm2020/checkbox/checkbox-config.mjs +6 -6
  255. package/esm2020/checkbox/checkbox-module.mjs +19 -19
  256. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
  257. package/esm2020/checkbox/checkbox.mjs +316 -315
  258. package/esm2020/checkbox/index.mjs +2 -2
  259. package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
  260. package/esm2020/checkbox/public-api.mjs +5 -5
  261. package/esm2020/core/animation/animation.mjs +8 -8
  262. package/esm2020/core/animation/fade-animations.mjs +9 -9
  263. package/esm2020/core/animation/index.mjs +4 -4
  264. package/esm2020/core/animation/select-animations.mjs +45 -45
  265. package/esm2020/core/common-behaviors/color.mjs +30 -30
  266. package/esm2020/core/common-behaviors/common-module.mjs +83 -83
  267. package/esm2020/core/common-behaviors/constructor.mjs +2 -2
  268. package/esm2020/core/common-behaviors/disabled.mjs +17 -17
  269. package/esm2020/core/common-behaviors/error-state.mjs +31 -31
  270. package/esm2020/core/common-behaviors/index.mjs +6 -6
  271. package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
  272. package/esm2020/core/error/error-options.mjs +26 -26
  273. package/esm2020/core/formatters/date/formatter.mjs +359 -359
  274. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
  275. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
  276. package/esm2020/core/formatters/index.mjs +20 -20
  277. package/esm2020/core/formatters/number/formatter.mjs +105 -105
  278. package/esm2020/core/forms/forms-module.mjs +24 -24
  279. package/esm2020/core/forms/forms.directive.mjs +66 -66
  280. package/esm2020/core/forms/index.mjs +3 -3
  281. package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
  282. package/esm2020/core/highlight/index.mjs +19 -19
  283. package/esm2020/core/index.mjs +2 -2
  284. package/esm2020/core/label/label-options.mjs +4 -4
  285. package/esm2020/core/line/line.mjs +70 -70
  286. package/esm2020/core/option/action.mjs +121 -121
  287. package/esm2020/core/option/index.mjs +5 -5
  288. package/esm2020/core/option/optgroup.mjs +31 -31
  289. package/esm2020/core/option/option-module.mjs +21 -21
  290. package/esm2020/core/option/option.mjs +257 -257
  291. package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
  292. package/esm2020/core/pop-up/constants.mjs +34 -34
  293. package/esm2020/core/pop-up/index.mjs +4 -4
  294. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
  295. package/esm2020/core/pop-up/pop-up.mjs +94 -94
  296. package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
  297. package/esm2020/core/public-api.mjs +18 -18
  298. package/esm2020/core/select/constants.mjs +27 -27
  299. package/esm2020/core/select/errors.mjs +26 -26
  300. package/esm2020/core/select/events.mjs +2 -2
  301. package/esm2020/core/select/index.mjs +4 -4
  302. package/esm2020/core/selection/constants.mjs +6 -6
  303. package/esm2020/core/selection/index.mjs +4 -4
  304. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -37
  305. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
  306. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
  307. package/esm2020/core/utils/index.mjs +2 -2
  308. package/esm2020/core/utils/public-api.mjs +2 -2
  309. package/esm2020/core/utils/utils.mjs +5 -5
  310. package/esm2020/core/validation/index.mjs +2 -2
  311. package/esm2020/core/validation/validation.mjs +118 -89
  312. package/esm2020/core/version.mjs +3 -3
  313. package/esm2020/datepicker/calendar-body.component.mjs +106 -106
  314. package/esm2020/datepicker/calendar.component.mjs +362 -362
  315. package/esm2020/datepicker/datepicker-animations.mjs +32 -32
  316. package/esm2020/datepicker/datepicker-errors.mjs +6 -6
  317. package/esm2020/datepicker/datepicker-input.directive.mjs +936 -900
  318. package/esm2020/datepicker/datepicker-intl.mjs +40 -40
  319. package/esm2020/datepicker/datepicker-module.mjs +107 -107
  320. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
  321. package/esm2020/datepicker/datepicker.component.mjs +408 -408
  322. package/esm2020/datepicker/index.mjs +2 -2
  323. package/esm2020/datepicker/month-view.component.mjs +257 -257
  324. package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
  325. package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
  326. package/esm2020/datepicker/public-api.mjs +12 -12
  327. package/esm2020/datepicker/year-view.component.mjs +253 -253
  328. package/esm2020/design-tokens/index.mjs +2 -2
  329. package/esm2020/design-tokens/legacy-2017/tokens.mjs +1133 -1104
  330. package/esm2020/design-tokens/pt-2022/tokens.mjs +1203 -1171
  331. package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
  332. package/esm2020/design-tokens/public-api.mjs +4 -4
  333. package/esm2020/divider/divider.component.mjs +39 -39
  334. package/esm2020/divider/divider.module.mjs +18 -18
  335. package/esm2020/divider/index.mjs +2 -2
  336. package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
  337. package/esm2020/divider/public-api.mjs +3 -3
  338. package/esm2020/dl/dl.component.mjs +78 -78
  339. package/esm2020/dl/dl.module.mjs +42 -42
  340. package/esm2020/dl/index.mjs +2 -2
  341. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
  342. package/esm2020/dl/public-api.mjs +3 -3
  343. package/esm2020/dropdown/dropdown-animations.mjs +41 -41
  344. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
  345. package/esm2020/dropdown/dropdown-errors.mjs +29 -29
  346. package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
  347. package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
  348. package/esm2020/dropdown/dropdown.component.mjs +292 -292
  349. package/esm2020/dropdown/dropdown.module.mjs +50 -50
  350. package/esm2020/dropdown/dropdown.types.mjs +24 -24
  351. package/esm2020/dropdown/index.mjs +2 -2
  352. package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
  353. package/esm2020/dropdown/public-api.mjs +9 -9
  354. package/esm2020/form-field/cleaner.mjs +23 -23
  355. package/esm2020/form-field/form-field-control.mjs +5 -5
  356. package/esm2020/form-field/form-field-errors.mjs +7 -7
  357. package/esm2020/form-field/form-field.mjs +225 -225
  358. package/esm2020/form-field/form-field.module.mjs +57 -57
  359. package/esm2020/form-field/hint.mjs +23 -23
  360. package/esm2020/form-field/index.mjs +2 -2
  361. package/esm2020/form-field/password-hint.mjs +134 -134
  362. package/esm2020/form-field/prefix.mjs +13 -13
  363. package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
  364. package/esm2020/form-field/public-api.mjs +11 -11
  365. package/esm2020/form-field/stepper.mjs +55 -55
  366. package/esm2020/form-field/suffix.mjs +13 -13
  367. package/esm2020/icon/icon.component.mjs +44 -44
  368. package/esm2020/icon/icon.module.mjs +38 -38
  369. package/esm2020/icon/index.mjs +2 -2
  370. package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
  371. package/esm2020/icon/public-api.mjs +3 -3
  372. package/esm2020/index.mjs +2 -2
  373. package/esm2020/input/index.mjs +2 -2
  374. package/esm2020/input/input-errors.mjs +4 -4
  375. package/esm2020/input/input-number-validators.mjs +92 -92
  376. package/esm2020/input/input-number.mjs +163 -163
  377. package/esm2020/input/input-password.mjs +368 -368
  378. package/esm2020/input/input-value-accessor.mjs +3 -3
  379. package/esm2020/input/input.mjs +334 -334
  380. package/esm2020/input/input.module.mjs +65 -65
  381. package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
  382. package/esm2020/input/public-api.mjs +7 -7
  383. package/esm2020/link/index.mjs +2 -2
  384. package/esm2020/link/link.component.mjs +107 -107
  385. package/esm2020/link/link.module.mjs +26 -26
  386. package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
  387. package/esm2020/link/public-api.mjs +3 -3
  388. package/esm2020/list/index.mjs +2 -2
  389. package/esm2020/list/list-selection.component.mjs +686 -687
  390. package/esm2020/list/list.component.mjs +44 -44
  391. package/esm2020/list/list.module.mjs +55 -55
  392. package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
  393. package/esm2020/list/public-api.mjs +4 -4
  394. package/esm2020/modal/css-unit.pipe.mjs +17 -17
  395. package/esm2020/modal/index.mjs +2 -2
  396. package/esm2020/modal/modal-control.service.mjs +85 -85
  397. package/esm2020/modal/modal-ref.class.mjs +8 -8
  398. package/esm2020/modal/modal-util.mjs +17 -17
  399. package/esm2020/modal/modal.component.mjs +501 -501
  400. package/esm2020/modal/modal.directive.mjs +52 -52
  401. package/esm2020/modal/modal.module.mjs +72 -72
  402. package/esm2020/modal/modal.service.mjs +124 -124
  403. package/esm2020/modal/modal.type.mjs +7 -7
  404. package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
  405. package/esm2020/modal/public-api.mjs +7 -7
  406. package/esm2020/navbar/index.mjs +2 -2
  407. package/esm2020/navbar/navbar-item.component.mjs +582 -582
  408. package/esm2020/navbar/navbar.component.mjs +237 -237
  409. package/esm2020/navbar/navbar.module.mjs +92 -92
  410. package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
  411. package/esm2020/navbar/public-api.mjs +5 -5
  412. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
  413. package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
  414. package/esm2020/popover/index.mjs +2 -2
  415. package/esm2020/popover/popover-animations.mjs +16 -16
  416. package/esm2020/popover/popover-confirm.component.mjs +108 -108
  417. package/esm2020/popover/popover.component.mjs +253 -253
  418. package/esm2020/popover/popover.module.mjs +24 -24
  419. package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
  420. package/esm2020/popover/public-api.mjs +5 -5
  421. package/esm2020/progress-bar/index.mjs +2 -2
  422. package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
  423. package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
  424. package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
  425. package/esm2020/progress-bar/public-api.mjs +3 -3
  426. package/esm2020/progress-spinner/index.mjs +2 -2
  427. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
  428. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
  429. package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
  430. package/esm2020/progress-spinner/public-api.mjs +3 -3
  431. package/esm2020/ptsecurity-mosaic.mjs +4 -4
  432. package/esm2020/public-api.mjs +2 -2
  433. package/esm2020/radio/index.mjs +2 -2
  434. package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
  435. package/esm2020/radio/public-api.mjs +3 -3
  436. package/esm2020/radio/radio.component.mjs +458 -458
  437. package/esm2020/radio/radio.module.mjs +20 -20
  438. package/esm2020/select/index.mjs +2 -2
  439. package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
  440. package/esm2020/select/public-api.mjs +4 -4
  441. package/esm2020/select/select-option.directive.mjs +65 -65
  442. package/esm2020/select/select.component.mjs +1107 -1110
  443. package/esm2020/select/select.module.mjs +73 -73
  444. package/esm2020/sidebar/index.mjs +2 -2
  445. package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
  446. package/esm2020/sidebar/public-api.mjs +3 -3
  447. package/esm2020/sidebar/sidebar-animations.mjs +23 -23
  448. package/esm2020/sidebar/sidebar.component.mjs +146 -146
  449. package/esm2020/sidebar/sidebar.module.mjs +30 -30
  450. package/esm2020/sidepanel/index.mjs +2 -2
  451. package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
  452. package/esm2020/sidepanel/public-api.mjs +7 -7
  453. package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
  454. package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
  455. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
  456. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
  457. package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
  458. package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
  459. package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
  460. package/esm2020/splitter/index.mjs +2 -2
  461. package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
  462. package/esm2020/splitter/public-api.mjs +3 -3
  463. package/esm2020/splitter/splitter.component.mjs +482 -482
  464. package/esm2020/splitter/splitter.module.mjs +40 -40
  465. package/esm2020/table/index.mjs +2 -2
  466. package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
  467. package/esm2020/table/public-api.mjs +3 -3
  468. package/esm2020/table/table.component.mjs +16 -16
  469. package/esm2020/table/table.module.mjs +30 -30
  470. package/esm2020/tabs/index.mjs +2 -2
  471. package/esm2020/tabs/paginated-tab-header.mjs +479 -479
  472. package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
  473. package/esm2020/tabs/public-api.mjs +11 -11
  474. package/esm2020/tabs/tab-body.component.mjs +178 -178
  475. package/esm2020/tabs/tab-content.directive.mjs +15 -15
  476. package/esm2020/tabs/tab-group.component.mjs +350 -350
  477. package/esm2020/tabs/tab-header.component.mjs +67 -67
  478. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
  479. package/esm2020/tabs/tab-label.directive.mjs +17 -17
  480. package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
  481. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
  482. package/esm2020/tabs/tab.component.mjs +133 -133
  483. package/esm2020/tabs/tabs-animations.mjs +24 -24
  484. package/esm2020/tabs/tabs.module.mjs +104 -104
  485. package/esm2020/tags/index.mjs +2 -2
  486. package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
  487. package/esm2020/tags/public-api.mjs +6 -6
  488. package/esm2020/tags/tag-default-options.mjs +4 -4
  489. package/esm2020/tags/tag-input.mjs +229 -229
  490. package/esm2020/tags/tag-list.component.mjs +722 -722
  491. package/esm2020/tags/tag-text-control.mjs +2 -2
  492. package/esm2020/tags/tag.component.mjs +375 -375
  493. package/esm2020/tags/tag.module.mjs +56 -56
  494. package/esm2020/textarea/index.mjs +2 -2
  495. package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
  496. package/esm2020/textarea/public-api.mjs +3 -3
  497. package/esm2020/textarea/textarea.component.mjs +269 -269
  498. package/esm2020/textarea/textarea.module.mjs +21 -21
  499. package/esm2020/timepicker/index.mjs +2 -2
  500. package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
  501. package/esm2020/timepicker/public-api.mjs +4 -4
  502. package/esm2020/timepicker/timepicker.constants.mjs +25 -25
  503. package/esm2020/timepicker/timepicker.directive.mjs +676 -653
  504. package/esm2020/timepicker/timepicker.module.mjs +34 -34
  505. package/esm2020/toggle/index.mjs +2 -2
  506. package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
  507. package/esm2020/toggle/public-api.mjs +3 -3
  508. package/esm2020/toggle/toggle.component.mjs +158 -158
  509. package/esm2020/toggle/toggle.module.mjs +20 -20
  510. package/esm2020/tooltip/index.mjs +2 -2
  511. package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
  512. package/esm2020/tooltip/public-api.mjs +3 -3
  513. package/esm2020/tooltip/tooltip.animations.mjs +19 -19
  514. package/esm2020/tooltip/tooltip.component.mjs +295 -295
  515. package/esm2020/tooltip/tooltip.module.mjs +43 -43
  516. package/esm2020/tree/control/base-tree-control.mjs +60 -60
  517. package/esm2020/tree/control/flat-tree-control.mjs +123 -123
  518. package/esm2020/tree/control/nested-tree-control.mjs +41 -41
  519. package/esm2020/tree/control/tree-control.mjs +2 -2
  520. package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
  521. package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
  522. package/esm2020/tree/index.mjs +2 -2
  523. package/esm2020/tree/node.mjs +31 -31
  524. package/esm2020/tree/outlet.mjs +15 -15
  525. package/esm2020/tree/padding.directive.mjs +110 -110
  526. package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
  527. package/esm2020/tree/public-api.mjs +16 -16
  528. package/esm2020/tree/toggle.mjs +80 -80
  529. package/esm2020/tree/tree-base.mjs +243 -243
  530. package/esm2020/tree/tree-errors.mjs +36 -36
  531. package/esm2020/tree/tree-option.component.mjs +236 -234
  532. package/esm2020/tree/tree-selection.component.mjs +540 -535
  533. package/esm2020/tree/tree.mjs +15 -15
  534. package/esm2020/tree/tree.module.mjs +57 -53
  535. package/esm2020/tree-select/index.mjs +2 -2
  536. package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
  537. package/esm2020/tree-select/public-api.mjs +3 -3
  538. package/esm2020/tree-select/tree-select.component.mjs +924 -925
  539. package/esm2020/tree-select/tree-select.module.mjs +47 -47
  540. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
  541. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  542. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
  543. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  544. package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
  545. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  546. package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
  547. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  548. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +349 -348
  549. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  550. package/fesm2015/ptsecurity-mosaic-core.mjs +2642 -2613
  551. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  552. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2687 -2649
  553. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  554. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
  555. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  556. package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
  557. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  558. package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
  559. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  560. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
  561. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  562. package/fesm2015/ptsecurity-mosaic-form-field.mjs +506 -506
  563. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  564. package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
  565. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  566. package/fesm2015/ptsecurity-mosaic-input.mjs +975 -975
  567. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  568. package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
  569. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  570. package/fesm2015/ptsecurity-mosaic-list.mjs +762 -763
  571. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  572. package/fesm2015/ptsecurity-mosaic-modal.mjs +824 -824
  573. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  574. package/fesm2015/ptsecurity-mosaic-navbar.mjs +993 -993
  575. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  576. package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
  577. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  578. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
  579. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  580. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  581. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  582. package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
  583. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  584. package/fesm2015/ptsecurity-mosaic-select.mjs +1203 -1205
  585. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  586. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
  587. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  588. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
  589. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  590. package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
  591. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  592. package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
  593. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  594. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
  595. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  596. package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
  597. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  598. package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
  599. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  600. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +718 -695
  601. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  602. package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
  603. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  604. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
  605. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  606. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +940 -940
  607. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  608. package/fesm2015/ptsecurity-mosaic-tree.mjs +1676 -1669
  609. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  610. package/fesm2015/ptsecurity-mosaic.mjs +2 -2
  611. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
  612. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  613. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
  614. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  615. package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
  616. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  617. package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
  618. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  619. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +347 -346
  620. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  621. package/fesm2020/ptsecurity-mosaic-core.mjs +2671 -2642
  622. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  623. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2672 -2635
  624. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  625. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
  626. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  627. package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
  628. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  629. package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
  630. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  631. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
  632. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  633. package/fesm2020/ptsecurity-mosaic-form-field.mjs +491 -491
  634. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  635. package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
  636. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  637. package/fesm2020/ptsecurity-mosaic-input.mjs +964 -964
  638. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  639. package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
  640. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  641. package/fesm2020/ptsecurity-mosaic-list.mjs +755 -756
  642. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  643. package/fesm2020/ptsecurity-mosaic-modal.mjs +820 -820
  644. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  645. package/fesm2020/ptsecurity-mosaic-navbar.mjs +977 -977
  646. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  647. package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
  648. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  649. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
  650. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  651. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  652. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  653. package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
  654. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  655. package/fesm2020/ptsecurity-mosaic-select.mjs +1198 -1201
  656. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  657. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
  658. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  659. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
  660. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  661. package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
  662. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  663. package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
  664. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  665. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
  666. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  667. package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
  668. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  669. package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
  670. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  671. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +715 -692
  672. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  673. package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
  674. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  675. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
  676. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  677. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +937 -938
  678. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  679. package/fesm2020/ptsecurity-mosaic-tree.mjs +1663 -1656
  680. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  681. package/fesm2020/ptsecurity-mosaic.mjs +2 -2
  682. package/form-field/cleaner.d.ts +7 -7
  683. package/form-field/form-field-control.d.ts +37 -37
  684. package/form-field/form-field-errors.d.ts +2 -2
  685. package/form-field/form-field.d.ts +69 -69
  686. package/form-field/form-field.module.d.ts +15 -15
  687. package/form-field/hint.d.ts +6 -6
  688. package/form-field/index.d.ts +1 -1
  689. package/form-field/password-hint.d.ts +40 -40
  690. package/form-field/prefix.d.ts +5 -5
  691. package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
  692. package/form-field/public-api.d.ts +10 -10
  693. package/form-field/stepper.d.ts +11 -11
  694. package/form-field/suffix.d.ts +5 -5
  695. package/icon/icon.component.d.ts +18 -18
  696. package/icon/icon.module.d.ts +10 -10
  697. package/icon/index.d.ts +1 -1
  698. package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
  699. package/icon/public-api.d.ts +2 -2
  700. package/index.d.ts +1 -1
  701. package/input/index.d.ts +1 -1
  702. package/input/input-errors.d.ts +1 -1
  703. package/input/input-number-validators.d.ts +39 -39
  704. package/input/input-number.d.ts +33 -33
  705. package/input/input-password.d.ts +121 -121
  706. package/input/input-value-accessor.d.ts +4 -4
  707. package/input/input.d.ts +116 -116
  708. package/input/input.module.d.ts +14 -14
  709. package/input/ptsecurity-mosaic-input.d.ts +5 -5
  710. package/input/public-api.d.ts +6 -6
  711. package/link/index.d.ts +1 -1
  712. package/link/link.component.d.ts +38 -38
  713. package/link/link.module.d.ts +9 -9
  714. package/link/ptsecurity-mosaic-link.d.ts +5 -5
  715. package/link/public-api.d.ts +2 -2
  716. package/list/index.d.ts +1 -1
  717. package/list/list-selection.component.d.ts +168 -168
  718. package/list/list.component.d.ts +18 -18
  719. package/list/list.module.d.ts +11 -11
  720. package/list/ptsecurity-mosaic-list.d.ts +5 -5
  721. package/list/public-api.d.ts +3 -3
  722. package/modal/README.md +33 -33
  723. package/modal/css-unit.pipe.d.ts +7 -7
  724. package/modal/index.d.ts +1 -1
  725. package/modal/modal-control.service.d.ts +20 -20
  726. package/modal/modal-ref.class.d.ts +36 -36
  727. package/modal/modal-util.d.ts +12 -12
  728. package/modal/modal.component.d.ts +126 -126
  729. package/modal/modal.directive.d.ts +17 -17
  730. package/modal/modal.module.d.ts +14 -14
  731. package/modal/modal.service.d.ts +33 -33
  732. package/modal/modal.type.d.ts +59 -59
  733. package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
  734. package/modal/public-api.d.ts +6 -6
  735. package/navbar/README.md +41 -41
  736. package/navbar/index.d.ts +1 -1
  737. package/navbar/navbar-item.component.d.ts +161 -161
  738. package/navbar/navbar.component.d.ts +58 -58
  739. package/navbar/navbar.module.d.ts +14 -14
  740. package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
  741. package/navbar/public-api.d.ts +4 -4
  742. package/navbar/vertical-navbar.animation.d.ts +2 -2
  743. package/navbar/vertical-navbar.component.d.ts +23 -23
  744. package/package.json +13 -10
  745. package/popover/README.md +32 -32
  746. package/popover/index.d.ts +1 -1
  747. package/popover/popover-animations.d.ts +4 -4
  748. package/popover/popover-confirm.component.d.ts +33 -33
  749. package/popover/popover.component.d.ts +74 -74
  750. package/popover/popover.module.d.ts +12 -12
  751. package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
  752. package/popover/public-api.d.ts +4 -4
  753. package/prebuilt-themes/dark-theme.css +1 -1
  754. package/prebuilt-themes/default-theme.css +1 -1
  755. package/progress-bar/index.d.ts +1 -1
  756. package/progress-bar/progress-bar.component.d.ts +18 -18
  757. package/progress-bar/progress-bar.module.d.ts +9 -9
  758. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
  759. package/progress-bar/public-api.d.ts +2 -2
  760. package/progress-spinner/index.d.ts +1 -1
  761. package/progress-spinner/progress-spinner.component.d.ts +19 -19
  762. package/progress-spinner/progress-spinner.module.d.ts +9 -9
  763. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
  764. package/progress-spinner/public-api.d.ts +2 -2
  765. package/ptsecurity-mosaic.d.ts +5 -5
  766. package/public-api.d.ts +1 -1
  767. package/radio/index.d.ts +1 -1
  768. package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
  769. package/radio/public-api.d.ts +2 -2
  770. package/radio/radio.component.d.ts +207 -207
  771. package/radio/radio.module.d.ts +10 -10
  772. package/schematics/README.md +35 -35
  773. package/select/index.d.ts +1 -1
  774. package/select/ptsecurity-mosaic-select.d.ts +5 -5
  775. package/select/public-api.d.ts +3 -3
  776. package/select/select-option.directive.d.ts +20 -20
  777. package/select/select.component.d.ts +307 -307
  778. package/select/select.module.d.ts +15 -15
  779. package/sidebar/index.d.ts +1 -1
  780. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
  781. package/sidebar/public-api.d.ts +2 -2
  782. package/sidebar/sidebar-animations.d.ts +8 -8
  783. package/sidebar/sidebar.component.d.ts +53 -53
  784. package/sidebar/sidebar.module.d.ts +8 -8
  785. package/sidepanel/index.d.ts +1 -1
  786. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
  787. package/sidepanel/public-api.d.ts +6 -6
  788. package/sidepanel/sidepanel-animations.d.ts +14 -14
  789. package/sidepanel/sidepanel-config.d.ts +25 -25
  790. package/sidepanel/sidepanel-container.component.d.ts +45 -45
  791. package/sidepanel/sidepanel-directives.d.ts +50 -50
  792. package/sidepanel/sidepanel-ref.d.ts +24 -24
  793. package/sidepanel/sidepanel.module.d.ts +15 -15
  794. package/sidepanel/sidepanel.service.d.ts +57 -57
  795. package/splitter/index.d.ts +1 -1
  796. package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
  797. package/splitter/public-api.d.ts +2 -2
  798. package/splitter/splitter.component.d.ts +130 -130
  799. package/splitter/splitter.module.d.ts +9 -9
  800. package/table/index.d.ts +1 -1
  801. package/table/ptsecurity-mosaic-table.d.ts +5 -5
  802. package/table/public-api.d.ts +2 -2
  803. package/table/table.component.d.ts +5 -5
  804. package/table/table.module.d.ts +10 -10
  805. package/tabs/index.d.ts +1 -1
  806. package/tabs/paginated-tab-header.d.ts +179 -179
  807. package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
  808. package/tabs/public-api.d.ts +10 -10
  809. package/tabs/tab-body.component.d.ts +95 -95
  810. package/tabs/tab-content.directive.d.ts +9 -9
  811. package/tabs/tab-group.component.d.ts +133 -133
  812. package/tabs/tab-header.component.d.ts +35 -35
  813. package/tabs/tab-label-wrapper.directive.d.ts +30 -30
  814. package/tabs/tab-label.directive.d.ts +9 -9
  815. package/tabs/tab-nav-bar/index.d.ts +1 -1
  816. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
  817. package/tabs/tab.component.d.ts +66 -66
  818. package/tabs/tabs-animations.d.ts +4 -4
  819. package/tabs/tabs.module.d.ts +20 -20
  820. package/tags/index.d.ts +1 -1
  821. package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
  822. package/tags/public-api.d.ts +5 -5
  823. package/tags/tag-default-options.d.ts +8 -8
  824. package/tags/tag-input.d.ts +77 -77
  825. package/tags/tag-list.component.d.ts +240 -240
  826. package/tags/tag-text-control.d.ts +10 -10
  827. package/tags/tag.component.d.ts +135 -135
  828. package/tags/tag.module.d.ts +11 -11
  829. package/textarea/index.d.ts +1 -1
  830. package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
  831. package/textarea/public-api.d.ts +2 -2
  832. package/textarea/textarea.component.d.ts +111 -111
  833. package/textarea/textarea.module.d.ts +11 -11
  834. package/timepicker/index.d.ts +1 -1
  835. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
  836. package/timepicker/public-api.d.ts +3 -3
  837. package/timepicker/timepicker.constants.d.ts +20 -20
  838. package/timepicker/timepicker.directive.d.ts +147 -142
  839. package/timepicker/timepicker.module.d.ts +11 -11
  840. package/toggle/index.d.ts +1 -1
  841. package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
  842. package/toggle/public-api.d.ts +2 -2
  843. package/toggle/toggle.component.d.ts +54 -54
  844. package/toggle/toggle.module.d.ts +10 -10
  845. package/tooltip/index.d.ts +1 -1
  846. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
  847. package/tooltip/public-api.d.ts +2 -2
  848. package/tooltip/tooltip.animations.d.ts +8 -8
  849. package/tooltip/tooltip.component.d.ts +91 -91
  850. package/tooltip/tooltip.module.d.ts +9 -9
  851. package/tree/control/base-tree-control.d.ts +40 -40
  852. package/tree/control/flat-tree-control.d.ts +48 -48
  853. package/tree/control/nested-tree-control.d.ts +19 -19
  854. package/tree/control/tree-control.d.ts +44 -44
  855. package/tree/data-source/flat-data-source.d.ts +80 -80
  856. package/tree/data-source/nested-data-source.d.ts +15 -15
  857. package/tree/index.d.ts +1 -1
  858. package/tree/node.d.ts +34 -34
  859. package/tree/outlet.d.ts +9 -9
  860. package/tree/padding.directive.d.ts +45 -45
  861. package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
  862. package/tree/public-api.d.ts +15 -15
  863. package/tree/toggle.d.ts +28 -28
  864. package/tree/tree-base.d.ts +97 -97
  865. package/tree/tree-errors.d.ts +25 -25
  866. package/tree/tree-option.component.d.ts +68 -68
  867. package/tree/tree-selection.component.d.ts +132 -130
  868. package/tree/tree.d.ts +6 -6
  869. package/tree/tree.module.d.ts +16 -16
  870. package/tree-select/index.d.ts +1 -1
  871. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
  872. package/tree-select/public-api.d.ts +2 -2
  873. package/tree-select/tree-select.component.d.ts +269 -269
  874. package/tree-select/tree-select.module.d.ts +14 -14
  875. package/schematics/collection.json +0 -4
  876. package/schematics/migration.json +0 -10
  877. package/schematics/ng-update/data/attribute-selectors.d.ts +0 -2
  878. package/schematics/ng-update/data/attribute-selectors.js +0 -5
  879. package/schematics/ng-update/data/attribute-selectors.js.map +0 -1
  880. package/schematics/ng-update/data/class-names.d.ts +0 -2
  881. package/schematics/ng-update/data/class-names.js +0 -5
  882. package/schematics/ng-update/data/class-names.js.map +0 -1
  883. package/schematics/ng-update/data/constructor-checks.d.ts +0 -2
  884. package/schematics/ng-update/data/constructor-checks.js +0 -5
  885. package/schematics/ng-update/data/constructor-checks.js.map +0 -1
  886. package/schematics/ng-update/data/css-selectors.d.ts +0 -2
  887. package/schematics/ng-update/data/css-selectors.js +0 -5
  888. package/schematics/ng-update/data/css-selectors.js.map +0 -1
  889. package/schematics/ng-update/data/element-selectors.d.ts +0 -2
  890. package/schematics/ng-update/data/element-selectors.js +0 -5
  891. package/schematics/ng-update/data/element-selectors.js.map +0 -1
  892. package/schematics/ng-update/data/index.d.ts +0 -10
  893. package/schematics/ng-update/data/index.js +0 -14
  894. package/schematics/ng-update/data/index.js.map +0 -1
  895. package/schematics/ng-update/data/input-names.d.ts +0 -2
  896. package/schematics/ng-update/data/input-names.js +0 -35
  897. package/schematics/ng-update/data/input-names.js.map +0 -1
  898. package/schematics/ng-update/data/method-call-checks.d.ts +0 -2
  899. package/schematics/ng-update/data/method-call-checks.js +0 -5
  900. package/schematics/ng-update/data/method-call-checks.js.map +0 -1
  901. package/schematics/ng-update/data/output-names.d.ts +0 -2
  902. package/schematics/ng-update/data/output-names.js +0 -5
  903. package/schematics/ng-update/data/output-names.js.map +0 -1
  904. package/schematics/ng-update/data/property-names.d.ts +0 -2
  905. package/schematics/ng-update/data/property-names.js +0 -5
  906. package/schematics/ng-update/data/property-names.js.map +0 -1
  907. package/schematics/ng-update/data/symbol-removal.d.ts +0 -2
  908. package/schematics/ng-update/data/symbol-removal.js +0 -5
  909. package/schematics/ng-update/data/symbol-removal.js.map +0 -1
  910. package/schematics/ng-update/index.d.ts +0 -2
  911. package/schematics/ng-update/index.js +0 -23
  912. package/schematics/ng-update/index.js.map +0 -1
  913. package/schematics/ng-update/update-9.0.0/mosaic-symbols.json +0 -255
  914. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.d.ts +0 -7
  915. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +0 -154
  916. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +0 -1
  917. package/schematics/ng-update/upgrade-data.d.ts +0 -2
  918. package/schematics/ng-update/upgrade-data.js +0 -17
  919. package/schematics/ng-update/upgrade-data.js.map +0 -1
  920. package/schematics/tsconfig.json +0 -29
  921. package/schematics/tsconfig.lib-test.json +0 -8
  922. package/schematics/tsconfig.lib.json +0 -17
@@ -1,295 +1,295 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
4
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, NgZone, Optional, Output, ViewContainerRef, ViewEncapsulation } from '@angular/core';
5
- import { McPopUp, McPopUpTrigger, PopUpPlacements, PopUpTriggers, POSITION_TO_CSS_MAP } from '@ptsecurity/mosaic/core';
6
- import { merge } from 'rxjs';
7
- import { mcTooltipAnimations } from './tooltip.animations';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/cdk/overlay";
11
- import * as i3 from "@angular/cdk/bidi";
12
- export var TooltipModifier;
13
- (function (TooltipModifier) {
14
- TooltipModifier["Default"] = "default";
15
- TooltipModifier["Warning"] = "warning";
16
- TooltipModifier["Extended"] = "extended";
17
- })(TooltipModifier || (TooltipModifier = {}));
18
- export const MC_TOOLTIP_OPEN_TIME = new InjectionToken('mc-tooltip-open-time');
19
- /** @docs-private */
20
- export const MC_TOOLTIP_OPEN_TIME_PROVIDER = {
21
- provide: MC_TOOLTIP_OPEN_TIME,
22
- useValue: { value: 0 }
23
- };
24
- export const MIN_TIME_FOR_DELAY = 2000;
25
- export class McTooltipComponent extends McPopUp {
26
- constructor(changeDetectorRef, openTime) {
27
- super(changeDetectorRef);
28
- this.openTime = openTime;
29
- this.prefix = 'mc-tooltip';
30
- }
31
- show(delay) {
32
- if (!this.content) {
33
- return;
34
- }
35
- // tslint:disable-next-line:no-magic-numbers
36
- super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);
37
- this.openTime.value = Date.now();
38
- }
39
- updateClassMap(placement, customClass, { modifier }) {
40
- const classMap = {
41
- [`${this.prefix}_${modifier}`]: true
42
- };
43
- super.updateClassMap(placement, customClass, classMap);
44
- }
45
- }
46
- /** @nocollapse */ /** @nocollapse */ McTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: MC_TOOLTIP_OPEN_TIME }], target: i0.ɵɵFactoryTarget.Component });
47
- /** @nocollapse */ /** @nocollapse */ McTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McTooltipComponent, selector: "mc-tooltip-component", providers: [MC_TOOLTIP_OPEN_TIME_PROVIDER], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tooltip\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"mc-tooltip__inner\">\n <div class=\"mc-tooltip__arrow\"></div>\n\n <div class=\"mc-tooltip__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n <div class=\"mc-tooltip__content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-tooltip__inner{border-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip{box-sizing:border-box;border-radius:var(--mc-tooltip-size-border-radius, 4px);z-index:1060;white-space:pre-line}.mc-tooltip.mc-tooltip_placement-top,.mc-tooltip.mc-tooltip_placement-top-left,.mc-tooltip.mc-tooltip_placement-top-right{margin-bottom:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-right,.mc-tooltip.mc-tooltip_placement-right-top,.mc-tooltip.mc-tooltip_placement-right-bottom{margin-left:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-bottom,.mc-tooltip.mc-tooltip_placement-bottom-left,.mc-tooltip.mc-tooltip_placement-bottom-right{margin-top:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-left,.mc-tooltip.mc-tooltip_placement-left-top,.mc-tooltip.mc-tooltip_placement-left-bottom{margin-right:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_default,.mc-tooltip.mc-tooltip_warning{max-width:var(--mc-tooltip-size-max-width, 300px)}.mc-tooltip.mc-tooltip_default .mc-tooltip__inner,.mc-tooltip.mc-tooltip_warning .mc-tooltip__inner{padding:var(--mc-tooltip-size-padding, 8px 16px)}.mc-tooltip.mc-tooltip_extended{max-height:var(--mc-extended-tooltip-size-max-height, 480px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__header{height:var(--mc-extended-tooltip-header-size-height, 40px);padding:var(--mc-extended-tooltip-header-size-padding, 8px 16px);box-sizing:border-box;border-top-left-radius:var(--mc-tooltip-size-border-radius, 4px);border-top-right-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__content{padding:var(--mc-extended-tooltip-size-padding, 8px 16px)}.mc-tooltip__arrow{position:absolute;width:var(--mc-tooltip-size-arrow-size, 12px);height:var(--mc-tooltip-size-arrow-size, 12px);transform:rotate(45deg)}.mc-tooltip_placement-top .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-top-left .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-top-right .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-right-top .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right-bottom .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-left-top .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left-bottom .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-bottom-left .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom-right .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [mcTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipComponent, decorators: [{
49
- type: Component,
50
- args: [{ selector: 'mc-tooltip-component', animations: [mcTooltipAnimations.tooltipState], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [MC_TOOLTIP_OPEN_TIME_PROVIDER], template: "<div class=\"mc-tooltip\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"mc-tooltip__inner\">\n <div class=\"mc-tooltip__arrow\"></div>\n\n <div class=\"mc-tooltip__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n <div class=\"mc-tooltip__content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-tooltip__inner{border-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip{box-sizing:border-box;border-radius:var(--mc-tooltip-size-border-radius, 4px);z-index:1060;white-space:pre-line}.mc-tooltip.mc-tooltip_placement-top,.mc-tooltip.mc-tooltip_placement-top-left,.mc-tooltip.mc-tooltip_placement-top-right{margin-bottom:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-right,.mc-tooltip.mc-tooltip_placement-right-top,.mc-tooltip.mc-tooltip_placement-right-bottom{margin-left:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-bottom,.mc-tooltip.mc-tooltip_placement-bottom-left,.mc-tooltip.mc-tooltip_placement-bottom-right{margin-top:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-left,.mc-tooltip.mc-tooltip_placement-left-top,.mc-tooltip.mc-tooltip_placement-left-bottom{margin-right:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_default,.mc-tooltip.mc-tooltip_warning{max-width:var(--mc-tooltip-size-max-width, 300px)}.mc-tooltip.mc-tooltip_default .mc-tooltip__inner,.mc-tooltip.mc-tooltip_warning .mc-tooltip__inner{padding:var(--mc-tooltip-size-padding, 8px 16px)}.mc-tooltip.mc-tooltip_extended{max-height:var(--mc-extended-tooltip-size-max-height, 480px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__header{height:var(--mc-extended-tooltip-header-size-height, 40px);padding:var(--mc-extended-tooltip-header-size-padding, 8px 16px);box-sizing:border-box;border-top-left-radius:var(--mc-tooltip-size-border-radius, 4px);border-top-right-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__content{padding:var(--mc-extended-tooltip-size-padding, 8px 16px)}.mc-tooltip__arrow{position:absolute;width:var(--mc-tooltip-size-arrow-size, 12px);height:var(--mc-tooltip-size-arrow-size, 12px);transform:rotate(45deg)}.mc-tooltip_placement-top .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-top-left .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-top-right .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-right-top .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right-bottom .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-left-top .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left-bottom .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-bottom-left .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom-right .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}\n"] }]
51
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [MC_TOOLTIP_OPEN_TIME]
54
- }] }]; } });
55
- export const MC_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mc-tooltip-scroll-strategy');
56
- /** @docs-private */
57
- export function mcTooltipScrollStrategyFactory(overlay) {
58
- return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });
59
- }
60
- /** @docs-private */
61
- export const MC_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {
62
- provide: MC_TOOLTIP_SCROLL_STRATEGY,
63
- deps: [Overlay],
64
- useFactory: mcTooltipScrollStrategyFactory
65
- };
66
- export class McTooltipTrigger extends McPopUpTrigger {
67
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
68
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
69
- this.enterDelay = 400;
70
- this.leaveDelay = 0;
71
- this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
72
- this.placementChange = new EventEmitter();
73
- this.visibleChange = new EventEmitter();
74
- this.originSelector = '.mc-tooltip';
75
- this.overlayConfig = {
76
- panelClass: 'mc-tooltip-panel'
77
- };
78
- this.modifier = TooltipModifier.Default;
79
- }
80
- get tooltipVisible() {
81
- return this.visible;
82
- }
83
- set tooltipVisible(value) {
84
- super.updateVisible(value);
85
- }
86
- get tooltipPlacement() {
87
- return this.placement;
88
- }
89
- set tooltipPlacement(value) {
90
- super.updatePlacement(value);
91
- }
92
- get tooltipPlacementPriority() {
93
- return this.placementPriority;
94
- }
95
- set tooltipPlacementPriority(value) {
96
- super.updatePlacementPriority(value);
97
- }
98
- get content() {
99
- return this._content;
100
- }
101
- set content(content) {
102
- this._content = content;
103
- this.updateData();
104
- }
105
- get disabled() {
106
- return this._disabled;
107
- }
108
- set disabled(value) {
109
- this._disabled = coerceBooleanProperty(value);
110
- }
111
- get trigger() {
112
- return this._trigger;
113
- }
114
- set trigger(value) {
115
- if (value) {
116
- this._trigger = value;
117
- }
118
- else {
119
- this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
120
- }
121
- this.initListeners();
122
- }
123
- get customClass() {
124
- return this._customClass;
125
- }
126
- set customClass(value) {
127
- if (value) {
128
- this._customClass = value;
129
- this.updateClassMap();
130
- }
131
- else {
132
- this._customClass = '';
133
- }
134
- }
135
- updateData() {
136
- if (!this.instance) {
137
- return;
138
- }
139
- this.instance.content = this.content;
140
- this.instance.detectChanges();
141
- }
142
- closingActions() {
143
- return merge(this.overlayRef.outsidePointerEvents(), this.overlayRef.detachments());
144
- }
145
- getOverlayHandleComponentType() {
146
- return McTooltipComponent;
147
- }
148
- updateClassMap(newPlacement = this.placement) {
149
- if (!this.instance) {
150
- return;
151
- }
152
- this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, { modifier: this.modifier });
153
- this.instance.markForCheck();
154
- }
155
- }
156
- /** @nocollapse */ /** @nocollapse */ McTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipTrigger, deps: [{ 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 });
157
- /** @nocollapse */ /** @nocollapse */ McTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTooltipTrigger, selector: "[mcTooltip]", inputs: { tooltipVisible: ["mcVisible", "tooltipVisible"], tooltipPlacement: ["mcPlacement", "tooltipPlacement"], tooltipPlacementPriority: ["mcPlacementPriority", "tooltipPlacementPriority"], content: ["mcTooltip", "content"], disabled: ["mcTooltipDisabled", "disabled"], enterDelay: ["mcEnterDelay", "enterDelay"], leaveDelay: ["mcLeaveDelay", "leaveDelay"], trigger: ["mcTrigger", "trigger"], customClass: ["mcTooltipClass", "customClass"] }, outputs: { placementChange: "mcPlacementChange", visibleChange: "mcVisibleChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcTooltip"], usesInheritance: true, ngImport: i0 });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipTrigger, decorators: [{
159
- type: Directive,
160
- args: [{
161
- selector: '[mcTooltip]',
162
- exportAs: 'mcTooltip',
163
- host: {
164
- '[class.mc-tooltip_open]': 'isOpen',
165
- '(keydown)': 'handleKeydown($event)',
166
- '(touchend)': 'handleTouchend()'
167
- }
168
- }]
169
- }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
170
- type: Inject,
171
- args: [MC_TOOLTIP_SCROLL_STRATEGY]
172
- }] }, { type: i3.Directionality, decorators: [{
173
- type: Optional
174
- }] }]; }, propDecorators: { tooltipVisible: [{
175
- type: Input,
176
- args: ['mcVisible']
177
- }], tooltipPlacement: [{
178
- type: Input,
179
- args: ['mcPlacement']
180
- }], tooltipPlacementPriority: [{
181
- type: Input,
182
- args: ['mcPlacementPriority']
183
- }], content: [{
184
- type: Input,
185
- args: ['mcTooltip']
186
- }], disabled: [{
187
- type: Input,
188
- args: ['mcTooltipDisabled']
189
- }], enterDelay: [{
190
- type: Input,
191
- args: ['mcEnterDelay']
192
- }], leaveDelay: [{
193
- type: Input,
194
- args: ['mcLeaveDelay']
195
- }], trigger: [{
196
- type: Input,
197
- args: ['mcTrigger']
198
- }], customClass: [{
199
- type: Input,
200
- args: ['mcTooltipClass']
201
- }], placementChange: [{
202
- type: Output,
203
- args: ['mcPlacementChange']
204
- }], visibleChange: [{
205
- type: Output,
206
- args: ['mcVisibleChange']
207
- }] } });
208
- export class McWarningTooltipTrigger extends McTooltipTrigger {
209
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
210
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
211
- this.modifier = TooltipModifier.Warning;
212
- }
213
- get content() {
214
- return this._content;
215
- }
216
- set content(content) {
217
- this._content = content;
218
- this.updateData();
219
- }
220
- }
221
- /** @nocollapse */ /** @nocollapse */ McWarningTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McWarningTooltipTrigger, deps: [{ 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 });
222
- /** @nocollapse */ /** @nocollapse */ McWarningTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McWarningTooltipTrigger, selector: "[mcWarningTooltip]", inputs: { content: ["mcWarningTooltip", "content"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcWarningTooltip"], usesInheritance: true, ngImport: i0 });
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McWarningTooltipTrigger, decorators: [{
224
- type: Directive,
225
- args: [{
226
- selector: '[mcWarningTooltip]',
227
- exportAs: 'mcWarningTooltip',
228
- host: {
229
- '[class.mc-tooltip_open]': 'isOpen',
230
- '(keydown)': 'handleKeydown($event)',
231
- '(touchend)': 'handleTouchend()'
232
- }
233
- }]
234
- }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
235
- type: Inject,
236
- args: [MC_TOOLTIP_SCROLL_STRATEGY]
237
- }] }, { type: i3.Directionality, decorators: [{
238
- type: Optional
239
- }] }]; }, propDecorators: { content: [{
240
- type: Input,
241
- args: ['mcWarningTooltip']
242
- }] } });
243
- export class McExtendedTooltipTrigger extends McTooltipTrigger {
244
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
245
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
246
- this.modifier = TooltipModifier.Extended;
247
- }
248
- get content() {
249
- return this._content;
250
- }
251
- set content(content) {
252
- this._content = content;
253
- this.updateData();
254
- }
255
- get header() {
256
- return this._header;
257
- }
258
- set header(header) {
259
- this._header = header;
260
- this.updateData();
261
- }
262
- updateData() {
263
- if (!this.instance) {
264
- return;
265
- }
266
- super.updateData();
267
- this.instance.header = this.header;
268
- }
269
- }
270
- /** @nocollapse */ /** @nocollapse */ McExtendedTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McExtendedTooltipTrigger, deps: [{ 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 });
271
- /** @nocollapse */ /** @nocollapse */ McExtendedTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McExtendedTooltipTrigger, selector: "[mcExtendedTooltip]", inputs: { content: ["mcExtendedTooltip", "content"], header: ["mcTooltipHeader", "header"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcExtendedTooltip"], usesInheritance: true, ngImport: i0 });
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McExtendedTooltipTrigger, decorators: [{
273
- type: Directive,
274
- args: [{
275
- selector: '[mcExtendedTooltip]',
276
- exportAs: 'mcExtendedTooltip',
277
- host: {
278
- '[class.mc-tooltip_open]': 'isOpen',
279
- '(keydown)': 'handleKeydown($event)',
280
- '(touchend)': 'handleTouchend()'
281
- }
282
- }]
283
- }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
284
- type: Inject,
285
- args: [MC_TOOLTIP_SCROLL_STRATEGY]
286
- }] }, { type: i3.Directionality, decorators: [{
287
- type: Optional
288
- }] }]; }, propDecorators: { content: [{
289
- type: Input,
290
- args: ['mcExtendedTooltip']
291
- }], header: [{
292
- type: Input,
293
- args: ['mcTooltipHeader']
294
- }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxPQUFPLEVBQ1AsZ0JBQWdCLEVBRW5CLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUdOLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsc0NBQW1CLENBQUE7SUFDbkIsd0NBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXVCLHNCQUFz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ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgT3ZlcmxheSxcbiAgICBTY3JvbGxEaXNwYXRjaGVyLFxuICAgIFNjcm9sbFN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheS9vdmVybGF5LWNvbmZpZyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWNQb3BVcCwgTWNQb3BVcFRyaWdnZXIsIFBvcFVwUGxhY2VtZW50cywgUG9wVXBUcmlnZ2VycywgUE9TSVRJT05fVE9fQ1NTX01BUCB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IG1jVG9vbHRpcEFuaW1hdGlvbnMgfSBmcm9tICcuL3Rvb2x0aXAuYW5pbWF0aW9ucyc7XG5cblxuZXhwb3J0IGVudW0gVG9vbHRpcE1vZGlmaWVyIHtcbiAgICBEZWZhdWx0ID0gJ2RlZmF1bHQnLFxuICAgIFdhcm5pbmcgPSAnd2FybmluZycsXG4gICAgRXh0ZW5kZWQgPSAnZXh0ZW5kZWQnXG59XG5cbmV4cG9ydCBjb25zdCBNQ19UT09MVElQX09QRU5fVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ21jLXRvb2x0aXAtb3Blbi10aW1lJyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgTUNfVE9PTFRJUF9PUEVOX1RJTUVfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogTUNfVE9PTFRJUF9PUEVOX1RJTUUsXG4gICAgdXNlVmFsdWU6IHsgdmFsdWU6IDAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1JTl9USU1FX0ZPUl9ERUxBWSA9IDIwMDA7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYy10b29sdGlwLWNvbXBvbmVudCcsXG4gICAgYW5pbWF0aW9uczogW21jVG9vbHRpcEFuaW1hdGlvbnMudG9vbHRpcFN0YXRlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtNQ19UT09MVElQX09QRU5fVElNRV9QUk9WSURFUl1cbn0pXG5leHBvcnQgY2xhc3MgTWNUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgTWNQb3BVcCB7XG4gICAgcHJlZml4ID0gJ21jLXRvb2x0aXAnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChNQ19UT09MVElQX09QRU5fVElNRSkgcHJpdmF0ZSBvcGVuVGltZVxuICAgICkge1xuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgc2hvdyhkZWxheTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICBzdXBlci5zaG93KERhdGUubm93KCkgLSB0aGlzLm9wZW5UaW1lLnZhbHVlIDwgTUlOX1RJTUVfRk9SX0RFTEFZID8gMCA6IGRlbGF5KTtcblxuICAgICAgICB0aGlzLm9wZW5UaW1lLnZhbHVlID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01hcChwbGFjZW1lbnQ6IHN0cmluZywgY3VzdG9tQ2xhc3M6IHN0cmluZywgeyBtb2RpZmllciB9KSB7XG4gICAgICAgIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4fV8ke21vZGlmaWVyfWBdOiB0cnVlXG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIudXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50LCBjdXN0b21DbGFzcywgY2xhc3NNYXApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IE1DX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZID1cbiAgICBuZXcgSW5qZWN0aW9uVG9rZW48KCkgPT4gU2Nyb2xsU3RyYXRlZ3k+KCdtYy10b29sdGlwLXNjcm9sbC1zdHJhdGVneScpO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1jVG9vbHRpcFNjcm9sbFN0cmF0ZWd5RmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBNQ19UT09MVElQX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IE1DX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZLFxuICAgIGRlcHM6IFtPdmVybGF5XSxcbiAgICB1c2VGYWN0b3J5OiBtY1Rvb2x0aXBTY3JvbGxTdHJhdGVneUZhY3Rvcnlcbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21jVG9vbHRpcF0nLFxuICAgIGV4cG9ydEFzOiAnbWNUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MubWMtdG9vbHRpcF9vcGVuXSc6ICdpc09wZW4nLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnaGFuZGxlS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJyh0b3VjaGVuZCknOiAnaGFuZGxlVG91Y2hlbmQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jVG9vbHRpcFRyaWdnZXIgZXh0ZW5kcyBNY1BvcFVwVHJpZ2dlcjxNY1Rvb2x0aXBDb21wb25lbnQ+IHtcbiAgICBASW5wdXQoJ21jVmlzaWJsZScpXG4gICAgZ2V0IHRvb2x0aXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xuICAgIH1cblxuICAgIHNldCB0b29sdGlwVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBzdXBlci51cGRhdGVWaXNpYmxlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ21jUGxhY2VtZW50JylcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgc2V0IHRvb2x0aXBQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgnbWNQbGFjZW1lbnRQcmlvcml0eScpXG4gICAgZ2V0IHRvb2x0aXBQbGFjZW1lbnRQcmlvcml0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhY2VtZW50UHJpb3JpdHk7XG4gICAgfVxuXG4gICAgc2V0IHRvb2x0aXBQbGFjZW1lbnRQcmlvcml0eSh2YWx1ZSkge1xuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnRQcmlvcml0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdtY1Rvb2x0aXAnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgnbWNUb29sdGlwRGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdtY0VudGVyRGVsYXknKSBlbnRlckRlbGF5ID0gNDAwO1xuICAgIEBJbnB1dCgnbWNMZWF2ZURlbGF5JykgbGVhdmVEZWxheSA9IDA7XG5cbiAgICBASW5wdXQoJ21jVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSBgJHtQb3BVcFRyaWdnZXJzLkhvdmVyfSwgJHtQb3BVcFRyaWdnZXJzLkZvY3VzfWA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90cmlnZ2VyID0gYCR7UG9wVXBUcmlnZ2Vycy5Ib3Zlcn0sICR7UG9wVXBUcmlnZ2Vycy5Gb2N1c31gO1xuXG4gICAgQElucHV0KCdtY1Rvb2x0aXBDbGFzcycpXG4gICAgZ2V0IGN1c3RvbUNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcbiAgICB9XG5cbiAgICBzZXQgY3VzdG9tQ2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbUNsYXNzID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbUNsYXNzID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCdtY1BsYWNlbWVudENoYW5nZScpIHBsYWNlbWVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoJ21jVmlzaWJsZUNoYW5nZScpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb3JpZ2luU2VsZWN0b3IgPSAnLm1jLXRvb2x0aXAnO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJsYXlDb25maWc6IE92ZXJsYXlDb25maWcgPSB7XG4gICAgICAgIHBhbmVsQ2xhc3M6ICdtYy10b29sdGlwLXBhbmVsJ1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5EZWZhdWx0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBob3N0VmlldzogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChNQ19UT09MVElQX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgIEBPcHRpb25hbCgpIGRpcmVjdGlvbjogRGlyZWN0aW9uYWxpdHlcbiAgICApIHtcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgY2xvc2luZ0FjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiEub3V0c2lkZVBvaW50ZXJFdmVudHMoKSxcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiEuZGV0YWNobWVudHMoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8TWNUb29sdGlwQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiBNY1Rvb2x0aXBDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAobmV3UGxhY2VtZW50OiBzdHJpbmcgPSB0aGlzLnBsYWNlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVDbGFzc01hcChcbiAgICAgICAgICAgIFBPU0lUSU9OX1RPX0NTU19NQVBbbmV3UGxhY2VtZW50XSxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ2xhc3MsXG4gICAgICAgICAgICB7IG1vZGlmaWVyOiB0aGlzLm1vZGlmaWVyIH1cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWNXYXJuaW5nVG9vbHRpcF0nLFxuICAgIGV4cG9ydEFzOiAnbWNXYXJuaW5nVG9vbHRpcCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLm1jLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNY1dhcm5pbmdUb29sdGlwVHJpZ2dlciBleHRlbmRzIE1jVG9vbHRpcFRyaWdnZXIge1xuICAgIEBJbnB1dCgnbWNXYXJuaW5nVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuV2FybmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoTUNfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICBAT3B0aW9uYWwoKSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG92ZXJsYXksIGVsZW1lbnRSZWYsIG5nWm9uZSwgc2Nyb2xsRGlzcGF0Y2hlciwgaG9zdFZpZXcsIHNjcm9sbFN0cmF0ZWd5LCBkaXJlY3Rpb24pO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWNFeHRlbmRlZFRvb2x0aXBdJyxcbiAgICBleHBvcnRBczogJ21jRXh0ZW5kZWRUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MubWMtdG9vbHRpcF9vcGVuXSc6ICdpc09wZW4nLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnaGFuZGxlS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJyh0b3VjaGVuZCknOiAnaGFuZGxlVG91Y2hlbmQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jRXh0ZW5kZWRUb29sdGlwVHJpZ2dlciBleHRlbmRzIE1jVG9vbHRpcFRyaWdnZXIge1xuICAgIEBJbnB1dCgnbWNFeHRlbmRlZFRvb2x0aXAnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgnbWNUb29sdGlwSGVhZGVyJylcbiAgICBnZXQgaGVhZGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXIoaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IGhlYWRlcjtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5FeHRlbmRlZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoTUNfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICBAT3B0aW9uYWwoKSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKG92ZXJsYXksIGVsZW1lbnRSZWYsIG5nWm9uZSwgc2Nyb2xsRGlzcGF0Y2hlciwgaG9zdFZpZXcsIHNjcm9sbFN0cmF0ZWd5LCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkgeyByZXR1cm47IH1cblxuICAgICAgICBzdXBlci51cGRhdGVEYXRhKCk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGVhZGVyID0gdGhpcy5oZWFkZXI7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLXRvb2x0aXBcIlxuICAgICBbbmdDbGFzc109XCJjbGFzc01hcFwiXG4gICAgIFtAc3RhdGVdPVwidmlzaWJpbGl0eVwiXG4gICAgIChAc3RhdGUuc3RhcnQpPVwiYW5pbWF0aW9uU3RhcnQoKVwiXG4gICAgIChAc3RhdGUuZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy10b29sdGlwX19pbm5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9vbHRpcF9fYXJyb3dcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9vbHRpcF9faGVhZGVyXCIgKm5nSWY9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGhlYWRlcilcIiBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGhlYWRlcilcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZVJlZihoZWFkZXIpXCI+XG4gICAgICAgICAgICAgICAgPGRpdj57eyBoZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvb2x0aXBfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGNvbnRlbnQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShjb250ZW50KVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGNvbnRlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGRpdj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
1
+ import { Directionality } from '@angular/cdk/bidi';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, NgZone, Optional, Output, ViewContainerRef, ViewEncapsulation } from '@angular/core';
5
+ import { McPopUp, McPopUpTrigger, PopUpPlacements, PopUpTriggers, POSITION_TO_CSS_MAP } from '@ptsecurity/mosaic/core';
6
+ import { merge } from 'rxjs';
7
+ import { mcTooltipAnimations } from './tooltip.animations';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@angular/cdk/overlay";
11
+ import * as i3 from "@angular/cdk/bidi";
12
+ export var TooltipModifier;
13
+ (function (TooltipModifier) {
14
+ TooltipModifier["Default"] = "default";
15
+ TooltipModifier["Warning"] = "warning";
16
+ TooltipModifier["Extended"] = "extended";
17
+ })(TooltipModifier || (TooltipModifier = {}));
18
+ export const MC_TOOLTIP_OPEN_TIME = new InjectionToken('mc-tooltip-open-time');
19
+ /** @docs-private */
20
+ export const MC_TOOLTIP_OPEN_TIME_PROVIDER = {
21
+ provide: MC_TOOLTIP_OPEN_TIME,
22
+ useValue: { value: 0 }
23
+ };
24
+ export const MIN_TIME_FOR_DELAY = 2000;
25
+ export class McTooltipComponent extends McPopUp {
26
+ constructor(changeDetectorRef, openTime) {
27
+ super(changeDetectorRef);
28
+ this.openTime = openTime;
29
+ this.prefix = 'mc-tooltip';
30
+ }
31
+ show(delay) {
32
+ if (!this.content) {
33
+ return;
34
+ }
35
+ // tslint:disable-next-line:no-magic-numbers
36
+ super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);
37
+ this.openTime.value = Date.now();
38
+ }
39
+ updateClassMap(placement, customClass, { modifier }) {
40
+ const classMap = {
41
+ [`${this.prefix}_${modifier}`]: true
42
+ };
43
+ super.updateClassMap(placement, customClass, classMap);
44
+ }
45
+ }
46
+ /** @nocollapse */ /** @nocollapse */ McTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: MC_TOOLTIP_OPEN_TIME }], target: i0.ɵɵFactoryTarget.Component });
47
+ /** @nocollapse */ /** @nocollapse */ McTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McTooltipComponent, selector: "mc-tooltip-component", providers: [MC_TOOLTIP_OPEN_TIME_PROVIDER], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tooltip\"\r\n [ngClass]=\"classMap\"\r\n [@state]=\"visibility\"\r\n (@state.start)=\"animationStart()\"\r\n (@state.done)=\"animationDone($event)\">\r\n\r\n <div class=\"mc-tooltip__inner\">\r\n <div class=\"mc-tooltip__arrow\"></div>\r\n\r\n <div class=\"mc-tooltip__header\" *ngIf=\"header\">\r\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\r\n <ng-container *ngIf=\"!isTemplateRef(header)\">\r\n <div>{{ header }}</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"mc-tooltip__content\">\r\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n <ng-container *ngIf=\"!isTemplateRef(content)\">\r\n <div>{{ content }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".mc-tooltip__inner{border-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip{box-sizing:border-box;border-radius:var(--mc-tooltip-size-border-radius, 4px);z-index:1060;white-space:pre-line}.mc-tooltip.mc-tooltip_placement-top,.mc-tooltip.mc-tooltip_placement-top-left,.mc-tooltip.mc-tooltip_placement-top-right{margin-bottom:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-right,.mc-tooltip.mc-tooltip_placement-right-top,.mc-tooltip.mc-tooltip_placement-right-bottom{margin-left:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-bottom,.mc-tooltip.mc-tooltip_placement-bottom-left,.mc-tooltip.mc-tooltip_placement-bottom-right{margin-top:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-left,.mc-tooltip.mc-tooltip_placement-left-top,.mc-tooltip.mc-tooltip_placement-left-bottom{margin-right:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_default,.mc-tooltip.mc-tooltip_warning{max-width:var(--mc-tooltip-size-max-width, 300px)}.mc-tooltip.mc-tooltip_default .mc-tooltip__inner,.mc-tooltip.mc-tooltip_warning .mc-tooltip__inner{padding:var(--mc-tooltip-size-padding, 8px 16px)}.mc-tooltip.mc-tooltip_extended{max-height:var(--mc-extended-tooltip-size-max-height, 480px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__header{height:var(--mc-extended-tooltip-header-size-height, 40px);padding:var(--mc-extended-tooltip-header-size-padding, 8px 16px);box-sizing:border-box;border-top-left-radius:var(--mc-tooltip-size-border-radius, 4px);border-top-right-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__content{padding:var(--mc-extended-tooltip-size-padding, 8px 16px)}.mc-tooltip__arrow{position:absolute;width:var(--mc-tooltip-size-arrow-size, 12px);height:var(--mc-tooltip-size-arrow-size, 12px);transform:rotate(45deg)}.mc-tooltip_placement-top .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-top-left .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-top-right .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-right-top .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right-bottom .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-left-top .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left-bottom .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-bottom-left .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom-right .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [mcTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'mc-tooltip-component', animations: [mcTooltipAnimations.tooltipState], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [MC_TOOLTIP_OPEN_TIME_PROVIDER], template: "<div class=\"mc-tooltip\"\r\n [ngClass]=\"classMap\"\r\n [@state]=\"visibility\"\r\n (@state.start)=\"animationStart()\"\r\n (@state.done)=\"animationDone($event)\">\r\n\r\n <div class=\"mc-tooltip__inner\">\r\n <div class=\"mc-tooltip__arrow\"></div>\r\n\r\n <div class=\"mc-tooltip__header\" *ngIf=\"header\">\r\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\r\n <ng-container *ngIf=\"!isTemplateRef(header)\">\r\n <div>{{ header }}</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"mc-tooltip__content\">\r\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n <ng-container *ngIf=\"!isTemplateRef(content)\">\r\n <div>{{ content }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".mc-tooltip__inner{border-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip{box-sizing:border-box;border-radius:var(--mc-tooltip-size-border-radius, 4px);z-index:1060;white-space:pre-line}.mc-tooltip.mc-tooltip_placement-top,.mc-tooltip.mc-tooltip_placement-top-left,.mc-tooltip.mc-tooltip_placement-top-right{margin-bottom:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-right,.mc-tooltip.mc-tooltip_placement-right-top,.mc-tooltip.mc-tooltip_placement-right-bottom{margin-left:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-bottom,.mc-tooltip.mc-tooltip_placement-bottom-left,.mc-tooltip.mc-tooltip_placement-bottom-right{margin-top:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_placement-left,.mc-tooltip.mc-tooltip_placement-left-top,.mc-tooltip.mc-tooltip_placement-left-bottom{margin-right:calc(var(--mc-tooltip-size-trigger-margin, 9px))}.mc-tooltip.mc-tooltip_default,.mc-tooltip.mc-tooltip_warning{max-width:var(--mc-tooltip-size-max-width, 300px)}.mc-tooltip.mc-tooltip_default .mc-tooltip__inner,.mc-tooltip.mc-tooltip_warning .mc-tooltip__inner{padding:var(--mc-tooltip-size-padding, 8px 16px)}.mc-tooltip.mc-tooltip_extended{max-height:var(--mc-extended-tooltip-size-max-height, 480px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__header{height:var(--mc-extended-tooltip-header-size-height, 40px);padding:var(--mc-extended-tooltip-header-size-padding, 8px 16px);box-sizing:border-box;border-top-left-radius:var(--mc-tooltip-size-border-radius, 4px);border-top-right-radius:var(--mc-tooltip-size-border-radius, 4px)}.mc-tooltip.mc-tooltip_extended .mc-tooltip__content{padding:var(--mc-extended-tooltip-size-padding, 8px 16px)}.mc-tooltip__arrow{position:absolute;width:var(--mc-tooltip-size-arrow-size, 12px);height:var(--mc-tooltip-size-arrow-size, 12px);transform:rotate(45deg)}.mc-tooltip_placement-top .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-top-left .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-top-right .mc-tooltip__arrow{bottom:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-right-top .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-right-bottom .mc-tooltip__arrow{left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:50%;margin-top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-left-top .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);top:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-left-bottom .mc-tooltip__arrow{right:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);bottom:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:50%;margin-left:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2)}.mc-tooltip_placement-bottom-left .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);left:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}.mc-tooltip_placement-bottom-right .mc-tooltip__arrow{top:calc((var(--mc-tooltip-size-arrow-size, 12px) - 1px) / -2);right:calc(18px - var(--mc-tooltip-size-trigger-margin, 9px) / 2)}\n"] }]
51
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
52
+ type: Inject,
53
+ args: [MC_TOOLTIP_OPEN_TIME]
54
+ }] }]; } });
55
+ export const MC_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mc-tooltip-scroll-strategy');
56
+ /** @docs-private */
57
+ export function mcTooltipScrollStrategyFactory(overlay) {
58
+ return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });
59
+ }
60
+ /** @docs-private */
61
+ export const MC_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {
62
+ provide: MC_TOOLTIP_SCROLL_STRATEGY,
63
+ deps: [Overlay],
64
+ useFactory: mcTooltipScrollStrategyFactory
65
+ };
66
+ export class McTooltipTrigger extends McPopUpTrigger {
67
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
68
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
69
+ this.enterDelay = 400;
70
+ this.leaveDelay = 0;
71
+ this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
72
+ this.placementChange = new EventEmitter();
73
+ this.visibleChange = new EventEmitter();
74
+ this.originSelector = '.mc-tooltip';
75
+ this.overlayConfig = {
76
+ panelClass: 'mc-tooltip-panel'
77
+ };
78
+ this.modifier = TooltipModifier.Default;
79
+ }
80
+ get tooltipVisible() {
81
+ return this.visible;
82
+ }
83
+ set tooltipVisible(value) {
84
+ super.updateVisible(value);
85
+ }
86
+ get tooltipPlacement() {
87
+ return this.placement;
88
+ }
89
+ set tooltipPlacement(value) {
90
+ super.updatePlacement(value);
91
+ }
92
+ get tooltipPlacementPriority() {
93
+ return this.placementPriority;
94
+ }
95
+ set tooltipPlacementPriority(value) {
96
+ super.updatePlacementPriority(value);
97
+ }
98
+ get content() {
99
+ return this._content;
100
+ }
101
+ set content(content) {
102
+ this._content = content;
103
+ this.updateData();
104
+ }
105
+ get disabled() {
106
+ return this._disabled;
107
+ }
108
+ set disabled(value) {
109
+ this._disabled = coerceBooleanProperty(value);
110
+ }
111
+ get trigger() {
112
+ return this._trigger;
113
+ }
114
+ set trigger(value) {
115
+ if (value) {
116
+ this._trigger = value;
117
+ }
118
+ else {
119
+ this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;
120
+ }
121
+ this.initListeners();
122
+ }
123
+ get customClass() {
124
+ return this._customClass;
125
+ }
126
+ set customClass(value) {
127
+ if (value) {
128
+ this._customClass = value;
129
+ this.updateClassMap();
130
+ }
131
+ else {
132
+ this._customClass = '';
133
+ }
134
+ }
135
+ updateData() {
136
+ if (!this.instance) {
137
+ return;
138
+ }
139
+ this.instance.content = this.content;
140
+ this.instance.detectChanges();
141
+ }
142
+ closingActions() {
143
+ return merge(this.overlayRef.outsidePointerEvents(), this.overlayRef.detachments());
144
+ }
145
+ getOverlayHandleComponentType() {
146
+ return McTooltipComponent;
147
+ }
148
+ updateClassMap(newPlacement = this.placement) {
149
+ if (!this.instance) {
150
+ return;
151
+ }
152
+ this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, { modifier: this.modifier });
153
+ this.instance.markForCheck();
154
+ }
155
+ }
156
+ /** @nocollapse */ /** @nocollapse */ McTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipTrigger, deps: [{ 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 });
157
+ /** @nocollapse */ /** @nocollapse */ McTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTooltipTrigger, selector: "[mcTooltip]", inputs: { tooltipVisible: ["mcVisible", "tooltipVisible"], tooltipPlacement: ["mcPlacement", "tooltipPlacement"], tooltipPlacementPriority: ["mcPlacementPriority", "tooltipPlacementPriority"], content: ["mcTooltip", "content"], disabled: ["mcTooltipDisabled", "disabled"], enterDelay: ["mcEnterDelay", "enterDelay"], leaveDelay: ["mcLeaveDelay", "leaveDelay"], trigger: ["mcTrigger", "trigger"], customClass: ["mcTooltipClass", "customClass"] }, outputs: { placementChange: "mcPlacementChange", visibleChange: "mcVisibleChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcTooltip"], usesInheritance: true, ngImport: i0 });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTooltipTrigger, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: '[mcTooltip]',
162
+ exportAs: 'mcTooltip',
163
+ host: {
164
+ '[class.mc-tooltip_open]': 'isOpen',
165
+ '(keydown)': 'handleKeydown($event)',
166
+ '(touchend)': 'handleTouchend()'
167
+ }
168
+ }]
169
+ }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
170
+ type: Inject,
171
+ args: [MC_TOOLTIP_SCROLL_STRATEGY]
172
+ }] }, { type: i3.Directionality, decorators: [{
173
+ type: Optional
174
+ }] }]; }, propDecorators: { tooltipVisible: [{
175
+ type: Input,
176
+ args: ['mcVisible']
177
+ }], tooltipPlacement: [{
178
+ type: Input,
179
+ args: ['mcPlacement']
180
+ }], tooltipPlacementPriority: [{
181
+ type: Input,
182
+ args: ['mcPlacementPriority']
183
+ }], content: [{
184
+ type: Input,
185
+ args: ['mcTooltip']
186
+ }], disabled: [{
187
+ type: Input,
188
+ args: ['mcTooltipDisabled']
189
+ }], enterDelay: [{
190
+ type: Input,
191
+ args: ['mcEnterDelay']
192
+ }], leaveDelay: [{
193
+ type: Input,
194
+ args: ['mcLeaveDelay']
195
+ }], trigger: [{
196
+ type: Input,
197
+ args: ['mcTrigger']
198
+ }], customClass: [{
199
+ type: Input,
200
+ args: ['mcTooltipClass']
201
+ }], placementChange: [{
202
+ type: Output,
203
+ args: ['mcPlacementChange']
204
+ }], visibleChange: [{
205
+ type: Output,
206
+ args: ['mcVisibleChange']
207
+ }] } });
208
+ export class McWarningTooltipTrigger extends McTooltipTrigger {
209
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
210
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
211
+ this.modifier = TooltipModifier.Warning;
212
+ }
213
+ get content() {
214
+ return this._content;
215
+ }
216
+ set content(content) {
217
+ this._content = content;
218
+ this.updateData();
219
+ }
220
+ }
221
+ /** @nocollapse */ /** @nocollapse */ McWarningTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McWarningTooltipTrigger, deps: [{ 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 });
222
+ /** @nocollapse */ /** @nocollapse */ McWarningTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McWarningTooltipTrigger, selector: "[mcWarningTooltip]", inputs: { content: ["mcWarningTooltip", "content"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcWarningTooltip"], usesInheritance: true, ngImport: i0 });
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McWarningTooltipTrigger, decorators: [{
224
+ type: Directive,
225
+ args: [{
226
+ selector: '[mcWarningTooltip]',
227
+ exportAs: 'mcWarningTooltip',
228
+ host: {
229
+ '[class.mc-tooltip_open]': 'isOpen',
230
+ '(keydown)': 'handleKeydown($event)',
231
+ '(touchend)': 'handleTouchend()'
232
+ }
233
+ }]
234
+ }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
235
+ type: Inject,
236
+ args: [MC_TOOLTIP_SCROLL_STRATEGY]
237
+ }] }, { type: i3.Directionality, decorators: [{
238
+ type: Optional
239
+ }] }]; }, propDecorators: { content: [{
240
+ type: Input,
241
+ args: ['mcWarningTooltip']
242
+ }] } });
243
+ export class McExtendedTooltipTrigger extends McTooltipTrigger {
244
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
245
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
246
+ this.modifier = TooltipModifier.Extended;
247
+ }
248
+ get content() {
249
+ return this._content;
250
+ }
251
+ set content(content) {
252
+ this._content = content;
253
+ this.updateData();
254
+ }
255
+ get header() {
256
+ return this._header;
257
+ }
258
+ set header(header) {
259
+ this._header = header;
260
+ this.updateData();
261
+ }
262
+ updateData() {
263
+ if (!this.instance) {
264
+ return;
265
+ }
266
+ super.updateData();
267
+ this.instance.header = this.header;
268
+ }
269
+ }
270
+ /** @nocollapse */ /** @nocollapse */ McExtendedTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McExtendedTooltipTrigger, deps: [{ 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 });
271
+ /** @nocollapse */ /** @nocollapse */ McExtendedTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McExtendedTooltipTrigger, selector: "[mcExtendedTooltip]", inputs: { content: ["mcExtendedTooltip", "content"], header: ["mcTooltipHeader", "header"] }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.mc-tooltip_open": "isOpen" } }, exportAs: ["mcExtendedTooltip"], usesInheritance: true, ngImport: i0 });
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McExtendedTooltipTrigger, decorators: [{
273
+ type: Directive,
274
+ args: [{
275
+ selector: '[mcExtendedTooltip]',
276
+ exportAs: 'mcExtendedTooltip',
277
+ host: {
278
+ '[class.mc-tooltip_open]': 'isOpen',
279
+ '(keydown)': 'handleKeydown($event)',
280
+ '(touchend)': 'handleTouchend()'
281
+ }
282
+ }]
283
+ }], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
284
+ type: Inject,
285
+ args: [MC_TOOLTIP_SCROLL_STRATEGY]
286
+ }] }, { type: i3.Directionality, decorators: [{
287
+ type: Optional
288
+ }] }]; }, propDecorators: { content: [{
289
+ type: Input,
290
+ args: ['mcExtendedTooltip']
291
+ }], header: [{
292
+ type: Input,
293
+ args: ['mcTooltipHeader']
294
+ }] } });
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxPQUFPLEVBQ1AsZ0JBQWdCLEVBRW5CLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUdOLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsc0NBQW1CLENBQUE7SUFDbkIsd0NBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXVCLHNCQUFz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ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgT3ZlcmxheSxcclxuICAgIFNjcm9sbERpc3BhdGNoZXIsXHJcbiAgICBTY3JvbGxTdHJhdGVneVxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5L292ZXJsYXktY29uZmlnJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0aW9uVG9rZW4sXHJcbiAgICBJbnB1dCxcclxuICAgIE5nWm9uZSxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBUeXBlLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1jUG9wVXAsIE1jUG9wVXBUcmlnZ2VyLCBQb3BVcFBsYWNlbWVudHMsIFBvcFVwVHJpZ2dlcnMsIFBPU0lUSU9OX1RPX0NTU19NQVAgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XHJcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBtY1Rvb2x0aXBBbmltYXRpb25zIH0gZnJvbSAnLi90b29sdGlwLmFuaW1hdGlvbnMnO1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIFRvb2x0aXBNb2RpZmllciB7XHJcbiAgICBEZWZhdWx0ID0gJ2RlZmF1bHQnLFxyXG4gICAgV2FybmluZyA9ICd3YXJuaW5nJyxcclxuICAgIEV4dGVuZGVkID0gJ2V4dGVuZGVkJ1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTUNfVE9PTFRJUF9PUEVOX1RJTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48KCkgPT4gU2Nyb2xsU3RyYXRlZ3k+KCdtYy10b29sdGlwLW9wZW4tdGltZScpO1xyXG5cclxuLyoqIEBkb2NzLXByaXZhdGUgKi9cclxuZXhwb3J0IGNvbnN0IE1DX1RPT0xUSVBfT1BFTl9USU1FX1BST1ZJREVSID0ge1xyXG4gICAgcHJvdmlkZTogTUNfVE9PTFRJUF9PUEVOX1RJTUUsXHJcbiAgICB1c2VWYWx1ZTogeyB2YWx1ZTogMCB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTUlOX1RJTUVfRk9SX0RFTEFZID0gMjAwMDtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWMtdG9vbHRpcC1jb21wb25lbnQnLFxyXG4gICAgYW5pbWF0aW9uczogW21jVG9vbHRpcEFuaW1hdGlvbnMudG9vbHRpcFN0YXRlXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Rvb2x0aXAuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbTUNfVE9PTFRJUF9PUEVOX1RJTUVfUFJPVklERVJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNY1Rvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBNY1BvcFVwIHtcclxuICAgIHByZWZpeCA9ICdtYy10b29sdGlwJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgQEluamVjdChNQ19UT09MVElQX09QRU5fVElNRSkgcHJpdmF0ZSBvcGVuVGltZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3coZGVsYXk6IG51bWJlcikge1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXHJcbiAgICAgICAgc3VwZXIuc2hvdyhEYXRlLm5vdygpIC0gdGhpcy5vcGVuVGltZS52YWx1ZSA8IE1JTl9USU1FX0ZPUl9ERUxBWSA/IDAgOiBkZWxheSk7XHJcblxyXG4gICAgICAgIHRoaXMub3BlblRpbWUudmFsdWUgPSBEYXRlLm5vdygpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudDogc3RyaW5nLCBjdXN0b21DbGFzczogc3RyaW5nLCB7IG1vZGlmaWVyIH0pIHtcclxuICAgICAgICBjb25zdCBjbGFzc01hcCA9IHtcclxuICAgICAgICAgICAgW2Ake3RoaXMucHJlZml4fV8ke21vZGlmaWVyfWBdOiB0cnVlXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgc3VwZXIudXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50LCBjdXN0b21DbGFzcywgY2xhc3NNYXApO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTUNfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kgPVxyXG4gICAgbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5PignbWMtdG9vbHRpcC1zY3JvbGwtc3RyYXRlZ3knKTtcclxuXHJcbi8qKiBAZG9jcy1wcml2YXRlICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtY1Rvb2x0aXBTY3JvbGxTdHJhdGVneUZhY3Rvcnkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IFNjcm9sbFN0cmF0ZWd5IHtcclxuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcclxufVxyXG5cclxuLyoqIEBkb2NzLXByaXZhdGUgKi9cclxuZXhwb3J0IGNvbnN0IE1DX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XHJcbiAgICBwcm92aWRlOiBNQ19UT09MVElQX1NDUk9MTF9TVFJBVEVHWSxcclxuICAgIGRlcHM6IFtPdmVybGF5XSxcclxuICAgIHVzZUZhY3Rvcnk6IG1jVG9vbHRpcFNjcm9sbFN0cmF0ZWd5RmFjdG9yeVxyXG59O1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1ttY1Rvb2x0aXBdJyxcclxuICAgIGV4cG9ydEFzOiAnbWNUb29sdGlwJyxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnW2NsYXNzLm1jLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcclxuXHJcbiAgICAgICAgJyhrZXlkb3duKSc6ICdoYW5kbGVLZXlkb3duKCRldmVudCknLFxyXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNY1Rvb2x0aXBUcmlnZ2VyIGV4dGVuZHMgTWNQb3BVcFRyaWdnZXI8TWNUb29sdGlwQ29tcG9uZW50PiB7XHJcbiAgICBASW5wdXQoJ21jVmlzaWJsZScpXHJcbiAgICBnZXQgdG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdG9vbHRpcFZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICBzdXBlci51cGRhdGVWaXNpYmxlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoJ21jUGxhY2VtZW50JylcclxuICAgIGdldCB0b29sdGlwUGxhY2VtZW50KCk6IFBvcFVwUGxhY2VtZW50cyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhY2VtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB0b29sdGlwUGxhY2VtZW50KHZhbHVlOiBQb3BVcFBsYWNlbWVudHMpIHtcclxuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgnbWNQbGFjZW1lbnRQcmlvcml0eScpXHJcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudFByaW9yaXR5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlbWVudFByaW9yaXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB0b29sdGlwUGxhY2VtZW50UHJpb3JpdHkodmFsdWUpIHtcclxuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnRQcmlvcml0eSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCdtY1Rvb2x0aXAnKVxyXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoJ21jVG9vbHRpcERpc2FibGVkJylcclxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgnbWNFbnRlckRlbGF5JykgZW50ZXJEZWxheSA9IDQwMDtcclxuICAgIEBJbnB1dCgnbWNMZWF2ZURlbGF5JykgbGVhdmVEZWxheSA9IDA7XHJcblxyXG4gICAgQElucHV0KCdtY1RyaWdnZXInKVxyXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyID0gYCR7UG9wVXBUcmlnZ2Vycy5Ib3Zlcn0sICR7UG9wVXBUcmlnZ2Vycy5Gb2N1c31gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbml0TGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9LCAke1BvcFVwVHJpZ2dlcnMuRm9jdXN9YDtcclxuXHJcbiAgICBASW5wdXQoJ21jVG9vbHRpcENsYXNzJylcclxuICAgIGdldCBjdXN0b21DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY3VzdG9tQ2xhc3ModmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21DbGFzcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2N1c3RvbUNsYXNzID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoJ21jUGxhY2VtZW50Q2hhbmdlJykgcGxhY2VtZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBPdXRwdXQoJ21jVmlzaWJsZUNoYW5nZScpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5tYy10b29sdGlwJztcclxuXHJcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgICBwYW5lbENsYXNzOiAnbWMtdG9vbHRpcC1wYW5lbCdcclxuICAgIH07XHJcblxyXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuRGVmYXVsdDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcclxuICAgICAgICBob3N0VmlldzogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBASW5qZWN0KE1DX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihvdmVybGF5LCBlbGVtZW50UmVmLCBuZ1pvbmUsIHNjcm9sbERpc3BhdGNoZXIsIGhvc3RWaWV3LCBzY3JvbGxTdHJhdGVneSwgZGlyZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVEYXRhKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xyXG4gICAgICAgIHJldHVybiBtZXJnZShcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmIS5vdXRzaWRlUG9pbnRlckV2ZW50cygpLFxyXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLmRldGFjaG1lbnRzKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8TWNUb29sdGlwQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIE1jVG9vbHRpcENvbXBvbmVudDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ6IHN0cmluZyA9IHRoaXMucGxhY2VtZW50KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB0aGlzLmluc3RhbmNlLnVwZGF0ZUNsYXNzTWFwKFxyXG4gICAgICAgICAgICBQT1NJVElPTl9UT19DU1NfTUFQW25ld1BsYWNlbWVudF0sXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ2xhc3MsXHJcbiAgICAgICAgICAgIHsgbW9kaWZpZXI6IHRoaXMubW9kaWZpZXIgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbbWNXYXJuaW5nVG9vbHRpcF0nLFxyXG4gICAgZXhwb3J0QXM6ICdtY1dhcm5pbmdUb29sdGlwJyxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICAnW2NsYXNzLm1jLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcclxuXHJcbiAgICAgICAgJyhrZXlkb3duKSc6ICdoYW5kbGVLZXlkb3duKCRldmVudCknLFxyXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNY1dhcm5pbmdUb29sdGlwVHJpZ2dlciBleHRlbmRzIE1jVG9vbHRpcFRyaWdnZXIge1xyXG4gICAgQElucHV0KCdtY1dhcm5pbmdUb29sdGlwJylcclxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuV2FybmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcclxuICAgICAgICBob3N0VmlldzogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBASW5qZWN0KE1DX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihvdmVybGF5LCBlbGVtZW50UmVmLCBuZ1pvbmUsIHNjcm9sbERpc3BhdGNoZXIsIGhvc3RWaWV3LCBzY3JvbGxTdHJhdGVneSwgZGlyZWN0aW9uKTtcclxuICAgIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1ttY0V4dGVuZGVkVG9vbHRpcF0nLFxyXG4gICAgZXhwb3J0QXM6ICdtY0V4dGVuZGVkVG9vbHRpcCcsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ1tjbGFzcy5tYy10b29sdGlwX29wZW5dJzogJ2lzT3BlbicsXHJcblxyXG4gICAgICAgICcoa2V5ZG93biknOiAnaGFuZGxlS2V5ZG93bigkZXZlbnQpJyxcclxuICAgICAgICAnKHRvdWNoZW5kKSc6ICdoYW5kbGVUb3VjaGVuZCgpJ1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWNFeHRlbmRlZFRvb2x0aXBUcmlnZ2VyIGV4dGVuZHMgTWNUb29sdGlwVHJpZ2dlciB7XHJcbiAgICBASW5wdXQoJ21jRXh0ZW5kZWRUb29sdGlwJylcclxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCdtY1Rvb2x0aXBIZWFkZXInKVxyXG4gICAgZ2V0IGhlYWRlcigpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBoZWFkZXIoaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5faGVhZGVyID0gaGVhZGVyO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuRXh0ZW5kZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXHJcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgQEluamVjdChNQ19UT09MVElQX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3ksXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgZGlyZWN0aW9uOiBEaXJlY3Rpb25hbGl0eVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRGF0YSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIHN1cGVyLnVwZGF0ZURhdGEoKTtcclxuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYy10b29sdGlwXCJcclxuICAgICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgICAgW0BzdGF0ZV09XCJ2aXNpYmlsaXR5XCJcclxuICAgICAoQHN0YXRlLnN0YXJ0KT1cImFuaW1hdGlvblN0YXJ0KClcIlxyXG4gICAgIChAc3RhdGUuZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWMtdG9vbHRpcF9faW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtdG9vbHRpcF9fYXJyb3dcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLXRvb2x0aXBfX2hlYWRlclwiICpuZ0lmPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGhlYWRlcilcIiBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGhlYWRlcilcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlUmVmKGhlYWRlcilcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgaGVhZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYy10b29sdGlwX19jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGNvbnRlbnQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShjb250ZW50KVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGVSZWYoY29udGVudClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgY29udGVudCB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19