@ptsecurity/mosaic 12.3.0 → 13.1.1

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 (905) hide show
  1. package/_theming.scss +978 -781
  2. package/_visual.scss +848 -692
  3. package/autocomplete/README.md +0 -0
  4. package/autocomplete/package.json +5 -5
  5. package/button/README.md +0 -0
  6. package/button/button.component.d.ts +17 -14
  7. package/button/button.module.d.ts +1 -1
  8. package/button/package.json +5 -5
  9. package/button-toggle/README.md +0 -0
  10. package/button-toggle/package.json +5 -5
  11. package/card/README.md +0 -0
  12. package/card/package.json +5 -5
  13. package/checkbox/README.md +1 -0
  14. package/checkbox/package.json +5 -5
  15. package/core/formatters/date/formatter.d.ts +41 -17
  16. package/core/formatters/date/templates/en-US.d.ts +8 -8
  17. package/core/formatters/date/templates/ru-RU.d.ts +8 -8
  18. package/core/package.json +5 -5
  19. package/core/pop-up/pop-up.d.ts +1 -0
  20. package/core/public-api.d.ts +1 -0
  21. package/core/version.d.ts +2 -0
  22. package/datepicker/README.md +0 -0
  23. package/datepicker/package.json +5 -5
  24. package/design-tokens/{tokens → legacy-2017/tokens}/components/alert.json5 +0 -0
  25. package/design-tokens/{tokens → legacy-2017/tokens}/components/autocomplete.json5 +0 -0
  26. package/design-tokens/{tokens → legacy-2017/tokens}/components/badge.json5 +0 -0
  27. package/design-tokens/{tokens → legacy-2017/tokens}/components/button-toggle.json5 +0 -0
  28. package/design-tokens/{tokens → legacy-2017/tokens}/components/button.json5 +0 -0
  29. package/design-tokens/{tokens → legacy-2017/tokens}/components/card.json5 +0 -0
  30. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +39 -0
  31. package/design-tokens/{tokens → legacy-2017/tokens}/components/datepicker.json5 +0 -0
  32. package/design-tokens/{tokens → legacy-2017/tokens}/components/divider.json5 +0 -0
  33. package/design-tokens/{tokens → legacy-2017/tokens}/components/dropdown.json5 +0 -0
  34. package/design-tokens/{tokens → legacy-2017/tokens}/components/form-field.json5 +0 -0
  35. package/design-tokens/{tokens → legacy-2017/tokens}/components/forms.json5 +0 -0
  36. package/design-tokens/{tokens → legacy-2017/tokens}/components/input.json5 +0 -0
  37. package/design-tokens/{tokens → legacy-2017/tokens}/components/link.json5 +0 -0
  38. package/design-tokens/{tokens → legacy-2017/tokens}/components/list.json5 +0 -0
  39. package/design-tokens/legacy-2017/tokens/components/modal.json5 +79 -0
  40. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +69 -0
  41. package/design-tokens/{tokens → legacy-2017/tokens}/components/optgroup.json5 +0 -0
  42. package/design-tokens/{tokens → legacy-2017/tokens}/components/option.json5 +0 -0
  43. package/design-tokens/{tokens → legacy-2017/tokens}/components/popover.json5 +0 -0
  44. package/design-tokens/{tokens → legacy-2017/tokens}/components/popup.json5 +0 -0
  45. package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-bar.json5 +0 -0
  46. package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-spinner.json5 +0 -0
  47. package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -0
  48. package/design-tokens/{tokens → legacy-2017/tokens}/components/select.json5 +0 -0
  49. package/design-tokens/{tokens → legacy-2017/tokens}/components/sidepanel.json5 +0 -0
  50. package/design-tokens/{tokens → legacy-2017/tokens}/components/table.json5 +0 -0
  51. package/design-tokens/{tokens → legacy-2017/tokens}/components/tabs.json5 +0 -0
  52. package/design-tokens/legacy-2017/tokens/components/tags.json5 +132 -0
  53. package/design-tokens/{tokens → legacy-2017/tokens}/components/textarea.json5 +0 -0
  54. package/design-tokens/{tokens → legacy-2017/tokens}/components/timepicker.json5 +0 -0
  55. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -0
  56. package/design-tokens/{tokens → legacy-2017/tokens}/components/tooltip.json5 +0 -0
  57. package/design-tokens/{tokens → legacy-2017/tokens}/components/tree.json5 +0 -0
  58. package/design-tokens/{tokens → legacy-2017/tokens}/properties/aliases.json5 +0 -0
  59. package/design-tokens/{tokens → legacy-2017/tokens}/properties/colors.json5 +0 -0
  60. package/design-tokens/{tokens → legacy-2017/tokens}/properties/font.json5 +0 -0
  61. package/design-tokens/{tokens → legacy-2017/tokens}/properties/globals.json5 +0 -0
  62. package/design-tokens/{tokens → legacy-2017/tokens}/properties/padding.json5 +0 -0
  63. package/design-tokens/{tokens → legacy-2017/tokens}/properties/palette.json5 +0 -0
  64. package/design-tokens/{tokens → legacy-2017/tokens}/properties/typography.json5 +0 -0
  65. package/design-tokens/legacy-2017/tokens.d.ts +7659 -0
  66. package/design-tokens/package.json +5 -5
  67. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -0
  68. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -0
  69. package/design-tokens/pt-2022/tokens/components/badge.json5 +184 -0
  70. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -0
  71. package/design-tokens/pt-2022/tokens/components/button.json5 +143 -0
  72. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -0
  73. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +39 -0
  74. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -0
  75. package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -0
  76. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +47 -0
  77. package/design-tokens/pt-2022/tokens/components/form-field.json5 +52 -0
  78. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -0
  79. package/design-tokens/pt-2022/tokens/components/input.json5 +13 -0
  80. package/design-tokens/pt-2022/tokens/components/link.json5 +56 -0
  81. package/design-tokens/pt-2022/tokens/components/list.json5 +15 -0
  82. package/design-tokens/pt-2022/tokens/components/modal.json5 +79 -0
  83. package/design-tokens/pt-2022/tokens/components/navbar.json5 +69 -0
  84. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -0
  85. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -0
  86. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -0
  87. package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -0
  88. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -0
  89. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -0
  90. package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -0
  91. package/design-tokens/pt-2022/tokens/components/select.json5 +25 -0
  92. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +30 -0
  93. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -0
  94. package/design-tokens/pt-2022/tokens/components/tabs.json5 +25 -0
  95. package/design-tokens/pt-2022/tokens/components/tags.json5 +132 -0
  96. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -0
  97. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -0
  98. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -0
  99. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -0
  100. package/design-tokens/pt-2022/tokens/components/tree.json5 +12 -0
  101. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -0
  102. package/design-tokens/pt-2022/tokens/properties/colors.json5 +112 -0
  103. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -0
  104. package/design-tokens/pt-2022/tokens/properties/globals.json5 +30 -0
  105. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -0
  106. package/design-tokens/pt-2022/tokens/properties/palette.json5 +226 -0
  107. package/design-tokens/pt-2022/tokens/properties/typography.json5 +140 -0
  108. package/design-tokens/pt-2022/tokens.d.ts +8696 -0
  109. package/design-tokens/public-api.d.ts +3 -1
  110. package/divider/README.md +0 -0
  111. package/divider/package.json +5 -5
  112. package/dropdown/package.json +5 -5
  113. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -0
  114. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -0
  115. package/esm2020/autocomplete/autocomplete.component.mjs +154 -0
  116. package/esm2020/autocomplete/autocomplete.module.mjs +34 -0
  117. package/{esm2015/autocomplete/index.js → esm2020/autocomplete/index.mjs} +0 -0
  118. package/{esm2015/autocomplete/ptsecurity-mosaic-autocomplete.js → esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs} +0 -0
  119. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  120. package/esm2020/button/button.component.mjs +129 -0
  121. package/esm2020/button/button.module.mjs +38 -0
  122. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  123. package/{esm2015/button/ptsecurity-mosaic-button.js → esm2020/button/ptsecurity-mosaic-button.mjs} +0 -0
  124. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  125. package/esm2020/button-toggle/button-toggle.component.mjs +362 -0
  126. package/esm2020/button-toggle/button-toggle.module.mjs +19 -0
  127. package/{esm2015/button-toggle/index.js → esm2020/button-toggle/index.mjs} +0 -0
  128. package/{esm2015/button-toggle/ptsecurity-mosaic-button-toggle.js → esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs} +0 -0
  129. package/{esm2015/button-toggle/public-api.js → esm2020/button-toggle/public-api.mjs} +0 -0
  130. package/esm2020/card/card.component.mjs +80 -0
  131. package/esm2020/card/card.module.mjs +30 -0
  132. package/{esm2015/card/index.js → esm2020/card/index.mjs} +0 -0
  133. package/{esm2015/card/ptsecurity-mosaic-card.js → esm2020/card/ptsecurity-mosaic-card.mjs} +0 -0
  134. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  135. package/{esm2015/checkbox/checkbox-config.js → esm2020/checkbox/checkbox-config.mjs} +0 -0
  136. package/esm2020/checkbox/checkbox-module.mjs +19 -0
  137. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -0
  138. package/esm2020/checkbox/checkbox.mjs +315 -0
  139. package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
  140. package/{esm2015/checkbox/ptsecurity-mosaic-checkbox.js → esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs} +0 -0
  141. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  142. package/{esm2015/core/animation/animation.js → esm2020/core/animation/animation.mjs} +0 -0
  143. package/{esm2015/core/animation/fade-animations.js → esm2020/core/animation/fade-animations.mjs} +0 -0
  144. package/{esm2015/core/animation/index.js → esm2020/core/animation/index.mjs} +0 -0
  145. package/{esm2015/core/animation/select-animations.js → esm2020/core/animation/select-animations.mjs} +0 -0
  146. package/{esm2015/core/common-behaviors/color.js → esm2020/core/common-behaviors/color.mjs} +0 -0
  147. package/esm2020/core/common-behaviors/common-module.mjs +83 -0
  148. package/{esm2015/core/common-behaviors/constructor.js → esm2020/core/common-behaviors/constructor.mjs} +0 -0
  149. package/{esm2015/core/common-behaviors/disabled.js → esm2020/core/common-behaviors/disabled.mjs} +0 -0
  150. package/{esm2015/core/common-behaviors/error-state.js → esm2020/core/common-behaviors/error-state.mjs} +0 -0
  151. package/{esm2015/core/common-behaviors/index.js → esm2020/core/common-behaviors/index.mjs} +0 -0
  152. package/{esm2015/core/common-behaviors/tabindex.js → esm2020/core/common-behaviors/tabindex.mjs} +0 -0
  153. package/esm2020/core/error/error-options.mjs +26 -0
  154. package/esm2020/core/formatters/date/formatter.mjs +359 -0
  155. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -0
  156. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -0
  157. package/esm2020/core/formatters/index.mjs +20 -0
  158. package/esm2020/core/formatters/number/formatter.mjs +105 -0
  159. package/esm2020/core/forms/forms-module.mjs +24 -0
  160. package/esm2020/core/forms/forms.directive.mjs +66 -0
  161. package/{esm2015/core/forms/index.js → esm2020/core/forms/index.mjs} +0 -0
  162. package/esm2020/core/highlight/highlight.pipe.mjs +17 -0
  163. package/esm2020/core/highlight/index.mjs +19 -0
  164. package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
  165. package/{esm2015/core/label/label-options.js → esm2020/core/label/label-options.mjs} +0 -0
  166. package/esm2020/core/line/line.mjs +70 -0
  167. package/esm2020/core/option/action.mjs +121 -0
  168. package/{esm2015/core/option/index.js → esm2020/core/option/index.mjs} +0 -0
  169. package/esm2020/core/option/optgroup.mjs +31 -0
  170. package/esm2020/core/option/option-module.mjs +21 -0
  171. package/esm2020/core/option/option.mjs +254 -0
  172. package/{esm2015/core/overlay/overlay-position-map.js → esm2020/core/overlay/overlay-position-map.mjs} +0 -0
  173. package/{esm2015/core/pop-up/constants.js → esm2020/core/pop-up/constants.mjs} +0 -0
  174. package/{esm2015/core/pop-up/index.js → esm2020/core/pop-up/index.mjs} +0 -0
  175. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -0
  176. package/esm2020/core/pop-up/pop-up.mjs +94 -0
  177. package/{esm2015/core/ptsecurity-mosaic-core.js → esm2020/core/ptsecurity-mosaic-core.mjs} +0 -0
  178. package/esm2020/core/public-api.mjs +18 -0
  179. package/{esm2015/core/select/constants.js → esm2020/core/select/constants.mjs} +0 -0
  180. package/{esm2015/core/select/errors.js → esm2020/core/select/errors.mjs} +0 -0
  181. package/{esm2015/core/select/events.js → esm2020/core/select/events.mjs} +0 -0
  182. package/{esm2015/core/select/index.js → esm2020/core/select/index.mjs} +0 -0
  183. package/{esm2015/core/selection/constants.js → esm2020/core/selection/constants.mjs} +0 -0
  184. package/{esm2015/core/selection/index.js → esm2020/core/selection/index.mjs} +0 -0
  185. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -0
  186. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -0
  187. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -0
  188. package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
  189. package/{esm2015/core/utils/public-api.js → esm2020/core/utils/public-api.mjs} +0 -0
  190. package/{esm2015/core/utils/utils.js → esm2020/core/utils/utils.mjs} +0 -0
  191. package/{esm2015/core/validation/index.js → esm2020/core/validation/index.mjs} +0 -0
  192. package/{esm2015/core/validation/validation.js → esm2020/core/validation/validation.mjs} +0 -0
  193. package/esm2020/core/version.mjs +3 -0
  194. package/esm2020/datepicker/calendar-body.component.mjs +106 -0
  195. package/esm2020/datepicker/calendar.component.mjs +362 -0
  196. package/{esm2015/datepicker/datepicker-animations.js → esm2020/datepicker/datepicker-animations.mjs} +0 -0
  197. package/{esm2015/datepicker/datepicker-errors.js → esm2020/datepicker/datepicker-errors.mjs} +0 -0
  198. package/esm2020/datepicker/datepicker-input.directive.mjs +900 -0
  199. package/esm2020/datepicker/datepicker-intl.mjs +40 -0
  200. package/esm2020/datepicker/datepicker-module.mjs +107 -0
  201. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -0
  202. package/esm2020/datepicker/datepicker.component.mjs +408 -0
  203. package/{esm2015/datepicker/index.js → esm2020/datepicker/index.mjs} +0 -0
  204. package/esm2020/datepicker/month-view.component.mjs +257 -0
  205. package/esm2020/datepicker/multi-year-view.component.mjs +218 -0
  206. package/{esm2015/datepicker/ptsecurity-mosaic-datepicker.js → esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs} +0 -0
  207. package/{esm2015/datepicker/public-api.js → esm2020/datepicker/public-api.mjs} +0 -0
  208. package/esm2020/datepicker/year-view.component.mjs +253 -0
  209. package/{esm2015/design-tokens/index.js → esm2020/design-tokens/index.mjs} +0 -0
  210. package/esm2020/design-tokens/legacy-2017/tokens.mjs +953 -0
  211. package/esm2020/design-tokens/pt-2022/tokens.mjs +1013 -0
  212. package/{esm2015/design-tokens/ptsecurity-mosaic-design-tokens.js → esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs} +0 -0
  213. package/esm2020/design-tokens/public-api.mjs +4 -0
  214. package/esm2020/divider/divider.component.mjs +39 -0
  215. package/esm2020/divider/divider.module.mjs +18 -0
  216. package/{esm2015/divider/index.js → esm2020/divider/index.mjs} +0 -0
  217. package/{esm2015/divider/ptsecurity-mosaic-divider.js → esm2020/divider/ptsecurity-mosaic-divider.mjs} +0 -0
  218. package/{esm2015/divider/public-api.js → esm2020/divider/public-api.mjs} +0 -0
  219. package/{esm2015/dropdown/dropdown-animations.js → esm2020/dropdown/dropdown-animations.mjs} +0 -0
  220. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -0
  221. package/{esm2015/dropdown/dropdown-errors.js → esm2020/dropdown/dropdown-errors.mjs} +0 -0
  222. package/esm2020/dropdown/dropdown-item.component.mjs +139 -0
  223. package/esm2020/dropdown/dropdown-trigger.directive.mjs +485 -0
  224. package/esm2020/dropdown/dropdown.component.mjs +292 -0
  225. package/esm2020/dropdown/dropdown.module.mjs +50 -0
  226. package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
  227. package/{esm2015/dropdown/index.js → esm2020/dropdown/index.mjs} +0 -0
  228. package/{esm2015/dropdown/ptsecurity-mosaic-dropdown.js → esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs} +0 -0
  229. package/{esm2015/dropdown/public-api.js → esm2020/dropdown/public-api.mjs} +0 -0
  230. package/esm2020/form-field/cleaner.mjs +23 -0
  231. package/{esm2015/form-field/form-field-control.js → esm2020/form-field/form-field-control.mjs} +0 -0
  232. package/{esm2015/form-field/form-field-errors.js → esm2020/form-field/form-field-errors.mjs} +0 -0
  233. package/esm2020/form-field/form-field.mjs +205 -0
  234. package/esm2020/form-field/form-field.module.mjs +52 -0
  235. package/esm2020/form-field/hint.mjs +23 -0
  236. package/{esm2015/form-field/index.js → esm2020/form-field/index.mjs} +0 -0
  237. package/esm2020/form-field/prefix.mjs +13 -0
  238. package/{esm2015/form-field/ptsecurity-mosaic-form-field.js → esm2020/form-field/ptsecurity-mosaic-form-field.mjs} +0 -0
  239. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  240. package/esm2020/form-field/stepper.mjs +55 -0
  241. package/esm2020/form-field/suffix.mjs +13 -0
  242. package/esm2020/icon/icon.component.mjs +44 -0
  243. package/esm2020/icon/icon.module.mjs +38 -0
  244. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  245. package/{esm2015/icon/ptsecurity-mosaic-icon.js → esm2020/icon/ptsecurity-mosaic-icon.mjs} +0 -0
  246. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  247. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  248. package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
  249. package/{esm2015/input/input-errors.js → esm2020/input/input-errors.mjs} +0 -0
  250. package/esm2020/input/input-number-validators.mjs +92 -0
  251. package/esm2020/input/input-number.mjs +163 -0
  252. package/{esm2015/input/input-value-accessor.js → esm2020/input/input-value-accessor.mjs} +0 -0
  253. package/esm2020/input/input.mjs +333 -0
  254. package/esm2020/input/input.module.mjs +23 -0
  255. package/{esm2015/input/ptsecurity-mosaic-input.js → esm2020/input/ptsecurity-mosaic-input.mjs} +0 -0
  256. package/{esm2015/input/public-api.js → esm2020/input/public-api.mjs} +0 -0
  257. package/{esm2015/link/index.js → esm2020/link/index.mjs} +0 -0
  258. package/esm2020/link/link.component.mjs +107 -0
  259. package/esm2020/link/link.module.mjs +26 -0
  260. package/{esm2015/link/ptsecurity-mosaic-link.js → esm2020/link/ptsecurity-mosaic-link.mjs} +0 -0
  261. package/{esm2015/link/public-api.js → esm2020/link/public-api.mjs} +0 -0
  262. package/{esm2015/list/index.js → esm2020/list/index.mjs} +0 -0
  263. package/esm2020/list/list-selection.component.mjs +687 -0
  264. package/esm2020/list/list.component.mjs +44 -0
  265. package/esm2020/list/list.module.mjs +55 -0
  266. package/{esm2015/list/ptsecurity-mosaic-list.js → esm2020/list/ptsecurity-mosaic-list.mjs} +0 -0
  267. package/{esm2015/list/public-api.js → esm2020/list/public-api.mjs} +0 -0
  268. package/esm2020/modal/css-unit.pipe.mjs +17 -0
  269. package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
  270. package/esm2020/modal/modal-control.service.mjs +85 -0
  271. package/{esm2015/modal/modal-ref.class.js → esm2020/modal/modal-ref.class.mjs} +0 -0
  272. package/{esm2015/modal/modal-util.js → esm2020/modal/modal-util.mjs} +0 -0
  273. package/esm2020/modal/modal.component.mjs +501 -0
  274. package/esm2020/modal/modal.directive.mjs +52 -0
  275. package/esm2020/modal/modal.module.mjs +72 -0
  276. package/esm2020/modal/modal.service.mjs +124 -0
  277. package/{esm2015/modal/modal.type.js → esm2020/modal/modal.type.mjs} +0 -0
  278. package/{esm2015/modal/ptsecurity-mosaic-modal.js → esm2020/modal/ptsecurity-mosaic-modal.mjs} +0 -0
  279. package/{esm2015/modal/public-api.js → esm2020/modal/public-api.mjs} +0 -0
  280. package/{esm2015/navbar/index.js → esm2020/navbar/index.mjs} +0 -0
  281. package/esm2020/navbar/navbar-item.component.mjs +583 -0
  282. package/esm2020/navbar/navbar.component.mjs +237 -0
  283. package/esm2020/navbar/navbar.module.mjs +92 -0
  284. package/{esm2015/navbar/ptsecurity-mosaic-navbar.js → esm2020/navbar/ptsecurity-mosaic-navbar.mjs} +0 -0
  285. package/{esm2015/navbar/public-api.js → esm2020/navbar/public-api.mjs} +0 -0
  286. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -0
  287. package/esm2020/navbar/vertical-navbar.component.mjs +114 -0
  288. package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
  289. package/{esm2015/popover/popover-animations.js → esm2020/popover/popover-animations.mjs} +0 -0
  290. package/esm2020/popover/popover-confirm.component.mjs +108 -0
  291. package/esm2020/popover/popover.component.mjs +253 -0
  292. package/esm2020/popover/popover.module.mjs +24 -0
  293. package/{esm2015/popover/ptsecurity-mosaic-popover.js → esm2020/popover/ptsecurity-mosaic-popover.mjs} +0 -0
  294. package/{esm2015/popover/public-api.js → esm2020/popover/public-api.mjs} +0 -0
  295. package/{esm2015/progress-bar/index.js → esm2020/progress-bar/index.mjs} +0 -0
  296. package/esm2020/progress-bar/progress-bar.component.mjs +42 -0
  297. package/esm2020/progress-bar/progress-bar.module.mjs +30 -0
  298. package/{esm2015/progress-bar/ptsecurity-mosaic-progress-bar.js → esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs} +0 -0
  299. package/{esm2015/progress-bar/public-api.js → esm2020/progress-bar/public-api.mjs} +0 -0
  300. package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
  301. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -0
  302. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -0
  303. package/{esm2015/progress-spinner/ptsecurity-mosaic-progress-spinner.js → esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs} +0 -0
  304. package/{esm2015/progress-spinner/public-api.js → esm2020/progress-spinner/public-api.mjs} +0 -0
  305. package/{esm2015/ptsecurity-mosaic.js → esm2020/ptsecurity-mosaic.mjs} +0 -0
  306. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  307. package/{esm2015/radio/index.js → esm2020/radio/index.mjs} +0 -0
  308. package/{esm2015/radio/ptsecurity-mosaic-radio.js → esm2020/radio/ptsecurity-mosaic-radio.mjs} +0 -0
  309. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  310. package/esm2020/radio/radio.component.mjs +458 -0
  311. package/esm2020/radio/radio.module.mjs +20 -0
  312. package/{esm2015/select/index.js → esm2020/select/index.mjs} +0 -0
  313. package/{esm2015/select/ptsecurity-mosaic-select.js → esm2020/select/ptsecurity-mosaic-select.mjs} +0 -0
  314. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  315. package/esm2020/select/select.component.mjs +1110 -0
  316. package/esm2020/select/select.module.mjs +64 -0
  317. package/{esm2015/sidebar/index.js → esm2020/sidebar/index.mjs} +0 -0
  318. package/{esm2015/sidebar/ptsecurity-mosaic-sidebar.js → esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs} +0 -0
  319. package/{esm2015/sidebar/public-api.js → esm2020/sidebar/public-api.mjs} +0 -0
  320. package/{esm2015/sidebar/sidebar-animations.js → esm2020/sidebar/sidebar-animations.mjs} +0 -0
  321. package/esm2020/sidebar/sidebar.component.mjs +146 -0
  322. package/esm2020/sidebar/sidebar.module.mjs +30 -0
  323. package/{esm2015/sidepanel/index.js → esm2020/sidepanel/index.mjs} +0 -0
  324. package/{esm2015/sidepanel/ptsecurity-mosaic-sidepanel.js → esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs} +0 -0
  325. package/{esm2015/sidepanel/public-api.js → esm2020/sidepanel/public-api.mjs} +0 -0
  326. package/{esm2015/sidepanel/sidepanel-animations.js → esm2020/sidepanel/sidepanel-animations.mjs} +0 -0
  327. package/{esm2015/sidepanel/sidepanel-config.js → esm2020/sidepanel/sidepanel-config.mjs} +0 -0
  328. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -0
  329. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -0
  330. package/{esm2015/sidepanel/sidepanel-ref.js → esm2020/sidepanel/sidepanel-ref.mjs} +0 -0
  331. package/esm2020/sidepanel/sidepanel.module.mjs +74 -0
  332. package/esm2020/sidepanel/sidepanel.service.mjs +167 -0
  333. package/{esm2015/splitter/index.js → esm2020/splitter/index.mjs} +0 -0
  334. package/{esm2015/splitter/ptsecurity-mosaic-splitter.js → esm2020/splitter/ptsecurity-mosaic-splitter.mjs} +0 -0
  335. package/{esm2015/splitter/public-api.js → esm2020/splitter/public-api.mjs} +0 -0
  336. package/esm2020/splitter/splitter.component.mjs +482 -0
  337. package/esm2020/splitter/splitter.module.mjs +40 -0
  338. package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
  339. package/{esm2015/table/ptsecurity-mosaic-table.js → esm2020/table/ptsecurity-mosaic-table.mjs} +0 -0
  340. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  341. package/esm2020/table/table.component.mjs +16 -0
  342. package/esm2020/table/table.module.mjs +30 -0
  343. package/{esm2015/tabs/index.js → esm2020/tabs/index.mjs} +0 -0
  344. package/esm2020/tabs/paginated-tab-header.mjs +479 -0
  345. package/{esm2015/tabs/ptsecurity-mosaic-tabs.js → esm2020/tabs/ptsecurity-mosaic-tabs.mjs} +0 -0
  346. package/{esm2015/tabs/public-api.js → esm2020/tabs/public-api.mjs} +0 -0
  347. package/esm2020/tabs/tab-body.component.mjs +178 -0
  348. package/esm2020/tabs/tab-content.directive.mjs +15 -0
  349. package/esm2020/tabs/tab-group.component.mjs +350 -0
  350. package/esm2020/tabs/tab-header.component.mjs +67 -0
  351. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -0
  352. package/esm2020/tabs/tab-label.directive.mjs +17 -0
  353. package/{esm2015/tabs/tab-nav-bar/index.js → esm2020/tabs/tab-nav-bar/index.mjs} +0 -0
  354. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -0
  355. package/esm2020/tabs/tab.component.mjs +133 -0
  356. package/{esm2015/tabs/tabs-animations.js → esm2020/tabs/tabs-animations.mjs} +0 -0
  357. package/esm2020/tabs/tabs.module.mjs +104 -0
  358. package/{esm2015/tags/index.js → esm2020/tags/index.mjs} +0 -0
  359. package/{esm2015/tags/ptsecurity-mosaic-tags.js → esm2020/tags/ptsecurity-mosaic-tags.mjs} +0 -0
  360. package/{esm2015/tags/public-api.js → esm2020/tags/public-api.mjs} +0 -0
  361. package/{esm2015/tags/tag-default-options.js → esm2020/tags/tag-default-options.mjs} +0 -0
  362. package/esm2020/tags/tag-input.mjs +229 -0
  363. package/esm2020/tags/tag-list.component.mjs +722 -0
  364. package/{esm2015/tags/tag-text-control.js → esm2020/tags/tag-text-control.mjs} +0 -0
  365. package/esm2020/tags/tag.component.mjs +377 -0
  366. package/esm2020/tags/tag.module.mjs +56 -0
  367. package/{esm2015/textarea/index.js → esm2020/textarea/index.mjs} +0 -0
  368. package/{esm2015/textarea/ptsecurity-mosaic-textarea.js → esm2020/textarea/ptsecurity-mosaic-textarea.mjs} +0 -0
  369. package/{esm2015/textarea/public-api.js → esm2020/textarea/public-api.mjs} +0 -0
  370. package/esm2020/textarea/textarea.component.mjs +268 -0
  371. package/esm2020/textarea/textarea.module.mjs +21 -0
  372. package/{esm2015/timepicker/index.js → esm2020/timepicker/index.mjs} +0 -0
  373. package/{esm2015/timepicker/ptsecurity-mosaic-timepicker.js → esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs} +0 -0
  374. package/{esm2015/timepicker/public-api.js → esm2020/timepicker/public-api.mjs} +0 -0
  375. package/{esm2015/timepicker/timepicker.constants.js → esm2020/timepicker/timepicker.constants.mjs} +0 -0
  376. package/esm2020/timepicker/timepicker.directive.mjs +653 -0
  377. package/esm2020/timepicker/timepicker.module.mjs +34 -0
  378. package/{esm2015/toggle/index.js → esm2020/toggle/index.mjs} +0 -0
  379. package/{esm2015/toggle/ptsecurity-mosaic-toggle.js → esm2020/toggle/ptsecurity-mosaic-toggle.mjs} +0 -0
  380. package/{esm2015/toggle/public-api.js → esm2020/toggle/public-api.mjs} +0 -0
  381. package/esm2020/toggle/toggle.component.mjs +158 -0
  382. package/esm2020/toggle/toggle.module.mjs +20 -0
  383. package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
  384. package/{esm2015/tooltip/ptsecurity-mosaic-tooltip.js → esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs} +0 -0
  385. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  386. package/{esm2015/tooltip/tooltip.animations.js → esm2020/tooltip/tooltip.animations.mjs} +0 -0
  387. package/esm2020/tooltip/tooltip.component.mjs +294 -0
  388. package/esm2020/tooltip/tooltip.module.mjs +43 -0
  389. package/{esm2015/tree/control/base-tree-control.js → esm2020/tree/control/base-tree-control.mjs} +0 -0
  390. package/{esm2015/tree/control/flat-tree-control.js → esm2020/tree/control/flat-tree-control.mjs} +0 -0
  391. package/{esm2015/tree/control/nested-tree-control.js → esm2020/tree/control/nested-tree-control.mjs} +0 -0
  392. package/{esm2015/tree/control/tree-control.js → esm2020/tree/control/tree-control.mjs} +0 -0
  393. package/esm2020/tree/data-source/flat-data-source.mjs +162 -0
  394. package/{esm2015/tree/data-source/nested-data-source.js → esm2020/tree/data-source/nested-data-source.mjs} +0 -0
  395. package/{esm2015/tree/index.js → esm2020/tree/index.mjs} +0 -0
  396. package/esm2020/tree/node.mjs +31 -0
  397. package/esm2020/tree/outlet.mjs +15 -0
  398. package/esm2020/tree/padding.directive.mjs +110 -0
  399. package/{esm2015/tree/ptsecurity-mosaic-tree.js → esm2020/tree/ptsecurity-mosaic-tree.mjs} +0 -0
  400. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  401. package/esm2020/tree/toggle.mjs +80 -0
  402. package/esm2020/tree/tree-base.mjs +243 -0
  403. package/{esm2015/tree/tree-errors.js → esm2020/tree/tree-errors.mjs} +0 -0
  404. package/esm2020/tree/tree-option.component.mjs +234 -0
  405. package/esm2020/tree/tree-selection.component.mjs +533 -0
  406. package/esm2020/tree/tree.mjs +15 -0
  407. package/esm2020/tree/tree.module.mjs +53 -0
  408. package/{esm2015/tree-select/index.js → esm2020/tree-select/index.mjs} +0 -0
  409. package/{esm2015/tree-select/ptsecurity-mosaic-tree-select.js → esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs} +0 -0
  410. package/{esm2015/tree-select/public-api.js → esm2020/tree-select/public-api.mjs} +0 -0
  411. package/esm2020/tree-select/tree-select.component.mjs +925 -0
  412. package/esm2020/tree-select/tree-select.module.mjs +47 -0
  413. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +756 -0
  414. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  415. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +385 -0
  416. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  417. package/fesm2015/ptsecurity-mosaic-button.mjs +170 -0
  418. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -0
  419. package/fesm2015/ptsecurity-mosaic-card.mjs +113 -0
  420. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -0
  421. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +366 -0
  422. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  423. package/fesm2015/ptsecurity-mosaic-core.mjs +2704 -0
  424. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -0
  425. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2700 -0
  426. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  427. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2925 -0
  428. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  429. package/fesm2015/ptsecurity-mosaic-divider.mjs +61 -0
  430. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -0
  431. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1106 -0
  432. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  433. package/fesm2015/ptsecurity-mosaic-form-field.mjs +378 -0
  434. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -0
  435. package/fesm2015/ptsecurity-mosaic-icon.mjs +88 -0
  436. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -0
  437. package/fesm2015/ptsecurity-mosaic-input.mjs +609 -0
  438. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -0
  439. package/fesm2015/ptsecurity-mosaic-link.mjs +137 -0
  440. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -0
  441. package/fesm2015/ptsecurity-mosaic-list.mjs +791 -0
  442. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -0
  443. package/fesm2015/ptsecurity-mosaic-modal.mjs +864 -0
  444. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -0
  445. package/fesm2015/ptsecurity-mosaic-navbar.mjs +1031 -0
  446. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -0
  447. package/fesm2015/ptsecurity-mosaic-popover.mjs +393 -0
  448. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -0
  449. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +76 -0
  450. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  451. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  452. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  453. package/fesm2015/ptsecurity-mosaic-radio.mjs +481 -0
  454. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -0
  455. package/fesm2015/ptsecurity-mosaic-select.mjs +1175 -0
  456. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -0
  457. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +202 -0
  458. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  459. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +592 -0
  460. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  461. package/fesm2015/ptsecurity-mosaic-splitter.mjs +526 -0
  462. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -0
  463. package/fesm2015/ptsecurity-mosaic-table.mjs +50 -0
  464. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -0
  465. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1511 -0
  466. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -0
  467. package/fesm2015/ptsecurity-mosaic-tags.mjs +1377 -0
  468. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -0
  469. package/fesm2015/ptsecurity-mosaic-textarea.mjs +293 -0
  470. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -0
  471. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +715 -0
  472. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  473. package/fesm2015/ptsecurity-mosaic-toggle.mjs +180 -0
  474. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -0
  475. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +365 -0
  476. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  477. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +972 -0
  478. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  479. package/fesm2015/ptsecurity-mosaic-tree.mjs +1718 -0
  480. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -0
  481. package/fesm2015/ptsecurity-mosaic.mjs +4 -0
  482. package/fesm2015/ptsecurity-mosaic.mjs.map +1 -0
  483. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +752 -0
  484. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  485. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +383 -0
  486. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  487. package/fesm2020/ptsecurity-mosaic-button.mjs +170 -0
  488. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -0
  489. package/fesm2020/ptsecurity-mosaic-card.mjs +113 -0
  490. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -0
  491. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +364 -0
  492. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  493. package/fesm2020/ptsecurity-mosaic-core.mjs +2733 -0
  494. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -0
  495. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2687 -0
  496. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  497. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2925 -0
  498. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  499. package/fesm2020/ptsecurity-mosaic-divider.mjs +61 -0
  500. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -0
  501. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1093 -0
  502. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  503. package/fesm2020/ptsecurity-mosaic-form-field.mjs +377 -0
  504. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -0
  505. package/fesm2020/ptsecurity-mosaic-icon.mjs +86 -0
  506. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -0
  507. package/fesm2020/ptsecurity-mosaic-input.mjs +605 -0
  508. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -0
  509. package/fesm2020/ptsecurity-mosaic-link.mjs +136 -0
  510. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -0
  511. package/fesm2020/ptsecurity-mosaic-list.mjs +784 -0
  512. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -0
  513. package/fesm2020/ptsecurity-mosaic-modal.mjs +860 -0
  514. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -0
  515. package/fesm2020/ptsecurity-mosaic-navbar.mjs +1015 -0
  516. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -0
  517. package/fesm2020/ptsecurity-mosaic-popover.mjs +389 -0
  518. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -0
  519. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +76 -0
  520. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  521. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  522. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  523. package/fesm2020/ptsecurity-mosaic-radio.mjs +479 -0
  524. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -0
  525. package/fesm2020/ptsecurity-mosaic-select.mjs +1173 -0
  526. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -0
  527. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +202 -0
  528. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  529. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +589 -0
  530. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  531. package/fesm2020/ptsecurity-mosaic-splitter.mjs +526 -0
  532. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -0
  533. package/fesm2020/ptsecurity-mosaic-table.mjs +50 -0
  534. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -0
  535. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1496 -0
  536. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -0
  537. package/fesm2020/ptsecurity-mosaic-tags.mjs +1370 -0
  538. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -0
  539. package/fesm2020/ptsecurity-mosaic-textarea.mjs +291 -0
  540. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -0
  541. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +713 -0
  542. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  543. package/fesm2020/ptsecurity-mosaic-toggle.mjs +180 -0
  544. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -0
  545. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +357 -0
  546. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  547. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +970 -0
  548. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  549. package/fesm2020/ptsecurity-mosaic-tree.mjs +1705 -0
  550. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -0
  551. package/fesm2020/ptsecurity-mosaic.mjs +4 -0
  552. package/fesm2020/ptsecurity-mosaic.mjs.map +1 -0
  553. package/form-field/README.md +0 -0
  554. package/form-field/package.json +5 -5
  555. package/icon/README.md +0 -0
  556. package/icon/package.json +5 -5
  557. package/input/package.json +5 -5
  558. package/link/README.md +0 -0
  559. package/link/package.json +5 -5
  560. package/list/README.md +0 -0
  561. package/list/package.json +5 -5
  562. package/modal/README.md +34 -0
  563. package/modal/modal-control.service.d.ts +1 -0
  564. package/modal/package.json +5 -5
  565. package/navbar/README.md +41 -0
  566. package/navbar/navbar-item.component.d.ts +123 -34
  567. package/navbar/navbar.component.d.ts +37 -9
  568. package/navbar/navbar.module.d.ts +2 -1
  569. package/navbar/package.json +5 -5
  570. package/navbar/vertical-navbar.component.d.ts +15 -26
  571. package/package.json +299 -14
  572. package/popover/README.md +32 -0
  573. package/popover/package.json +5 -5
  574. package/prebuilt-themes/dark-theme.css +1 -1
  575. package/prebuilt-themes/default-theme.css +1 -1
  576. package/prebuilt-visual/default-visual.css +1 -1
  577. package/progress-bar/README.md +0 -0
  578. package/progress-bar/package.json +5 -5
  579. package/progress-spinner/README.md +0 -0
  580. package/progress-spinner/package.json +5 -5
  581. package/radio/package.json +5 -5
  582. package/schematics/README.md +35 -0
  583. package/schematics/ng-update/data/index.d.ts +1 -0
  584. package/schematics/ng-update/data/index.js +10 -9
  585. package/schematics/ng-update/data/index.js.map +1 -1
  586. package/schematics/ng-update/data/symbol-removal.d.ts +2 -0
  587. package/schematics/ng-update/data/symbol-removal.js +5 -0
  588. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  589. package/schematics/ng-update/index.js +3 -3
  590. package/schematics/ng-update/index.js.map +1 -1
  591. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +1 -2
  592. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +1 -1
  593. package/schematics/ng-update/upgrade-data.js +2 -1
  594. package/schematics/ng-update/upgrade-data.js.map +1 -1
  595. package/schematics/tsconfig.lib.json +2 -2
  596. package/select/README.md +0 -0
  597. package/select/package.json +5 -5
  598. package/sidebar/package.json +5 -5
  599. package/sidepanel/package.json +5 -5
  600. package/splitter/package.json +5 -5
  601. package/table/README.md +0 -0
  602. package/table/package.json +5 -5
  603. package/tabs/README.md +0 -0
  604. package/tabs/package.json +5 -5
  605. package/tags/README.md +0 -0
  606. package/tags/package.json +5 -5
  607. package/textarea/README.md +0 -0
  608. package/textarea/package.json +5 -5
  609. package/timepicker/README.md +0 -0
  610. package/timepicker/package.json +5 -5
  611. package/toggle/package.json +5 -5
  612. package/tooltip/package.json +5 -5
  613. package/tree/data-source/flat-data-source.d.ts +2 -2
  614. package/tree/package.json +5 -5
  615. package/tree/tree-option.component.d.ts +5 -3
  616. package/tree/tree-selection.component.d.ts +1 -0
  617. package/tree-select/README.md +0 -0
  618. package/tree-select/package.json +5 -5
  619. package/tree-select/tree-select.component.d.ts +9 -1
  620. package/tree-select/tree-select.module.d.ts +2 -1
  621. package/bundles/ptsecurity-mosaic-autocomplete.umd.js +0 -1160
  622. package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +0 -1
  623. package/bundles/ptsecurity-mosaic-button-toggle.umd.js +0 -755
  624. package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +0 -1
  625. package/bundles/ptsecurity-mosaic-button.umd.js +0 -533
  626. package/bundles/ptsecurity-mosaic-button.umd.js.map +0 -1
  627. package/bundles/ptsecurity-mosaic-card.umd.js +0 -479
  628. package/bundles/ptsecurity-mosaic-card.umd.js.map +0 -1
  629. package/bundles/ptsecurity-mosaic-checkbox.umd.js +0 -762
  630. package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +0 -1
  631. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2841
  632. package/bundles/ptsecurity-mosaic-core.umd.js.map +0 -1
  633. package/bundles/ptsecurity-mosaic-datepicker.umd.js +0 -3362
  634. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +0 -1
  635. package/bundles/ptsecurity-mosaic-design-tokens.umd.js +0 -1871
  636. package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +0 -1
  637. package/bundles/ptsecurity-mosaic-divider.umd.js +0 -106
  638. package/bundles/ptsecurity-mosaic-divider.umd.js.map +0 -1
  639. package/bundles/ptsecurity-mosaic-dropdown.umd.js +0 -1532
  640. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +0 -1
  641. package/bundles/ptsecurity-mosaic-form-field.umd.js +0 -788
  642. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +0 -1
  643. package/bundles/ptsecurity-mosaic-icon.umd.js +0 -450
  644. package/bundles/ptsecurity-mosaic-icon.umd.js.map +0 -1
  645. package/bundles/ptsecurity-mosaic-input.umd.js +0 -1008
  646. package/bundles/ptsecurity-mosaic-input.umd.js.map +0 -1
  647. package/bundles/ptsecurity-mosaic-link.umd.js +0 -515
  648. package/bundles/ptsecurity-mosaic-link.umd.js.map +0 -1
  649. package/bundles/ptsecurity-mosaic-list.umd.js +0 -1251
  650. package/bundles/ptsecurity-mosaic-list.umd.js.map +0 -1
  651. package/bundles/ptsecurity-mosaic-modal.umd.js +0 -1312
  652. package/bundles/ptsecurity-mosaic-modal.umd.js.map +0 -1
  653. package/bundles/ptsecurity-mosaic-navbar.umd.js +0 -930
  654. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +0 -1
  655. package/bundles/ptsecurity-mosaic-popover.umd.js +0 -836
  656. package/bundles/ptsecurity-mosaic-popover.umd.js.map +0 -1
  657. package/bundles/ptsecurity-mosaic-progress-bar.umd.js +0 -440
  658. package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +0 -1
  659. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +0 -448
  660. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +0 -1
  661. package/bundles/ptsecurity-mosaic-radio.umd.js +0 -901
  662. package/bundles/ptsecurity-mosaic-radio.umd.js.map +0 -1
  663. package/bundles/ptsecurity-mosaic-select.umd.js +0 -1606
  664. package/bundles/ptsecurity-mosaic-select.umd.js.map +0 -1
  665. package/bundles/ptsecurity-mosaic-sidebar.umd.js +0 -254
  666. package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +0 -1
  667. package/bundles/ptsecurity-mosaic-sidepanel.umd.js +0 -954
  668. package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +0 -1
  669. package/bundles/ptsecurity-mosaic-splitter.umd.js +0 -635
  670. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +0 -1
  671. package/bundles/ptsecurity-mosaic-table.umd.js +0 -81
  672. package/bundles/ptsecurity-mosaic-table.umd.js.map +0 -1
  673. package/bundles/ptsecurity-mosaic-tabs.umd.js +0 -2013
  674. package/bundles/ptsecurity-mosaic-tabs.umd.js.map +0 -1
  675. package/bundles/ptsecurity-mosaic-tags.umd.js +0 -1917
  676. package/bundles/ptsecurity-mosaic-tags.umd.js.map +0 -1
  677. package/bundles/ptsecurity-mosaic-textarea.umd.js +0 -664
  678. package/bundles/ptsecurity-mosaic-textarea.umd.js.map +0 -1
  679. package/bundles/ptsecurity-mosaic-timepicker.umd.js +0 -821
  680. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +0 -1
  681. package/bundles/ptsecurity-mosaic-toggle.umd.js +0 -557
  682. package/bundles/ptsecurity-mosaic-toggle.umd.js.map +0 -1
  683. package/bundles/ptsecurity-mosaic-tooltip.umd.js +0 -777
  684. package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +0 -1
  685. package/bundles/ptsecurity-mosaic-tree-select.umd.js +0 -1369
  686. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +0 -1
  687. package/bundles/ptsecurity-mosaic-tree.umd.js +0 -2301
  688. package/bundles/ptsecurity-mosaic-tree.umd.js.map +0 -1
  689. package/bundles/ptsecurity-mosaic.umd.js +0 -11
  690. package/bundles/ptsecurity-mosaic.umd.js.map +0 -1
  691. package/design-tokens/tokens/components/checkbox.json5 +0 -39
  692. package/design-tokens/tokens/components/modal.json5 +0 -67
  693. package/design-tokens/tokens/components/navbar.json5 +0 -64
  694. package/design-tokens/tokens/components/radio.json5 +0 -45
  695. package/design-tokens/tokens/components/tags.json5 +0 -126
  696. package/design-tokens/tokens/components/toggle.json5 +0 -55
  697. package/design-tokens/tokens.d.ts +0 -7636
  698. package/esm2015/autocomplete/autocomplete-origin.directive.js +0 -21
  699. package/esm2015/autocomplete/autocomplete-trigger.directive.js +0 -555
  700. package/esm2015/autocomplete/autocomplete.component.js +0 -163
  701. package/esm2015/autocomplete/autocomplete.module.js +0 -34
  702. package/esm2015/button/button.component.js +0 -129
  703. package/esm2015/button/button.module.js +0 -42
  704. package/esm2015/button-toggle/button-toggle.component.js +0 -370
  705. package/esm2015/button-toggle/button-toggle.module.js +0 -19
  706. package/esm2015/card/card.component.js +0 -88
  707. package/esm2015/card/card.module.js +0 -30
  708. package/esm2015/checkbox/checkbox-module.js +0 -19
  709. package/esm2015/checkbox/checkbox-required-validator.js +0 -27
  710. package/esm2015/checkbox/checkbox.js +0 -325
  711. package/esm2015/core/common-behaviors/common-module.js +0 -83
  712. package/esm2015/core/error/error-options.js +0 -26
  713. package/esm2015/core/formatters/date/formatter.js +0 -288
  714. package/esm2015/core/formatters/date/templates/en-US.js +0 -280
  715. package/esm2015/core/formatters/date/templates/ru-RU.js +0 -280
  716. package/esm2015/core/formatters/index.js +0 -20
  717. package/esm2015/core/formatters/number/formatter.js +0 -99
  718. package/esm2015/core/forms/forms-module.js +0 -24
  719. package/esm2015/core/forms/forms.directive.js +0 -66
  720. package/esm2015/core/highlight/highlight.pipe.js +0 -17
  721. package/esm2015/core/highlight/index.js +0 -19
  722. package/esm2015/core/line/line.js +0 -70
  723. package/esm2015/core/option/action.js +0 -131
  724. package/esm2015/core/option/optgroup.js +0 -40
  725. package/esm2015/core/option/option-module.js +0 -21
  726. package/esm2015/core/option/option.js +0 -262
  727. package/esm2015/core/pop-up/pop-up-trigger.js +0 -239
  728. package/esm2015/core/pop-up/pop-up.js +0 -87
  729. package/esm2015/core/public-api.js +0 -17
  730. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +0 -45
  731. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js +0 -18
  732. package/esm2015/core/services/measure-scrollbar.service.js +0 -48
  733. package/esm2015/datepicker/calendar-body.component.js +0 -114
  734. package/esm2015/datepicker/calendar.component.js +0 -377
  735. package/esm2015/datepicker/datepicker-input.directive.js +0 -892
  736. package/esm2015/datepicker/datepicker-intl.js +0 -40
  737. package/esm2015/datepicker/datepicker-module.js +0 -107
  738. package/esm2015/datepicker/datepicker-toggle.component.js +0 -94
  739. package/esm2015/datepicker/datepicker.component.js +0 -418
  740. package/esm2015/datepicker/month-view.component.js +0 -263
  741. package/esm2015/datepicker/multi-year-view.component.js +0 -224
  742. package/esm2015/datepicker/year-view.component.js +0 -259
  743. package/esm2015/design-tokens/public-api.js +0 -2
  744. package/esm2015/design-tokens/tokens.js +0 -930
  745. package/esm2015/divider/divider.component.js +0 -46
  746. package/esm2015/divider/divider.module.js +0 -18
  747. package/esm2015/dropdown/dropdown-content.directive.js +0 -66
  748. package/esm2015/dropdown/dropdown-item.component.js +0 -149
  749. package/esm2015/dropdown/dropdown-trigger.directive.js +0 -486
  750. package/esm2015/dropdown/dropdown.component.js +0 -302
  751. package/esm2015/dropdown/dropdown.module.js +0 -50
  752. package/esm2015/form-field/cleaner.js +0 -23
  753. package/esm2015/form-field/form-field.js +0 -224
  754. package/esm2015/form-field/form-field.module.js +0 -52
  755. package/esm2015/form-field/hint.js +0 -23
  756. package/esm2015/form-field/prefix.js +0 -13
  757. package/esm2015/form-field/stepper.js +0 -55
  758. package/esm2015/form-field/suffix.js +0 -13
  759. package/esm2015/icon/icon.component.js +0 -51
  760. package/esm2015/icon/icon.module.js +0 -38
  761. package/esm2015/input/input-number-validators.js +0 -92
  762. package/esm2015/input/input-number.js +0 -163
  763. package/esm2015/input/input.js +0 -333
  764. package/esm2015/input/input.module.js +0 -23
  765. package/esm2015/link/link.component.js +0 -108
  766. package/esm2015/link/link.module.js +0 -26
  767. package/esm2015/list/list-selection.component.js +0 -711
  768. package/esm2015/list/list.component.js +0 -58
  769. package/esm2015/list/list.module.js +0 -55
  770. package/esm2015/modal/css-unit.pipe.js +0 -17
  771. package/esm2015/modal/modal-control.service.js +0 -63
  772. package/esm2015/modal/modal.component.js +0 -508
  773. package/esm2015/modal/modal.directive.js +0 -52
  774. package/esm2015/modal/modal.module.js +0 -72
  775. package/esm2015/modal/modal.service.js +0 -124
  776. package/esm2015/navbar/navbar-item.component.js +0 -209
  777. package/esm2015/navbar/navbar.component.js +0 -118
  778. package/esm2015/navbar/navbar.module.js +0 -76
  779. package/esm2015/navbar/vertical-navbar.animation.js +0 -10
  780. package/esm2015/navbar/vertical-navbar.component.js +0 -140
  781. package/esm2015/popover/popover-confirm.component.js +0 -116
  782. package/esm2015/popover/popover.component.js +0 -262
  783. package/esm2015/popover/popover.module.js +0 -24
  784. package/esm2015/progress-bar/progress-bar.component.js +0 -50
  785. package/esm2015/progress-bar/progress-bar.module.js +0 -30
  786. package/esm2015/progress-spinner/progress-spinner.component.js +0 -54
  787. package/esm2015/progress-spinner/progress-spinner.module.js +0 -30
  788. package/esm2015/radio/radio.component.js +0 -467
  789. package/esm2015/radio/radio.module.js +0 -20
  790. package/esm2015/select/select.component.js +0 -1122
  791. package/esm2015/select/select.module.js +0 -64
  792. package/esm2015/sidebar/sidebar.component.js +0 -155
  793. package/esm2015/sidebar/sidebar.module.js +0 -30
  794. package/esm2015/sidepanel/sidepanel-container.component.js +0 -114
  795. package/esm2015/sidepanel/sidepanel-directives.js +0 -159
  796. package/esm2015/sidepanel/sidepanel.module.js +0 -74
  797. package/esm2015/sidepanel/sidepanel.service.js +0 -164
  798. package/esm2015/splitter/splitter.component.js +0 -489
  799. package/esm2015/splitter/splitter.module.js +0 -40
  800. package/esm2015/table/table.component.js +0 -16
  801. package/esm2015/table/table.module.js +0 -30
  802. package/esm2015/tabs/paginated-tab-header.js +0 -482
  803. package/esm2015/tabs/tab-body.component.js +0 -186
  804. package/esm2015/tabs/tab-content.directive.js +0 -15
  805. package/esm2015/tabs/tab-group.component.js +0 -359
  806. package/esm2015/tabs/tab-header.component.js +0 -76
  807. package/esm2015/tabs/tab-label-wrapper.directive.js +0 -78
  808. package/esm2015/tabs/tab-label.directive.js +0 -17
  809. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +0 -118
  810. package/esm2015/tabs/tab.component.js +0 -133
  811. package/esm2015/tabs/tabs.module.js +0 -104
  812. package/esm2015/tags/tag-input.js +0 -229
  813. package/esm2015/tags/tag-list.component.js +0 -732
  814. package/esm2015/tags/tag.component.js +0 -386
  815. package/esm2015/tags/tag.module.js +0 -56
  816. package/esm2015/textarea/textarea.component.js +0 -268
  817. package/esm2015/textarea/textarea.module.js +0 -21
  818. package/esm2015/timepicker/timepicker.directive.js +0 -653
  819. package/esm2015/timepicker/timepicker.module.js +0 -34
  820. package/esm2015/toggle/toggle.component.js +0 -169
  821. package/esm2015/toggle/toggle.module.js +0 -20
  822. package/esm2015/tooltip/tooltip.component.js +0 -299
  823. package/esm2015/tooltip/tooltip.module.js +0 -43
  824. package/esm2015/tree/data-source/flat-data-source.js +0 -162
  825. package/esm2015/tree/node.js +0 -31
  826. package/esm2015/tree/outlet.js +0 -15
  827. package/esm2015/tree/padding.directive.js +0 -111
  828. package/esm2015/tree/toggle.js +0 -89
  829. package/esm2015/tree/tree-base.js +0 -243
  830. package/esm2015/tree/tree-option.component.js +0 -238
  831. package/esm2015/tree/tree-selection.component.js +0 -541
  832. package/esm2015/tree/tree.js +0 -23
  833. package/esm2015/tree/tree.module.js +0 -53
  834. package/esm2015/tree-select/tree-select.component.js +0 -901
  835. package/esm2015/tree-select/tree-select.module.js +0 -43
  836. package/fesm2015/ptsecurity-mosaic-autocomplete.js +0 -761
  837. package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +0 -1
  838. package/fesm2015/ptsecurity-mosaic-button-toggle.js +0 -391
  839. package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +0 -1
  840. package/fesm2015/ptsecurity-mosaic-button.js +0 -174
  841. package/fesm2015/ptsecurity-mosaic-button.js.map +0 -1
  842. package/fesm2015/ptsecurity-mosaic-card.js +0 -121
  843. package/fesm2015/ptsecurity-mosaic-card.js.map +0 -1
  844. package/fesm2015/ptsecurity-mosaic-checkbox.js +0 -374
  845. package/fesm2015/ptsecurity-mosaic-checkbox.js.map +0 -1
  846. package/fesm2015/ptsecurity-mosaic-core.js +0 -2680
  847. package/fesm2015/ptsecurity-mosaic-core.js.map +0 -1
  848. package/fesm2015/ptsecurity-mosaic-datepicker.js +0 -2738
  849. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +0 -1
  850. package/fesm2015/ptsecurity-mosaic-design-tokens.js +0 -936
  851. package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +0 -1
  852. package/fesm2015/ptsecurity-mosaic-divider.js +0 -68
  853. package/fesm2015/ptsecurity-mosaic-divider.js.map +0 -1
  854. package/fesm2015/ptsecurity-mosaic-dropdown.js +0 -1116
  855. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +0 -1
  856. package/fesm2015/ptsecurity-mosaic-form-field.js +0 -396
  857. package/fesm2015/ptsecurity-mosaic-form-field.js.map +0 -1
  858. package/fesm2015/ptsecurity-mosaic-icon.js +0 -93
  859. package/fesm2015/ptsecurity-mosaic-icon.js.map +0 -1
  860. package/fesm2015/ptsecurity-mosaic-input.js +0 -605
  861. package/fesm2015/ptsecurity-mosaic-input.js.map +0 -1
  862. package/fesm2015/ptsecurity-mosaic-link.js +0 -137
  863. package/fesm2015/ptsecurity-mosaic-link.js.map +0 -1
  864. package/fesm2015/ptsecurity-mosaic-list.js +0 -822
  865. package/fesm2015/ptsecurity-mosaic-list.js.map +0 -1
  866. package/fesm2015/ptsecurity-mosaic-modal.js +0 -845
  867. package/fesm2015/ptsecurity-mosaic-modal.js.map +0 -1
  868. package/fesm2015/ptsecurity-mosaic-navbar.js +0 -539
  869. package/fesm2015/ptsecurity-mosaic-navbar.js.map +0 -1
  870. package/fesm2015/ptsecurity-mosaic-popover.js +0 -406
  871. package/fesm2015/ptsecurity-mosaic-popover.js.map +0 -1
  872. package/fesm2015/ptsecurity-mosaic-progress-bar.js +0 -84
  873. package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +0 -1
  874. package/fesm2015/ptsecurity-mosaic-progress-spinner.js +0 -88
  875. package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +0 -1
  876. package/fesm2015/ptsecurity-mosaic-radio.js +0 -488
  877. package/fesm2015/ptsecurity-mosaic-radio.js.map +0 -1
  878. package/fesm2015/ptsecurity-mosaic-select.js +0 -1185
  879. package/fesm2015/ptsecurity-mosaic-select.js.map +0 -1
  880. package/fesm2015/ptsecurity-mosaic-sidebar.js +0 -211
  881. package/fesm2015/ptsecurity-mosaic-sidebar.js.map +0 -1
  882. package/fesm2015/ptsecurity-mosaic-sidepanel.js +0 -594
  883. package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +0 -1
  884. package/fesm2015/ptsecurity-mosaic-splitter.js +0 -533
  885. package/fesm2015/ptsecurity-mosaic-splitter.js.map +0 -1
  886. package/fesm2015/ptsecurity-mosaic-table.js +0 -50
  887. package/fesm2015/ptsecurity-mosaic-table.js.map +0 -1
  888. package/fesm2015/ptsecurity-mosaic-tabs.js +0 -1533
  889. package/fesm2015/ptsecurity-mosaic-tabs.js.map +0 -1
  890. package/fesm2015/ptsecurity-mosaic-tags.js +0 -1389
  891. package/fesm2015/ptsecurity-mosaic-tags.js.map +0 -1
  892. package/fesm2015/ptsecurity-mosaic-textarea.js +0 -291
  893. package/fesm2015/ptsecurity-mosaic-textarea.js.map +0 -1
  894. package/fesm2015/ptsecurity-mosaic-timepicker.js +0 -713
  895. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +0 -1
  896. package/fesm2015/ptsecurity-mosaic-toggle.js +0 -191
  897. package/fesm2015/ptsecurity-mosaic-toggle.js.map +0 -1
  898. package/fesm2015/ptsecurity-mosaic-tooltip.js +0 -362
  899. package/fesm2015/ptsecurity-mosaic-tooltip.js.map +0 -1
  900. package/fesm2015/ptsecurity-mosaic-tree-select.js +0 -943
  901. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +0 -1
  902. package/fesm2015/ptsecurity-mosaic-tree.js +0 -1735
  903. package/fesm2015/ptsecurity-mosaic-tree.js.map +0 -1
  904. package/fesm2015/ptsecurity-mosaic.js +0 -4
  905. package/fesm2015/ptsecurity-mosaic.js.map +0 -1
@@ -0,0 +1,254 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, InjectionToken, Input, Optional, Output, ViewEncapsulation } from '@angular/core';
3
+ import { ENTER, SPACE } from '@ptsecurity/cdk/keycodes';
4
+ import { Subject } from 'rxjs';
5
+ import { McOptgroup } from './optgroup';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./optgroup";
8
+ import * as i2 from "../selection/pseudo-checkbox/pseudo-checkbox";
9
+ import * as i3 from "@angular/common";
10
+ /**
11
+ * Option IDs need to be unique across components, so this counter exists outside of
12
+ * the component definition.
13
+ */
14
+ let uniqueIdCounter = 0;
15
+ /** Event object emitted by McOption when selected or deselected. */
16
+ export class McOptionSelectionChange {
17
+ constructor(source, isUserInput = false) {
18
+ this.source = source;
19
+ this.isUserInput = isUserInput;
20
+ }
21
+ }
22
+ /**
23
+ * Injection token used to provide the parent component to options.
24
+ */
25
+ export const MC_OPTION_PARENT_COMPONENT = new InjectionToken('MC_OPTION_PARENT_COMPONENT');
26
+ /**
27
+ * Single option inside of a `<mc-select>` element.
28
+ */
29
+ export class McOption {
30
+ constructor(element, changeDetectorRef, parent, group) {
31
+ this.element = element;
32
+ this.changeDetectorRef = changeDetectorRef;
33
+ this.parent = parent;
34
+ this.group = group;
35
+ /** Event emitted when the option is selected or deselected. */
36
+ // tslint:disable-next-line:no-output-on-prefix
37
+ this.onSelectionChange = new EventEmitter();
38
+ /** Emits when the state of the option changes and any parents have to be notified. */
39
+ this.stateChanges = new Subject();
40
+ this._id = `mc-option-${uniqueIdCounter++}`;
41
+ this._selected = false;
42
+ this._disabled = false;
43
+ this._active = false;
44
+ this.mostRecentViewValue = '';
45
+ }
46
+ get showCheckbox() {
47
+ return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;
48
+ }
49
+ set showCheckbox(value) {
50
+ this._showCheckbox = coerceBooleanProperty(value);
51
+ }
52
+ /**
53
+ * The displayed value of the option. It is necessary to show the selected option in the
54
+ * select's trigger.
55
+ */
56
+ get viewValue() {
57
+ // TODO: Add input property alternative for node envs.
58
+ return (this.getHostElement().textContent || '').trim();
59
+ }
60
+ /** Whether the wrapping component is in multiple selection mode. */
61
+ get multiple() {
62
+ return this.parent && this.parent.multiple;
63
+ }
64
+ get id() {
65
+ return this._id;
66
+ }
67
+ get selected() {
68
+ return this._selected;
69
+ }
70
+ get disabled() {
71
+ return (this.group && this.group.disabled) || this._disabled;
72
+ }
73
+ set disabled(value) {
74
+ this._disabled = coerceBooleanProperty(value);
75
+ }
76
+ /**
77
+ * Whether or not the option is currently active and ready to be selected.
78
+ * An active option displays styles as if it is focused, but the
79
+ * focus is actually retained somewhere else. This comes in handy
80
+ * for components like autocomplete where focus must remain on the input.
81
+ */
82
+ get active() {
83
+ return this._active;
84
+ }
85
+ ngAfterViewChecked() {
86
+ // Since parent components could be using the option's label to display the selected values
87
+ // (e.g. `mc-select`) and they don't have a way of knowing if the option's label has changed
88
+ // we have to check for changes in the DOM ourselves and dispatch an event. These checks are
89
+ // relatively cheap, however we still limit them only to selected options in order to avoid
90
+ // hitting the DOM too often.
91
+ if (this._selected) {
92
+ const viewValue = this.viewValue;
93
+ if (viewValue !== this.mostRecentViewValue) {
94
+ this.mostRecentViewValue = viewValue;
95
+ this.stateChanges.next();
96
+ }
97
+ }
98
+ }
99
+ ngOnDestroy() {
100
+ this.stateChanges.complete();
101
+ }
102
+ getHeight() {
103
+ // tslint:disable-next-line:naming-convention
104
+ const DOMRect = this.element.nativeElement.getClientRects()[0];
105
+ return DOMRect ? DOMRect.height : 0;
106
+ }
107
+ select() {
108
+ if (!this._selected) {
109
+ this._selected = true;
110
+ this.changeDetectorRef.markForCheck();
111
+ this.emitSelectionChangeEvent();
112
+ }
113
+ }
114
+ deselect() {
115
+ if (this._selected) {
116
+ this._selected = false;
117
+ this.changeDetectorRef.markForCheck();
118
+ this.emitSelectionChangeEvent();
119
+ }
120
+ }
121
+ focus() {
122
+ const element = this.getHostElement();
123
+ if (typeof element.focus === 'function') {
124
+ element.focus();
125
+ }
126
+ }
127
+ /**
128
+ * This method sets display styles on the option to make it appear
129
+ * active. This is used by the ActiveDescendantKeyManager so key
130
+ * events will display the proper options as active on arrow key events.
131
+ */
132
+ setActiveStyles() {
133
+ if (!this._active) {
134
+ this._active = true;
135
+ this.changeDetectorRef.markForCheck();
136
+ }
137
+ }
138
+ /**
139
+ * This method removes display styles on the option that made it appear
140
+ * active. This is used by the ActiveDescendantKeyManager so key
141
+ * events will display the proper options as active on arrow key events.
142
+ */
143
+ setInactiveStyles() {
144
+ if (this._active) {
145
+ this._active = false;
146
+ this.changeDetectorRef.markForCheck();
147
+ }
148
+ }
149
+ /** Gets the label to be used when determining whether the option should be focused. */
150
+ getLabel() {
151
+ return this.viewValue;
152
+ }
153
+ /** Ensures the option is selected when activated from the keyboard. */
154
+ handleKeydown(event) {
155
+ // tslint:disable-next-line
156
+ if (event.keyCode === ENTER || event.keyCode === SPACE) {
157
+ this.selectViaInteraction();
158
+ // Prevent the page from scrolling down and form submits.
159
+ event.preventDefault();
160
+ }
161
+ }
162
+ /**
163
+ * `Selects the option while indicating the selection came from the user. Used to
164
+ * determine if the select's view -> model callback should be invoked.`
165
+ */
166
+ selectViaInteraction() {
167
+ if (!this.disabled) {
168
+ this._selected = this.multiple ? !this._selected : true;
169
+ this.changeDetectorRef.markForCheck();
170
+ this.emitSelectionChangeEvent(true);
171
+ }
172
+ }
173
+ getTabIndex() {
174
+ return this.disabled ? '-1' : '0';
175
+ }
176
+ getHostElement() {
177
+ return this.element.nativeElement;
178
+ }
179
+ /** Emits the selection change event. */
180
+ emitSelectionChangeEvent(isUserInput = false) {
181
+ this.onSelectionChange.emit(new McOptionSelectionChange(this, isUserInput));
182
+ }
183
+ }
184
+ /** @nocollapse */ /** @nocollapse */ McOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MC_OPTION_PARENT_COMPONENT, optional: true }, { token: i1.McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
185
+ /** @nocollapse */ /** @nocollapse */ McOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McOption, selector: "mc-option", inputs: { value: "value", showCheckbox: "showCheckbox", disabled: "disabled" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "selectViaInteraction()", "keydown": "handleKeydown($event)" }, properties: { "attr.tabindex": "getTabIndex()", "class.mc-selected": "selected", "class.mc-option-multiple": "multiple", "class.mc-active": "active", "class.mc-disabled": "disabled", "id": "id" }, classAttribute: "mc-option" }, exportAs: ["mcOption"], ngImport: i0, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<span class=\"mc-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 16px);padding-right:var(--mc-option-size-horizontal-padding, 16px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:calc(-1 * var(--mc-option-size-border-width, 2px));right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], components: [{ type: i2.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["state", "disabled"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McOption, decorators: [{
187
+ type: Component,
188
+ args: [{ selector: 'mc-option', exportAs: 'mcOption', host: {
189
+ '[attr.tabindex]': 'getTabIndex()',
190
+ class: 'mc-option',
191
+ '[class.mc-selected]': 'selected',
192
+ '[class.mc-option-multiple]': 'multiple',
193
+ '[class.mc-active]': 'active',
194
+ '[class.mc-disabled]': 'disabled',
195
+ '[id]': 'id',
196
+ '(click)': 'selectViaInteraction()',
197
+ '(keydown)': 'handleKeydown($event)'
198
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<span class=\"mc-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 16px);padding-right:var(--mc-option-size-horizontal-padding, 16px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:calc(-1 * var(--mc-option-size-border-width, 2px));right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"] }]
199
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
200
+ type: Optional
201
+ }, {
202
+ type: Inject,
203
+ args: [MC_OPTION_PARENT_COMPONENT]
204
+ }] }, { type: i1.McOptgroup, decorators: [{
205
+ type: Optional
206
+ }] }]; }, propDecorators: { value: [{
207
+ type: Input
208
+ }], showCheckbox: [{
209
+ type: Input
210
+ }], onSelectionChange: [{
211
+ type: Output
212
+ }], disabled: [{
213
+ type: Input
214
+ }] } });
215
+ /**
216
+ * Counts the amount of option group labels that precede the specified option.
217
+ * @param optionIndex Index of the option at which to start counting.
218
+ * @param options Flat list of all of the options.
219
+ * @param optionGroups Flat list of all of the option groups.
220
+ * @docs-private
221
+ */
222
+ export function countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {
223
+ if (optionGroups.length) {
224
+ const optionsArray = options.toArray();
225
+ const groups = optionGroups.toArray();
226
+ let groupCounter = 0;
227
+ for (let i = 0; i < optionIndex + 1; i++) {
228
+ if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {
229
+ groupCounter++;
230
+ }
231
+ }
232
+ return groupCounter;
233
+ }
234
+ return 0;
235
+ }
236
+ /**
237
+ * Determines the position to which to scroll a panel in order for an option to be into view.
238
+ * @param optionIndex Index of the option to be scrolled into the view.
239
+ * @param optionHeight Height of the options.
240
+ * @param currentScrollPosition Current scroll position of the panel.
241
+ * @param panelHeight Height of the panel.
242
+ * @docs-private
243
+ */
244
+ export function getOptionScrollPosition(optionIndex, optionHeight, currentScrollPosition, panelHeight) {
245
+ const optionOffset = optionIndex * optionHeight;
246
+ if (optionOffset < currentScrollPosition) {
247
+ return optionOffset;
248
+ }
249
+ if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {
250
+ return Math.max(0, optionOffset - panelHeight + optionHeight);
251
+ }
252
+ return currentScrollPosition;
253
+ }
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL2NvcmUvb3B0aW9uL29wdGlvbi50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL29wdGlvbi9vcHRpb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFHeEM7OztHQUdHO0FBQ0gsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBRXhCLG9FQUFvRTtBQUNwRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQW1CLE1BQWdCLEVBQVMsY0FBYyxLQUFLO1FBQTVDLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUFHLENBQUM7Q0FDdEU7QUFZRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNuQyxJQUFJLGNBQWMsQ0FBMEIsNEJBQTRCLENBQUMsQ0FBQztBQUU5RTs7R0FFRztBQXFCSCxNQUFNLE9BQU8sUUFBUTtJQXlFakIsWUFDcUIsT0FBbUIsRUFDbkIsaUJBQW9DLEVBQ1ksTUFBK0IsRUFDM0UsS0FBaUI7UUFIckIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtR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QUVoRCxJQUFJLFlBQVksR0FBRyxxQkFBcUIsRUFBRTtRQUFFLE9BQU8sWUFBWSxDQUFDO0tBQUU7SUFFbEUsSUFBSSxZQUFZLEdBQUcsWUFBWSxHQUFHLHFCQUFxQixHQUFHLFdBQVcsRUFBRTtRQUNuRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUM7S0FDakU7SUFFRCxPQUFPLHFCQUFxQixDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAcHRzZWN1cml0eS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNY09wdGdyb3VwIH0gZnJvbSAnLi9vcHRncm91cCc7XG5cblxuLyoqXG4gKiBPcHRpb24gSURzIG5lZWQgdG8gYmUgdW5pcXVlIGFjcm9zcyBjb21wb25lbnRzLCBzbyB0aGlzIGNvdW50ZXIgZXhpc3RzIG91dHNpZGUgb2ZcbiAqIHRoZSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAqL1xubGV0IHVuaXF1ZUlkQ291bnRlciA9IDA7XG5cbi8qKiBFdmVudCBvYmplY3QgZW1pdHRlZCBieSBNY09wdGlvbiB3aGVuIHNlbGVjdGVkIG9yIGRlc2VsZWN0ZWQuICovXG5leHBvcnQgY2xhc3MgTWNPcHRpb25TZWxlY3Rpb25DaGFuZ2Uge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzb3VyY2U6IE1jT3B0aW9uLCBwdWJsaWMgaXNVc2VySW5wdXQgPSBmYWxzZSkge31cbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBwYXJlbnQgY29tcG9uZW50IHRoYXQgbWFuYWdlcyBhIGxpc3Qgb2Ygb3B0aW9ucy5cbiAqIENvbnRhaW5zIHByb3BlcnRpZXMgdGhhdCB0aGUgb3B0aW9ucyBjYW4gaW5oZXJpdC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGludGVyZmFjZSBNY09wdGlvblBhcmVudENvbXBvbmVudCB7XG4gICAgbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIHRvIHByb3ZpZGUgdGhlIHBhcmVudCBjb21wb25lbnQgdG8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1DX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UID1cbiAgICBuZXcgSW5qZWN0aW9uVG9rZW48TWNPcHRpb25QYXJlbnRDb21wb25lbnQ+KCdNQ19PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCcpO1xuXG4vKipcbiAqIFNpbmdsZSBvcHRpb24gaW5zaWRlIG9mIGEgYDxtYy1zZWxlY3Q+YCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLW9wdGlvbicsXG4gICAgZXhwb3J0QXM6ICdtY09wdGlvbicsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ2dldFRhYkluZGV4KCknLFxuICAgICAgICBjbGFzczogJ21jLW9wdGlvbicsXG4gICAgICAgICdbY2xhc3MubWMtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1vcHRpb24tbXVsdGlwbGVdJzogJ211bHRpcGxlJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1hY3RpdmVdJzogJ2FjdGl2ZScsXG4gICAgICAgICdbY2xhc3MubWMtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1tpZF0nOiAnaWQnLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3NlbGVjdFZpYUludGVyYWN0aW9uKCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIHN0eWxlVXJsczogWydvcHRpb24uc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnb3B0aW9uLmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWNPcHRpb24gaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgZm9ybSB2YWx1ZSBvZiB0aGUgb3B0aW9uLiAqL1xuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93Q2hlY2tib3goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q2hlY2tib3ggPT09IHVuZGVmaW5lZCA/IHRoaXMubXVsdGlwbGUgOiB0aGlzLl9zaG93Q2hlY2tib3g7XG4gICAgfVxuXG4gICAgc2V0IHNob3dDaGVja2JveCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9zaG93Q2hlY2tib3ggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Nob3dDaGVja2JveDogYm9vbGVhbjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCBvciBkZXNlbGVjdGVkLiAqL1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uU2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNY09wdGlvblNlbGVjdGlvbkNoYW5nZT4oKTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgb3B0aW9uIGNoYW5nZXMgYW5kIGFueSBwYXJlbnRzIGhhdmUgdG8gYmUgbm90aWZpZWQuICovXG4gICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkaXNwbGF5ZWQgdmFsdWUgb2YgdGhlIG9wdGlvbi4gSXQgaXMgbmVjZXNzYXJ5IHRvIHNob3cgdGhlIHNlbGVjdGVkIG9wdGlvbiBpbiB0aGVcbiAgICAgKiBzZWxlY3QncyB0cmlnZ2VyLlxuICAgICAqL1xuICAgIGdldCB2aWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gVE9ETzogQWRkIGlucHV0IHByb3BlcnR5IGFsdGVybmF0aXZlIGZvciBub2RlIGVudnMuXG4gICAgICAgIHJldHVybiAodGhpcy5nZXRIb3N0RWxlbWVudCgpLnRleHRDb250ZW50IHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHdyYXBwaW5nIGNvbXBvbmVudCBpcyBpbiBtdWx0aXBsZSBzZWxlY3Rpb24gbW9kZS4gKi9cbiAgICBnZXQgbXVsdGlwbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5tdWx0aXBsZTtcbiAgICB9XG5cbiAgICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lkID0gYG1jLW9wdGlvbi0ke3VuaXF1ZUlkQ291bnRlcisrfWA7XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmRpc2FibGVkKSB8fCB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZSBhbmQgcmVhZHkgdG8gYmUgc2VsZWN0ZWQuXG4gICAgICogQW4gYWN0aXZlIG9wdGlvbiBkaXNwbGF5cyBzdHlsZXMgYXMgaWYgaXQgaXMgZm9jdXNlZCwgYnV0IHRoZVxuICAgICAqIGZvY3VzIGlzIGFjdHVhbGx5IHJldGFpbmVkIHNvbWV3aGVyZSBlbHNlLiBUaGlzIGNvbWVzIGluIGhhbmR5XG4gICAgICogZm9yIGNvbXBvbmVudHMgbGlrZSBhdXRvY29tcGxldGUgd2hlcmUgZm9jdXMgbXVzdCByZW1haW4gb24gdGhlIGlucHV0LlxuICAgICAqL1xuICAgIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG1vc3RSZWNlbnRWaWV3VmFsdWUgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1DX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudDogTWNPcHRpb25QYXJlbnRDb21wb25lbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGdyb3VwOiBNY09wdGdyb3VwXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICAvLyBTaW5jZSBwYXJlbnQgY29tcG9uZW50cyBjb3VsZCBiZSB1c2luZyB0aGUgb3B0aW9uJ3MgbGFiZWwgdG8gZGlzcGxheSB0aGUgc2VsZWN0ZWQgdmFsdWVzXG4gICAgICAgIC8vIChlLmcuIGBtYy1zZWxlY3RgKSBhbmQgdGhleSBkb24ndCBoYXZlIGEgd2F5IG9mIGtub3dpbmcgaWYgdGhlIG9wdGlvbidzIGxhYmVsIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIHdlIGhhdmUgdG8gY2hlY2sgZm9yIGNoYW5nZXMgaW4gdGhlIERPTSBvdXJzZWx2ZXMgYW5kIGRpc3BhdGNoIGFuIGV2ZW50LiBUaGVzZSBjaGVja3MgYXJlXG4gICAgICAgIC8vIHJlbGF0aXZlbHkgY2hlYXAsIGhvd2V2ZXIgd2Ugc3RpbGwgbGltaXQgdGhlbSBvbmx5IHRvIHNlbGVjdGVkIG9wdGlvbnMgaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgICAgLy8gaGl0dGluZyB0aGUgRE9NIHRvbyBvZnRlbi5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZpZXdWYWx1ZSAhPT0gdGhpcy5tb3N0UmVjZW50Vmlld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3N0UmVjZW50Vmlld1ZhbHVlID0gdmlld1ZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGdldEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgY29uc3QgRE9NUmVjdDogRE9NUmVjdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldENsaWVudFJlY3RzKClbMF07XG5cbiAgICAgICAgcmV0dXJuIERPTVJlY3QgPyBET01SZWN0LmhlaWdodCA6IDA7XG4gICAgfVxuXG4gICAgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHNldHMgZGlzcGxheSBzdHlsZXMgb24gdGhlIG9wdGlvbiB0byBtYWtlIGl0IGFwcGVhclxuICAgICAqIGFjdGl2ZS4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciBzbyBrZXlcbiAgICAgKiBldmVudHMgd2lsbCBkaXNwbGF5IHRoZSBwcm9wZXIgb3B0aW9ucyBhcyBhY3RpdmUgb24gYXJyb3cga2V5IGV2ZW50cy5cbiAgICAgKi9cbiAgICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJlbW92ZXMgZGlzcGxheSBzdHlsZXMgb24gdGhlIG9wdGlvbiB0aGF0IG1hZGUgaXQgYXBwZWFyXG4gICAgICogYWN0aXZlLiBUaGlzIGlzIHVzZWQgYnkgdGhlIEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIHNvIGtleVxuICAgICAqIGV2ZW50cyB3aWxsIGRpc3BsYXkgdGhlIHByb3BlciBvcHRpb25zIGFzIGFjdGl2ZSBvbiBhcnJvdyBrZXkgZXZlbnRzLlxuICAgICAqL1xuICAgIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2V0cyB0aGUgbGFiZWwgdG8gYmUgdXNlZCB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgZm9jdXNlZC4gKi9cbiAgICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3VmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEVuc3VyZXMgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCB3aGVuIGFjdGl2YXRlZCBmcm9tIHRoZSBrZXlib2FyZC4gKi9cbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRU5URVIgfHwgZXZlbnQua2V5Q29kZSA9PT0gU1BBQ0UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VmlhSW50ZXJhY3Rpb24oKTtcblxuICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgcGFnZSBmcm9tIHNjcm9sbGluZyBkb3duIGFuZCBmb3JtIHN1Ym1pdHMuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYFNlbGVjdHMgdGhlIG9wdGlvbiB3aGlsZSBpbmRpY2F0aW5nIHRoZSBzZWxlY3Rpb24gY2FtZSBmcm9tIHRoZSB1c2VyLiBVc2VkIHRvXG4gICAgICogZGV0ZXJtaW5lIGlmIHRoZSBzZWxlY3QncyB2aWV3IC0+IG1vZGVsIGNhbGxiYWNrIHNob3VsZCBiZSBpbnZva2VkLmBcbiAgICAgKi9cbiAgICBzZWxlY3RWaWFJbnRlcmFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUgPyAhdGhpcy5fc2VsZWN0ZWQgOiB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUYWJJbmRleCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICctMScgOiAnMCc7XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEVtaXRzIHRoZSBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50LiAqL1xuICAgIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGlzVXNlcklucHV0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBNY09wdGlvblNlbGVjdGlvbkNoYW5nZSh0aGlzLCBpc1VzZXJJbnB1dCkpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb3VudHMgdGhlIGFtb3VudCBvZiBvcHRpb24gZ3JvdXAgbGFiZWxzIHRoYXQgcHJlY2VkZSB0aGUgc3BlY2lmaWVkIG9wdGlvbi5cbiAqIEBwYXJhbSBvcHRpb25JbmRleCBJbmRleCBvZiB0aGUgb3B0aW9uIGF0IHdoaWNoIHRvIHN0YXJ0IGNvdW50aW5nLlxuICogQHBhcmFtIG9wdGlvbnMgRmxhdCBsaXN0IG9mIGFsbCBvZiB0aGUgb3B0aW9ucy5cbiAqIEBwYXJhbSBvcHRpb25Hcm91cHMgRmxhdCBsaXN0IG9mIGFsbCBvZiB0aGUgb3B0aW9uIGdyb3Vwcy5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvdW50R3JvdXBMYWJlbHNCZWZvcmVPcHRpb24oXG4gICAgb3B0aW9uSW5kZXg6IG51bWJlcixcbiAgICBvcHRpb25zOiBRdWVyeUxpc3Q8TWNPcHRpb24+LFxuICAgIG9wdGlvbkdyb3VwczogUXVlcnlMaXN0PE1jT3B0Z3JvdXA+XG4pOiBudW1iZXIge1xuXG4gICAgaWYgKG9wdGlvbkdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc0FycmF5ID0gb3B0aW9ucy50b0FycmF5KCk7XG4gICAgICAgIGNvbnN0IGdyb3VwcyA9IG9wdGlvbkdyb3Vwcy50b0FycmF5KCk7XG5cbiAgICAgICAgbGV0IGdyb3VwQ291bnRlciA9IDA7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25JbmRleCArIDE7IGkrKykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnNBcnJheVtpXS5ncm91cCAmJiBvcHRpb25zQXJyYXlbaV0uZ3JvdXAgPT09IGdyb3Vwc1tncm91cENvdW50ZXJdKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBDb3VudGVyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ3JvdXBDb3VudGVyO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIHRvIHdoaWNoIHRvIHNjcm9sbCBhIHBhbmVsIGluIG9yZGVyIGZvciBhbiBvcHRpb24gdG8gYmUgaW50byB2aWV3LlxuICogQHBhcmFtIG9wdGlvbkluZGV4IEluZGV4IG9mIHRoZSBvcHRpb24gdG8gYmUgc2Nyb2xsZWQgaW50byB0aGUgdmlldy5cbiAqIEBwYXJhbSBvcHRpb25IZWlnaHQgSGVpZ2h0IG9mIHRoZSBvcHRpb25zLlxuICogQHBhcmFtIGN1cnJlbnRTY3JvbGxQb3NpdGlvbiBDdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgcGFuZWwuXG4gKiBAcGFyYW0gcGFuZWxIZWlnaHQgSGVpZ2h0IG9mIHRoZSBwYW5lbC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wdGlvblNjcm9sbFBvc2l0aW9uKFxuICAgIG9wdGlvbkluZGV4OiBudW1iZXIsXG4gICAgb3B0aW9uSGVpZ2h0OiBudW1iZXIsXG4gICAgY3VycmVudFNjcm9sbFBvc2l0aW9uOiBudW1iZXIsXG4gICAgcGFuZWxIZWlnaHQ6IG51bWJlclxuKTogbnVtYmVyIHtcbiAgICBjb25zdCBvcHRpb25PZmZzZXQgPSBvcHRpb25JbmRleCAqIG9wdGlvbkhlaWdodDtcblxuICAgIGlmIChvcHRpb25PZmZzZXQgPCBjdXJyZW50U2Nyb2xsUG9zaXRpb24pIHsgcmV0dXJuIG9wdGlvbk9mZnNldDsgfVxuXG4gICAgaWYgKG9wdGlvbk9mZnNldCArIG9wdGlvbkhlaWdodCA+IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiArIHBhbmVsSGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCgwLCBvcHRpb25PZmZzZXQgLSBwYW5lbEhlaWdodCArIG9wdGlvbkhlaWdodCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRTY3JvbGxQb3NpdGlvbjtcbn1cblxuIiwiPG1jLXBzZXVkby1jaGVja2JveFxuICAgICpuZ0lmPVwic2hvd0NoZWNrYm94XCJcbiAgICBbc3RhdGVdPVwic2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG48L21jLXBzZXVkby1jaGVja2JveD5cblxuPHNwYW4gY2xhc3M9XCJtYy1vcHRpb24tdGV4dFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG5cbjxkaXYgY2xhc3M9XCJtYy1vcHRpb24tb3ZlcmxheVwiPjwvZGl2PlxuIl19
@@ -0,0 +1,239 @@
1
+ import { Directionality } from '@angular/cdk/bidi';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
4
+ import { ComponentPortal } from '@angular/cdk/portal';
5
+ import { Directive, ElementRef, NgZone, ViewContainerRef } from '@angular/core';
6
+ import { ESCAPE } from '@ptsecurity/cdk/keycodes';
7
+ import { Subject } from 'rxjs';
8
+ import { delay as rxDelay, distinctUntilChanged, takeUntil } from 'rxjs/operators';
9
+ import { EXTENDED_OVERLAY_POSITIONS, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP } from '../overlay/overlay-position-map';
10
+ import { PopUpPlacements, PopUpTriggers } from './constants';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/cdk/overlay";
13
+ import * as i2 from "@angular/cdk/bidi";
14
+ // tslint:disable-next-line:naming-convention
15
+ export class McPopUpTrigger {
16
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
17
+ this.overlay = overlay;
18
+ this.elementRef = elementRef;
19
+ this.ngZone = ngZone;
20
+ this.scrollDispatcher = scrollDispatcher;
21
+ this.hostView = hostView;
22
+ this.scrollStrategy = scrollStrategy;
23
+ this.direction = direction;
24
+ this.isOpen = false;
25
+ this.enterDelay = 0;
26
+ this.leaveDelay = 0;
27
+ this.placement = PopUpPlacements.Top;
28
+ this.placementPriority = null;
29
+ this.visible = false;
30
+ this.listeners = new Map();
31
+ this.destroyed = new Subject();
32
+ this.detach = () => {
33
+ if (this.overlayRef && this.overlayRef.hasAttached()) {
34
+ this.overlayRef.detach();
35
+ }
36
+ this.instance = null;
37
+ };
38
+ this.onPositionChange = ($event) => {
39
+ if (!this.instance) {
40
+ return;
41
+ }
42
+ let newPlacement = this.placement;
43
+ const { originX, originY, overlayX, overlayY } = $event.connectionPair;
44
+ Object.keys(this.availablePositions).some((key) => {
45
+ if (originX === this.availablePositions[key].originX && originY === this.availablePositions[key].originY &&
46
+ overlayX === this.availablePositions[key].overlayX && overlayY === this.availablePositions[key].overlayY) {
47
+ newPlacement = key;
48
+ return true;
49
+ }
50
+ return false;
51
+ });
52
+ this.placementChange.emit(newPlacement);
53
+ this.updateClassMap(newPlacement);
54
+ this.instance.detectChanges();
55
+ };
56
+ this.addEventListener = (listener, event) => {
57
+ this.elementRef.nativeElement.addEventListener(event, listener);
58
+ };
59
+ this.removeEventListener = (listener, event) => {
60
+ this.elementRef.nativeElement.removeEventListener(event, listener);
61
+ };
62
+ this.availablePositions = POSITION_MAP;
63
+ }
64
+ ngOnInit() {
65
+ this.initListeners();
66
+ }
67
+ ngOnDestroy() {
68
+ if (this.overlayRef) {
69
+ this.overlayRef.dispose();
70
+ }
71
+ this.listeners.forEach(this.removeEventListener);
72
+ this.listeners.clear();
73
+ this.destroyed.next();
74
+ this.destroyed.complete();
75
+ }
76
+ updatePlacement(value) {
77
+ if (POSITION_TO_CSS_MAP[value]) {
78
+ this.placement = value;
79
+ this.updateClassMap();
80
+ }
81
+ else {
82
+ this.placement = PopUpPlacements.Top;
83
+ console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);
84
+ }
85
+ if (this.visible) {
86
+ this.updatePosition();
87
+ }
88
+ }
89
+ updatePlacementPriority(value) {
90
+ if (value && value.length > 0) {
91
+ this.placementPriority = value;
92
+ }
93
+ else {
94
+ this.placementPriority = null;
95
+ }
96
+ }
97
+ updateVisible(externalValue) {
98
+ const value = coerceBooleanProperty(externalValue);
99
+ if (this.visible !== value) {
100
+ this.visible = value;
101
+ if (value) {
102
+ this.show();
103
+ }
104
+ else {
105
+ this.hide();
106
+ }
107
+ }
108
+ }
109
+ handleKeydown(event) {
110
+ if (this.isOpen && event.keyCode === ESCAPE) { // tslint:disable-line
111
+ this.hide();
112
+ }
113
+ }
114
+ handleTouchend() {
115
+ this.hide();
116
+ }
117
+ show(delay = this.enterDelay) {
118
+ if (this.disabled || this.instance) {
119
+ return;
120
+ }
121
+ this.overlayRef = this.createOverlay();
122
+ this.detach();
123
+ this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);
124
+ this.instance = this.overlayRef.attach(this.portal).instance;
125
+ this.instance.afterHidden()
126
+ .pipe(takeUntil(this.destroyed))
127
+ .subscribe(this.detach);
128
+ this.updateClassMap();
129
+ this.updateData();
130
+ this.instance.visibleChange
131
+ .pipe(takeUntil(this.destroyed), distinctUntilChanged())
132
+ .subscribe((value) => {
133
+ this.visible = value;
134
+ this.visibleChange.emit(value);
135
+ this.isOpen = value;
136
+ });
137
+ this.updatePosition();
138
+ this.instance.show(delay);
139
+ }
140
+ hide(delay = this.leaveDelay) {
141
+ if (this.instance) {
142
+ this.instance.hide(delay);
143
+ }
144
+ }
145
+ /** Create the overlay config and position strategy */
146
+ createOverlay() {
147
+ if (this.overlayRef) {
148
+ return this.overlayRef;
149
+ }
150
+ // Create connected position strategy that listens for scroll events to reposition.
151
+ const strategy = this.overlay
152
+ .position()
153
+ .flexibleConnectedTo(this.elementRef)
154
+ .withTransformOriginOn(this.originSelector)
155
+ .withFlexibleDimensions(false)
156
+ .withPositions([...EXTENDED_OVERLAY_POSITIONS])
157
+ .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.elementRef));
158
+ strategy.positionChanges
159
+ .pipe(takeUntil(this.destroyed))
160
+ .subscribe(this.onPositionChange);
161
+ this.overlayRef = this.overlay.create({
162
+ ...this.overlayConfig,
163
+ direction: this.direction,
164
+ positionStrategy: strategy,
165
+ scrollStrategy: this.scrollStrategy()
166
+ });
167
+ this.closingActions()
168
+ .pipe(takeUntil(this.destroyed))
169
+ .pipe(rxDelay(0))
170
+ .subscribe(() => this.hide());
171
+ this.overlayRef.outsidePointerEvents()
172
+ .subscribe(() => this.instance.handleBodyInteraction());
173
+ this.overlayRef.detachments()
174
+ .pipe(takeUntil(this.destroyed))
175
+ .subscribe(this.detach);
176
+ return this.overlayRef;
177
+ }
178
+ initListeners() {
179
+ this.clearListeners();
180
+ if (this.trigger.includes(PopUpTriggers.Click)) {
181
+ this.listeners
182
+ .set('click', () => this.show())
183
+ .forEach(this.addEventListener);
184
+ }
185
+ if (this.trigger.includes(PopUpTriggers.Hover)) {
186
+ this.listeners
187
+ .set('mouseenter', () => this.show())
188
+ .set('mouseleave', () => this.hide())
189
+ .forEach(this.addEventListener);
190
+ }
191
+ if (this.trigger.includes(PopUpTriggers.Focus)) {
192
+ this.listeners
193
+ .set('focus', () => this.show())
194
+ .set('blur', () => this.hide())
195
+ .forEach(this.addEventListener);
196
+ }
197
+ }
198
+ /** Updates the position of the current popover. */
199
+ updatePosition(reapplyPosition = false) {
200
+ this.overlayRef = this.createOverlay();
201
+ const position = this.overlayRef.getConfig().positionStrategy
202
+ .withPositions(this.getPrioritizedPositions())
203
+ .withPush(true);
204
+ if (reapplyPosition) {
205
+ setTimeout(() => position.reapplyLastPosition());
206
+ }
207
+ }
208
+ getPriorityPlacementStrategy(value) {
209
+ const result = [];
210
+ const possiblePositions = Object.keys(this.availablePositions);
211
+ if (Array.isArray(value)) {
212
+ value.forEach((position) => {
213
+ if (possiblePositions.includes(position)) {
214
+ result.push(this.availablePositions[position]);
215
+ }
216
+ });
217
+ }
218
+ else if (possiblePositions.includes(value)) {
219
+ result.push(this.availablePositions[value]);
220
+ }
221
+ return result;
222
+ }
223
+ getPrioritizedPositions() {
224
+ if (this.placementPriority) {
225
+ return this.getPriorityPlacementStrategy(this.placementPriority);
226
+ }
227
+ return POSITION_PRIORITY_STRATEGY[this.placement];
228
+ }
229
+ clearListeners() {
230
+ this.listeners.forEach(this.removeEventListener);
231
+ this.listeners.clear();
232
+ }
233
+ }
234
+ /** @nocollapse */ /** @nocollapse */ McPopUpTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPopUpTrigger, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
235
+ /** @nocollapse */ /** @nocollapse */ McPopUpTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McPopUpTrigger, ngImport: i0 });
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPopUpTrigger, decorators: [{
237
+ type: Directive
238
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined }, { type: i2.Directionality }]; } });
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvY29yZS9wb3AtdXAvcG9wLXVwLXRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFJSCxPQUFPLEVBRVAsZ0JBQWdCLEVBQ25CLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFHTixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssSUFBSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxFQUNILDBCQUEwQixFQUMxQixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLG1CQUFtQixFQUN0QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7O0FBSTdELDZDQUE2QztBQUM3QyxNQUFNLE9BQWdCLGNBQWM7SUFzQ2hDLFlBQ2MsT0FBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsTUFBYyxFQUNkLGdCQUFrQyxFQUNsQyxRQUEwQixFQUMxQixjQUFjLEVBQ2QsU0FBMEI7UUFOMUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixN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Y3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcbiAgICBDb25uZWN0aW9uUG9zaXRpb25QYWlyLFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlSZWYsXG4gICAgU2Nyb2xsRGlzcGF0Y2hlclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXkvb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBOZ1pvbmUsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQHB0c2VjdXJpdHkvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IGFzIHJ4RGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgRVhURU5ERURfT1ZFUkxBWV9QT1NJVElPTlMsXG4gICAgUE9TSVRJT05fTUFQLFxuICAgIFBPU0lUSU9OX1BSSU9SSVRZX1NUUkFURUdZLFxuICAgIFBPU0lUSU9OX1RPX0NTU19NQVBcbn0gZnJvbSAnLi4vb3ZlcmxheS9vdmVybGF5LXBvc2l0aW9uLW1hcCc7XG5cbmltcG9ydCB7IFBvcFVwUGxhY2VtZW50cywgUG9wVXBUcmlnZ2VycyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuXG5ARGlyZWN0aXZlKClcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1jUG9wVXBUcmlnZ2VyPFQ+IHtcbiAgICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGVudGVyRGVsYXk6IG51bWJlciA9IDA7XG4gICAgbGVhdmVEZWxheTogbnVtYmVyID0gMDtcblxuICAgIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuICAgIGFic3RyYWN0IHRyaWdnZXI6IHN0cmluZztcbiAgICBhYnN0cmFjdCBjdXN0b21DbGFzczogc3RyaW5nO1xuICAgIGFic3RyYWN0IGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBhYnN0cmFjdCBwbGFjZW1lbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuICAgIGFic3RyYWN0IHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBvcmlnaW5TZWxlY3Rvcjogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnO1xuXG4gICAgcHJvdGVjdGVkIHBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5Ub3A7XG4gICAgcHJvdGVjdGVkIHBsYWNlbWVudFByaW9yaXR5OiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIHZpc2libGUgPSBmYWxzZTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvbiBvcnRob2RveC1nZXR0ZXItYW5kLXNldHRlclxuICAgIHByb3RlY3RlZCBfY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bmFtaW5nLWNvbnZlbnRpb24gb3J0aG9kb3gtZ2V0dGVyLWFuZC1zZXR0ZXJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvbiBvcnRob2RveC1nZXR0ZXItYW5kLXNldHRlclxuICAgIHByb3RlY3RlZCBfY3VzdG9tQ2xhc3M6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcbiAgICBwcm90ZWN0ZWQgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD47XG4gICAgcHJvdGVjdGVkIGluc3RhbmNlOiBhbnkgfCBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGxpc3RlbmVycyA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0PigpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF2YWlsYWJsZVBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH07XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcm90ZWN0ZWQgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgcHJvdGVjdGVkIGhvc3RWaWV3OiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgIHByb3RlY3RlZCBkaXJlY3Rpb24/OiBEaXJlY3Rpb25hbGl0eVxuICAgICkge1xuICAgICAgICB0aGlzLmF2YWlsYWJsZVBvc2l0aW9ucyA9IFBPU0lUSU9OX01BUDtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ/OiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgdXBkYXRlRGF0YSgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgY2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgYWJzdHJhY3QgZ2V0T3ZlcmxheUhhbmRsZUNvbXBvbmVudFR5cGUoKTogVHlwZTxUPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2godGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKTtcblxuICAgICAgICB0aGlzLmxpc3RlbmVycy5jbGVhcigpO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBpZiAoUE9TSVRJT05fVE9fQ1NTX01BUFt2YWx1ZV0pIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlRvcDtcblxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIHBvc2l0aW9uOiAke3ZhbHVlfS4gV2lsbCB1c2VkIGRlZmF1bHQgcG9zaXRpb246ICR7dGhpcy5wbGFjZW1lbnR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZW1lbnRQcmlvcml0eSh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wbGFjZW1lbnRQcmlvcml0eSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wbGFjZW1lbnRQcmlvcml0eSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVWaXNpYmxlKGV4dGVybmFsVmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZXh0ZXJuYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUpIHsgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVUb3VjaGVuZCgpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgc2hvdyhkZWxheTogbnVtYmVyID0gdGhpcy5lbnRlckRlbGF5KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaW5zdGFuY2UpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgICAgIHRoaXMuZGV0YWNoKCk7XG5cbiAgICAgICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbCB8fCBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuZ2V0T3ZlcmxheUhhbmRsZUNvbXBvbmVudFR5cGUoKSwgdGhpcy5ob3N0Vmlldyk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWwpLmluc3RhbmNlO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuYWZ0ZXJIaWRkZW4oKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5kZXRhY2gpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnZpc2libGVDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2hvdyhkZWxheSk7XG4gICAgfVxuXG4gICAgaGlkZShkZWxheTogbnVtYmVyID0gdGhpcy5sZWF2ZURlbGF5KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlLmhpZGUoZGVsYXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGV0YWNoID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc3RhbmNlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIHRoZSBvdmVybGF5IGNvbmZpZyBhbmQgcG9zaXRpb24gc3RyYXRlZ3kgKi9cbiAgICBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7IHJldHVybiB0aGlzLm92ZXJsYXlSZWY7IH1cblxuICAgICAgICAvLyBDcmVhdGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5IHRoYXQgbGlzdGVucyBmb3Igc2Nyb2xsIGV2ZW50cyB0byByZXBvc2l0aW9uLlxuICAgICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcbiAgICAgICAgICAgIC53aXRoVHJhbnNmb3JtT3JpZ2luT24odGhpcy5vcmlnaW5TZWxlY3RvcilcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLkVYVEVOREVEX09WRVJMQVlfUE9TSVRJT05TXSlcbiAgICAgICAgICAgIC53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModGhpcy5zY3JvbGxEaXNwYXRjaGVyLmdldEFuY2VzdG9yU2Nyb2xsQ29udGFpbmVycyh0aGlzLmVsZW1lbnRSZWYpKTtcblxuICAgICAgICBzdHJhdGVneS5wb3NpdGlvbkNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25Qb3NpdGlvbkNoYW5nZSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLm92ZXJsYXlDb25maWcsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogc3RyYXRlZ3ksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSgpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2xvc2luZ0FjdGlvbnMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5waXBlKHJ4RGVsYXkoMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGlkZSgpKTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluc3RhbmNlIS5oYW5kbGVCb2R5SW50ZXJhY3Rpb24oKSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuZGV0YWNoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5UmVmO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UgPSAoJGV2ZW50OiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBuZXdQbGFjZW1lbnQgPSB0aGlzLnBsYWNlbWVudDtcblxuICAgICAgICBjb25zdCB7IG9yaWdpblgsIG9yaWdpblksIG92ZXJsYXlYLCBvdmVybGF5WSB9ID0gJGV2ZW50LmNvbm5lY3Rpb25QYWlyO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zKS5zb21lKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBvcmlnaW5YID09PSB0aGlzLmF2YWlsYWJsZVBvc2l0aW9uc1trZXldLm9yaWdpblggJiYgb3JpZ2luWSA9PT0gdGhpcy5hdmFpbGFibGVQb3NpdGlvbnNba2V5XS5vcmlnaW5ZICYmXG4gICAgICAgICAgICAgICAgb3ZlcmxheVggPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3ZlcmxheVggJiYgb3ZlcmxheVkgPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3ZlcmxheVlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG5ld1BsYWNlbWVudCA9IGtleSBhcyBQb3BVcFBsYWNlbWVudHM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBsYWNlbWVudENoYW5nZS5lbWl0KG5ld1BsYWNlbWVudCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGluaXRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVyc1xuICAgICAgICAgICAgICAgIC5zZXQoJ2NsaWNrJywgKCkgPT4gdGhpcy5zaG93KCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2godGhpcy5hZGRFdmVudExpc3RlbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5Ib3ZlcikpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgLnNldCgnbW91c2VlbnRlcicsICgpID0+IHRoaXMuc2hvdygpKVxuICAgICAgICAgICAgICAgIC5zZXQoJ21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLmhpZGUoKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCh0aGlzLmFkZEV2ZW50TGlzdGVuZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkZvY3VzKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnNcbiAgICAgICAgICAgICAgICAuc2V0KCdmb2N1cycsICgpID0+IHRoaXMuc2hvdygpKVxuICAgICAgICAgICAgICAgIC5zZXQoJ2JsdXInLCAoKSA9PiB0aGlzLmhpZGUoKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCh0aGlzLmFkZEV2ZW50TGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHBvcG92ZXIuICovXG4gICAgdXBkYXRlUG9zaXRpb24ocmVhcHBseVBvc2l0aW9uOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAodGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRQcmlvcml0aXplZFBvc2l0aW9ucygpKVxuICAgICAgICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgICAgIGlmIChyZWFwcGx5UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcG9zaXRpb24ucmVhcHBseUxhc3RQb3NpdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmlvcml0eVBsYWNlbWVudFN0cmF0ZWd5KHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdID0gW107XG4gICAgICAgIGNvbnN0IHBvc3NpYmxlUG9zaXRpb25zID0gT2JqZWN0LmtleXModGhpcy5hdmFpbGFibGVQb3NpdGlvbnMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocG9zaXRpb246IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwb3NzaWJsZVBvc2l0aW9ucy5pbmNsdWRlcyhwb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5hdmFpbGFibGVQb3NpdGlvbnNbcG9zaXRpb25dKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChwb3NzaWJsZVBvc2l0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW3ZhbHVlXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmlvcml0aXplZFBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2VtZW50UHJpb3JpdHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByaW9yaXR5UGxhY2VtZW50U3RyYXRlZ3kodGhpcy5wbGFjZW1lbnRQcmlvcml0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUE9TSVRJT05fUFJJT1JJVFlfU1RSQVRFR1lbdGhpcy5wbGFjZW1lbnRdO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhckxpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIpO1xuXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVyID0gKGxpc3RlbmVyOiBFdmVudExpc3RlbmVyIHwgRXZlbnRMaXN0ZW5lck9iamVjdCwgZXZlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVFdmVudExpc3RlbmVyID0gKGxpc3RlbmVyOiBFdmVudExpc3RlbmVyIHwgRXZlbnRMaXN0ZW5lck9iamVjdCwgZXZlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgfVxufVxuIl19