@ptsecurity/mosaic 12.2.2 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/_theming.scss +78 -48
  2. package/_visual.scss +11 -8
  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 +4 -4
  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/datepicker/README.md +0 -0
  20. package/datepicker/package.json +5 -5
  21. package/design-tokens/package.json +5 -5
  22. package/design-tokens/tokens/components/navbar.json5 +12 -9
  23. package/design-tokens/tokens.d.ts +11 -8
  24. package/divider/README.md +0 -0
  25. package/divider/package.json +5 -5
  26. package/dropdown/package.json +5 -5
  27. package/{esm2015/autocomplete/autocomplete-origin.directive.js → esm2020/autocomplete/autocomplete-origin.directive.mjs} +4 -4
  28. package/{esm2015/autocomplete/autocomplete-trigger.directive.js → esm2020/autocomplete/autocomplete-trigger.directive.mjs} +4 -4
  29. package/esm2020/autocomplete/autocomplete.component.mjs +154 -0
  30. package/{esm2015/autocomplete/autocomplete.module.js → esm2020/autocomplete/autocomplete.module.mjs} +5 -5
  31. package/{esm2015/autocomplete/index.js → esm2020/autocomplete/index.mjs} +0 -0
  32. package/{esm2015/autocomplete/ptsecurity-mosaic-autocomplete.js → esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs} +0 -0
  33. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  34. package/esm2020/button/button.component.mjs +129 -0
  35. package/esm2020/button/button.module.mjs +38 -0
  36. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  37. package/{esm2015/button/ptsecurity-mosaic-button.js → esm2020/button/ptsecurity-mosaic-button.mjs} +0 -0
  38. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  39. package/esm2020/button-toggle/button-toggle.component.mjs +362 -0
  40. package/{esm2015/button-toggle/button-toggle.module.js → esm2020/button-toggle/button-toggle.module.mjs} +5 -5
  41. package/{esm2015/button-toggle/index.js → esm2020/button-toggle/index.mjs} +0 -0
  42. package/{esm2015/button-toggle/ptsecurity-mosaic-button-toggle.js → esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs} +0 -0
  43. package/{esm2015/button-toggle/public-api.js → esm2020/button-toggle/public-api.mjs} +0 -0
  44. package/esm2020/card/card.component.mjs +80 -0
  45. package/{esm2015/card/card.module.js → esm2020/card/card.module.mjs} +5 -5
  46. package/{esm2015/card/index.js → esm2020/card/index.mjs} +0 -0
  47. package/{esm2015/card/ptsecurity-mosaic-card.js → esm2020/card/ptsecurity-mosaic-card.mjs} +0 -0
  48. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  49. package/{esm2015/checkbox/checkbox-config.js → esm2020/checkbox/checkbox-config.mjs} +0 -0
  50. package/{esm2015/checkbox/checkbox-module.js → esm2020/checkbox/checkbox-module.mjs} +5 -5
  51. package/{esm2015/checkbox/checkbox-required-validator.js → esm2020/checkbox/checkbox-required-validator.mjs} +4 -4
  52. package/esm2020/checkbox/checkbox.mjs +315 -0
  53. package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
  54. package/{esm2015/checkbox/ptsecurity-mosaic-checkbox.js → esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs} +0 -0
  55. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  56. package/{esm2015/core/animation/animation.js → esm2020/core/animation/animation.mjs} +0 -0
  57. package/{esm2015/core/animation/fade-animations.js → esm2020/core/animation/fade-animations.mjs} +0 -0
  58. package/{esm2015/core/animation/index.js → esm2020/core/animation/index.mjs} +0 -0
  59. package/{esm2015/core/animation/select-animations.js → esm2020/core/animation/select-animations.mjs} +0 -0
  60. package/{esm2015/core/common-behaviors/color.js → esm2020/core/common-behaviors/color.mjs} +0 -0
  61. package/{esm2015/core/common-behaviors/common-module.js → esm2020/core/common-behaviors/common-module.mjs} +5 -5
  62. package/{esm2015/core/common-behaviors/constructor.js → esm2020/core/common-behaviors/constructor.mjs} +0 -0
  63. package/{esm2015/core/common-behaviors/disabled.js → esm2020/core/common-behaviors/disabled.mjs} +0 -0
  64. package/{esm2015/core/common-behaviors/error-state.js → esm2020/core/common-behaviors/error-state.mjs} +0 -0
  65. package/{esm2015/core/common-behaviors/index.js → esm2020/core/common-behaviors/index.mjs} +0 -0
  66. package/{esm2015/core/common-behaviors/tabindex.js → esm2020/core/common-behaviors/tabindex.mjs} +0 -0
  67. package/{esm2015/core/error/error-options.js → esm2020/core/error/error-options.mjs} +7 -7
  68. package/esm2020/core/formatters/date/formatter.mjs +314 -0
  69. package/esm2020/core/formatters/date/templates/en-US.mjs +280 -0
  70. package/esm2020/core/formatters/date/templates/ru-RU.mjs +280 -0
  71. package/{esm2015/core/formatters/index.js → esm2020/core/formatters/index.mjs} +5 -5
  72. package/esm2020/core/formatters/number/formatter.mjs +105 -0
  73. package/{esm2015/core/forms/forms-module.js → esm2020/core/forms/forms-module.mjs} +5 -5
  74. package/{esm2015/core/forms/forms.directive.js → esm2020/core/forms/forms.directive.mjs} +7 -7
  75. package/{esm2015/core/forms/index.js → esm2020/core/forms/index.mjs} +0 -0
  76. package/{esm2015/core/highlight/highlight.pipe.js → esm2020/core/highlight/highlight.pipe.mjs} +4 -4
  77. package/{esm2015/core/highlight/index.js → esm2020/core/highlight/index.mjs} +5 -5
  78. package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
  79. package/{esm2015/core/label/label-options.js → esm2020/core/label/label-options.mjs} +0 -0
  80. package/{esm2015/core/line/line.js → esm2020/core/line/line.mjs} +8 -8
  81. package/esm2020/core/option/action.mjs +121 -0
  82. package/{esm2015/core/option/index.js → esm2020/core/option/index.mjs} +0 -0
  83. package/esm2020/core/option/optgroup.mjs +31 -0
  84. package/{esm2015/core/option/option-module.js → esm2020/core/option/option-module.mjs} +5 -5
  85. package/esm2020/core/option/option.mjs +254 -0
  86. package/{esm2015/core/overlay/overlay-position-map.js → esm2020/core/overlay/overlay-position-map.mjs} +0 -0
  87. package/{esm2015/core/pop-up/constants.js → esm2020/core/pop-up/constants.mjs} +0 -0
  88. package/{esm2015/core/pop-up/index.js → esm2020/core/pop-up/index.mjs} +0 -0
  89. package/esm2020/core/pop-up/pop-up-trigger.mjs +246 -0
  90. package/esm2020/core/pop-up/pop-up.mjs +91 -0
  91. package/{esm2015/core/ptsecurity-mosaic-core.js → esm2020/core/ptsecurity-mosaic-core.mjs} +0 -0
  92. package/{esm2015/core/public-api.js → esm2020/core/public-api.mjs} +0 -0
  93. package/{esm2015/core/select/constants.js → esm2020/core/select/constants.mjs} +0 -0
  94. package/{esm2015/core/select/errors.js → esm2020/core/select/errors.mjs} +0 -0
  95. package/{esm2015/core/select/events.js → esm2020/core/select/events.mjs} +0 -0
  96. package/{esm2015/core/select/index.js → esm2020/core/select/index.mjs} +0 -0
  97. package/{esm2015/core/selection/constants.js → esm2020/core/selection/constants.mjs} +0 -0
  98. package/{esm2015/core/selection/index.js → esm2020/core/selection/index.mjs} +0 -0
  99. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -0
  100. package/{esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js → esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs} +5 -5
  101. package/{esm2015/core/services/measure-scrollbar.service.js → esm2020/core/services/measure-scrollbar.service.mjs} +4 -4
  102. package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
  103. package/{esm2015/core/utils/public-api.js → esm2020/core/utils/public-api.mjs} +0 -0
  104. package/{esm2015/core/utils/utils.js → esm2020/core/utils/utils.mjs} +0 -0
  105. package/{esm2015/core/validation/index.js → esm2020/core/validation/index.mjs} +0 -0
  106. package/{esm2015/core/validation/validation.js → esm2020/core/validation/validation.mjs} +0 -0
  107. package/esm2020/datepicker/calendar-body.component.mjs +106 -0
  108. package/esm2020/datepicker/calendar.component.mjs +362 -0
  109. package/{esm2015/datepicker/datepicker-animations.js → esm2020/datepicker/datepicker-animations.mjs} +0 -0
  110. package/{esm2015/datepicker/datepicker-errors.js → esm2020/datepicker/datepicker-errors.mjs} +0 -0
  111. package/esm2020/datepicker/datepicker-input.directive.mjs +900 -0
  112. package/{esm2015/datepicker/datepicker-intl.js → esm2020/datepicker/datepicker-intl.mjs} +4 -4
  113. package/{esm2015/datepicker/datepicker-module.js → esm2020/datepicker/datepicker-module.mjs} +5 -5
  114. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -0
  115. package/esm2020/datepicker/datepicker.component.mjs +408 -0
  116. package/{esm2015/datepicker/index.js → esm2020/datepicker/index.mjs} +0 -0
  117. package/{esm2015/datepicker/month-view.component.js → esm2020/datepicker/month-view.component.mjs} +5 -11
  118. package/{esm2015/datepicker/multi-year-view.component.js → esm2020/datepicker/multi-year-view.component.mjs} +5 -11
  119. package/{esm2015/datepicker/ptsecurity-mosaic-datepicker.js → esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs} +0 -0
  120. package/{esm2015/datepicker/public-api.js → esm2020/datepicker/public-api.mjs} +0 -0
  121. package/{esm2015/datepicker/year-view.component.js → esm2020/datepicker/year-view.component.mjs} +5 -11
  122. package/{esm2015/design-tokens/index.js → esm2020/design-tokens/index.mjs} +0 -0
  123. package/{esm2015/design-tokens/ptsecurity-mosaic-design-tokens.js → esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs} +0 -0
  124. package/{esm2015/design-tokens/public-api.js → esm2020/design-tokens/public-api.mjs} +0 -0
  125. package/{esm2015/design-tokens/tokens.js → esm2020/design-tokens/tokens.mjs} +12 -9
  126. package/{esm2015/divider/divider.component.js → esm2020/divider/divider.component.mjs} +6 -13
  127. package/{esm2015/divider/divider.module.js → esm2020/divider/divider.module.mjs} +5 -5
  128. package/{esm2015/divider/index.js → esm2020/divider/index.mjs} +0 -0
  129. package/{esm2015/divider/ptsecurity-mosaic-divider.js → esm2020/divider/ptsecurity-mosaic-divider.mjs} +0 -0
  130. package/{esm2015/divider/public-api.js → esm2020/divider/public-api.mjs} +0 -0
  131. package/{esm2015/dropdown/dropdown-animations.js → esm2020/dropdown/dropdown-animations.mjs} +0 -0
  132. package/{esm2015/dropdown/dropdown-content.directive.js → esm2020/dropdown/dropdown-content.directive.mjs} +6 -8
  133. package/{esm2015/dropdown/dropdown-errors.js → esm2020/dropdown/dropdown-errors.mjs} +0 -0
  134. package/esm2020/dropdown/dropdown-item.component.mjs +139 -0
  135. package/esm2020/dropdown/dropdown-trigger.directive.mjs +485 -0
  136. package/esm2020/dropdown/dropdown.component.mjs +292 -0
  137. package/{esm2015/dropdown/dropdown.module.js → esm2020/dropdown/dropdown.module.mjs} +5 -5
  138. package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
  139. package/{esm2015/dropdown/index.js → esm2020/dropdown/index.mjs} +0 -0
  140. package/{esm2015/dropdown/ptsecurity-mosaic-dropdown.js → esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs} +0 -0
  141. package/{esm2015/dropdown/public-api.js → esm2020/dropdown/public-api.mjs} +0 -0
  142. package/{esm2015/form-field/cleaner.js → esm2020/form-field/cleaner.mjs} +4 -4
  143. package/{esm2015/form-field/form-field-control.js → esm2020/form-field/form-field-control.mjs} +0 -0
  144. package/{esm2015/form-field/form-field-errors.js → esm2020/form-field/form-field-errors.mjs} +0 -0
  145. package/esm2020/form-field/form-field.mjs +205 -0
  146. package/{esm2015/form-field/form-field.module.js → esm2020/form-field/form-field.module.mjs} +5 -5
  147. package/{esm2015/form-field/hint.js → esm2020/form-field/hint.mjs} +4 -4
  148. package/{esm2015/form-field/index.js → esm2020/form-field/index.mjs} +0 -0
  149. package/{esm2015/form-field/prefix.js → esm2020/form-field/prefix.mjs} +4 -4
  150. package/{esm2015/form-field/ptsecurity-mosaic-form-field.js → esm2020/form-field/ptsecurity-mosaic-form-field.mjs} +0 -0
  151. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  152. package/{esm2015/form-field/stepper.js → esm2020/form-field/stepper.mjs} +4 -4
  153. package/{esm2015/form-field/suffix.js → esm2020/form-field/suffix.mjs} +4 -4
  154. package/esm2020/icon/icon.component.mjs +44 -0
  155. package/{esm2015/icon/icon.module.js → esm2020/icon/icon.module.mjs} +5 -5
  156. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  157. package/{esm2015/icon/ptsecurity-mosaic-icon.js → esm2020/icon/ptsecurity-mosaic-icon.mjs} +0 -0
  158. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  159. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  160. package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
  161. package/{esm2015/input/input-errors.js → esm2020/input/input-errors.mjs} +0 -0
  162. package/{esm2015/input/input-number-validators.js → esm2020/input/input-number-validators.mjs} +7 -7
  163. package/{esm2015/input/input-number.js → esm2020/input/input-number.mjs} +4 -4
  164. package/{esm2015/input/input-value-accessor.js → esm2020/input/input-value-accessor.mjs} +0 -0
  165. package/{esm2015/input/input.js → esm2020/input/input.mjs} +7 -7
  166. package/{esm2015/input/input.module.js → esm2020/input/input.module.mjs} +5 -5
  167. package/{esm2015/input/ptsecurity-mosaic-input.js → esm2020/input/ptsecurity-mosaic-input.mjs} +0 -0
  168. package/{esm2015/input/public-api.js → esm2020/input/public-api.mjs} +0 -0
  169. package/{esm2015/link/index.js → esm2020/link/index.mjs} +0 -0
  170. package/esm2020/link/link.component.mjs +107 -0
  171. package/{esm2015/link/link.module.js → esm2020/link/link.module.mjs} +5 -5
  172. package/{esm2015/link/ptsecurity-mosaic-link.js → esm2020/link/ptsecurity-mosaic-link.mjs} +0 -0
  173. package/{esm2015/link/public-api.js → esm2020/link/public-api.mjs} +0 -0
  174. package/{esm2015/list/index.js → esm2020/list/index.mjs} +0 -0
  175. package/esm2020/list/list-selection.component.mjs +693 -0
  176. package/esm2020/list/list.component.mjs +44 -0
  177. package/{esm2015/list/list.module.js → esm2020/list/list.module.mjs} +5 -5
  178. package/{esm2015/list/ptsecurity-mosaic-list.js → esm2020/list/ptsecurity-mosaic-list.mjs} +0 -0
  179. package/{esm2015/list/public-api.js → esm2020/list/public-api.mjs} +0 -0
  180. package/{esm2015/modal/css-unit.pipe.js → esm2020/modal/css-unit.pipe.mjs} +4 -4
  181. package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
  182. package/{esm2015/modal/modal-control.service.js → esm2020/modal/modal-control.service.mjs} +4 -4
  183. package/{esm2015/modal/modal-ref.class.js → esm2020/modal/modal-ref.class.mjs} +0 -0
  184. package/{esm2015/modal/modal-util.js → esm2020/modal/modal-util.mjs} +0 -0
  185. package/esm2020/modal/modal.component.mjs +501 -0
  186. package/{esm2015/modal/modal.directive.js → esm2020/modal/modal.directive.mjs} +13 -13
  187. package/{esm2015/modal/modal.module.js → esm2020/modal/modal.module.mjs} +5 -5
  188. package/{esm2015/modal/modal.service.js → esm2020/modal/modal.service.mjs} +4 -4
  189. package/{esm2015/modal/modal.type.js → esm2020/modal/modal.type.mjs} +0 -0
  190. package/{esm2015/modal/ptsecurity-mosaic-modal.js → esm2020/modal/ptsecurity-mosaic-modal.mjs} +0 -0
  191. package/{esm2015/modal/public-api.js → esm2020/modal/public-api.mjs} +0 -0
  192. package/{esm2015/navbar/index.js → esm2020/navbar/index.mjs} +0 -0
  193. package/esm2020/navbar/navbar-item.component.mjs +577 -0
  194. package/esm2020/navbar/navbar.component.mjs +237 -0
  195. package/esm2020/navbar/navbar.module.mjs +92 -0
  196. package/{esm2015/navbar/ptsecurity-mosaic-navbar.js → esm2020/navbar/ptsecurity-mosaic-navbar.mjs} +0 -0
  197. package/{esm2015/navbar/public-api.js → esm2020/navbar/public-api.mjs} +0 -0
  198. package/{esm2015/navbar/vertical-navbar.animation.js → esm2020/navbar/vertical-navbar.animation.mjs} +2 -2
  199. package/esm2020/navbar/vertical-navbar.component.mjs +114 -0
  200. package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
  201. package/{esm2015/popover/popover-animations.js → esm2020/popover/popover-animations.mjs} +0 -0
  202. package/esm2020/popover/popover-confirm.component.mjs +108 -0
  203. package/esm2020/popover/popover.component.mjs +253 -0
  204. package/{esm2015/popover/popover.module.js → esm2020/popover/popover.module.mjs} +5 -5
  205. package/{esm2015/popover/ptsecurity-mosaic-popover.js → esm2020/popover/ptsecurity-mosaic-popover.mjs} +0 -0
  206. package/{esm2015/popover/public-api.js → esm2020/popover/public-api.mjs} +0 -0
  207. package/{esm2015/progress-bar/index.js → esm2020/progress-bar/index.mjs} +0 -0
  208. package/esm2020/progress-bar/progress-bar.component.mjs +42 -0
  209. package/{esm2015/progress-bar/progress-bar.module.js → esm2020/progress-bar/progress-bar.module.mjs} +5 -5
  210. package/{esm2015/progress-bar/ptsecurity-mosaic-progress-bar.js → esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs} +0 -0
  211. package/{esm2015/progress-bar/public-api.js → esm2020/progress-bar/public-api.mjs} +0 -0
  212. package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
  213. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -0
  214. package/{esm2015/progress-spinner/progress-spinner.module.js → esm2020/progress-spinner/progress-spinner.module.mjs} +5 -5
  215. package/{esm2015/progress-spinner/ptsecurity-mosaic-progress-spinner.js → esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs} +0 -0
  216. package/{esm2015/progress-spinner/public-api.js → esm2020/progress-spinner/public-api.mjs} +0 -0
  217. package/{esm2015/ptsecurity-mosaic.js → esm2020/ptsecurity-mosaic.mjs} +0 -0
  218. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  219. package/{esm2015/radio/index.js → esm2020/radio/index.mjs} +0 -0
  220. package/{esm2015/radio/ptsecurity-mosaic-radio.js → esm2020/radio/ptsecurity-mosaic-radio.mjs} +0 -0
  221. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  222. package/esm2020/radio/radio.component.mjs +458 -0
  223. package/{esm2015/radio/radio.module.js → esm2020/radio/radio.module.mjs} +5 -5
  224. package/{esm2015/select/index.js → esm2020/select/index.mjs} +0 -0
  225. package/{esm2015/select/ptsecurity-mosaic-select.js → esm2020/select/ptsecurity-mosaic-select.mjs} +0 -0
  226. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  227. package/esm2020/select/select.component.mjs +1110 -0
  228. package/{esm2015/select/select.module.js → esm2020/select/select.module.mjs} +5 -5
  229. package/{esm2015/sidebar/index.js → esm2020/sidebar/index.mjs} +0 -0
  230. package/{esm2015/sidebar/ptsecurity-mosaic-sidebar.js → esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs} +0 -0
  231. package/{esm2015/sidebar/public-api.js → esm2020/sidebar/public-api.mjs} +0 -0
  232. package/{esm2015/sidebar/sidebar-animations.js → esm2020/sidebar/sidebar-animations.mjs} +0 -0
  233. package/esm2020/sidebar/sidebar.component.mjs +146 -0
  234. package/{esm2015/sidebar/sidebar.module.js → esm2020/sidebar/sidebar.module.mjs} +5 -5
  235. package/{esm2015/sidepanel/index.js → esm2020/sidepanel/index.mjs} +0 -0
  236. package/{esm2015/sidepanel/ptsecurity-mosaic-sidepanel.js → esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs} +0 -0
  237. package/{esm2015/sidepanel/public-api.js → esm2020/sidepanel/public-api.mjs} +0 -0
  238. package/{esm2015/sidepanel/sidepanel-animations.js → esm2020/sidepanel/sidepanel-animations.mjs} +0 -0
  239. package/{esm2015/sidepanel/sidepanel-config.js → esm2020/sidepanel/sidepanel-config.mjs} +0 -0
  240. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -0
  241. package/{esm2015/sidepanel/sidepanel-directives.js → esm2020/sidepanel/sidepanel-directives.mjs} +16 -16
  242. package/{esm2015/sidepanel/sidepanel-ref.js → esm2020/sidepanel/sidepanel-ref.mjs} +0 -0
  243. package/{esm2015/sidepanel/sidepanel.module.js → esm2020/sidepanel/sidepanel.module.mjs} +5 -5
  244. package/esm2020/sidepanel/sidepanel.service.mjs +167 -0
  245. package/{esm2015/splitter/index.js → esm2020/splitter/index.mjs} +0 -0
  246. package/{esm2015/splitter/ptsecurity-mosaic-splitter.js → esm2020/splitter/ptsecurity-mosaic-splitter.mjs} +0 -0
  247. package/{esm2015/splitter/public-api.js → esm2020/splitter/public-api.mjs} +0 -0
  248. package/esm2020/splitter/splitter.component.mjs +480 -0
  249. package/esm2020/splitter/splitter.module.mjs +40 -0
  250. package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
  251. package/{esm2015/table/ptsecurity-mosaic-table.js → esm2020/table/ptsecurity-mosaic-table.mjs} +0 -0
  252. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  253. package/{esm2015/table/table.component.js → esm2020/table/table.component.mjs} +4 -4
  254. package/{esm2015/table/table.module.js → esm2020/table/table.module.mjs} +5 -5
  255. package/{esm2015/tabs/index.js → esm2020/tabs/index.mjs} +0 -0
  256. package/esm2020/tabs/paginated-tab-header.mjs +479 -0
  257. package/{esm2015/tabs/ptsecurity-mosaic-tabs.js → esm2020/tabs/ptsecurity-mosaic-tabs.mjs} +0 -0
  258. package/{esm2015/tabs/public-api.js → esm2020/tabs/public-api.mjs} +0 -0
  259. package/esm2020/tabs/tab-body.component.mjs +178 -0
  260. package/{esm2015/tabs/tab-content.directive.js → esm2020/tabs/tab-content.directive.mjs} +4 -4
  261. package/esm2020/tabs/tab-group.component.mjs +350 -0
  262. package/esm2020/tabs/tab-header.component.mjs +67 -0
  263. package/{esm2015/tabs/tab-label-wrapper.directive.js → esm2020/tabs/tab-label-wrapper.directive.mjs} +4 -4
  264. package/{esm2015/tabs/tab-label.directive.js → esm2020/tabs/tab-label.directive.mjs} +4 -4
  265. package/{esm2015/tabs/tab-nav-bar/index.js → esm2020/tabs/tab-nav-bar/index.mjs} +0 -0
  266. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -0
  267. package/{esm2015/tabs/tab.component.js → esm2020/tabs/tab.component.mjs} +4 -4
  268. package/{esm2015/tabs/tabs-animations.js → esm2020/tabs/tabs-animations.mjs} +0 -0
  269. package/{esm2015/tabs/tabs.module.js → esm2020/tabs/tabs.module.mjs} +5 -5
  270. package/{esm2015/tags/index.js → esm2020/tags/index.mjs} +0 -0
  271. package/{esm2015/tags/ptsecurity-mosaic-tags.js → esm2020/tags/ptsecurity-mosaic-tags.mjs} +0 -0
  272. package/{esm2015/tags/public-api.js → esm2020/tags/public-api.mjs} +0 -0
  273. package/{esm2015/tags/tag-default-options.js → esm2020/tags/tag-default-options.mjs} +0 -0
  274. package/{esm2015/tags/tag-input.js → esm2020/tags/tag-input.mjs} +4 -4
  275. package/esm2020/tags/tag-list.component.mjs +722 -0
  276. package/{esm2015/tags/tag-text-control.js → esm2020/tags/tag-text-control.mjs} +0 -0
  277. package/esm2020/tags/tag.component.mjs +374 -0
  278. package/{esm2015/tags/tag.module.js → esm2020/tags/tag.module.mjs} +5 -5
  279. package/{esm2015/textarea/index.js → esm2020/textarea/index.mjs} +0 -0
  280. package/{esm2015/textarea/ptsecurity-mosaic-textarea.js → esm2020/textarea/ptsecurity-mosaic-textarea.mjs} +0 -0
  281. package/{esm2015/textarea/public-api.js → esm2020/textarea/public-api.mjs} +0 -0
  282. package/{esm2015/textarea/textarea.component.js → esm2020/textarea/textarea.component.mjs} +4 -4
  283. package/{esm2015/textarea/textarea.module.js → esm2020/textarea/textarea.module.mjs} +5 -5
  284. package/{esm2015/timepicker/index.js → esm2020/timepicker/index.mjs} +0 -0
  285. package/{esm2015/timepicker/ptsecurity-mosaic-timepicker.js → esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs} +0 -0
  286. package/{esm2015/timepicker/public-api.js → esm2020/timepicker/public-api.mjs} +0 -0
  287. package/{esm2015/timepicker/timepicker.constants.js → esm2020/timepicker/timepicker.constants.mjs} +0 -0
  288. package/esm2020/timepicker/timepicker.directive.mjs +653 -0
  289. package/{esm2015/timepicker/timepicker.module.js → esm2020/timepicker/timepicker.module.mjs} +5 -5
  290. package/{esm2015/toggle/index.js → esm2020/toggle/index.mjs} +0 -0
  291. package/{esm2015/toggle/ptsecurity-mosaic-toggle.js → esm2020/toggle/ptsecurity-mosaic-toggle.mjs} +0 -0
  292. package/{esm2015/toggle/public-api.js → esm2020/toggle/public-api.mjs} +0 -0
  293. package/esm2020/toggle/toggle.component.mjs +158 -0
  294. package/{esm2015/toggle/toggle.module.js → esm2020/toggle/toggle.module.mjs} +5 -5
  295. package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
  296. package/{esm2015/tooltip/ptsecurity-mosaic-tooltip.js → esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs} +0 -0
  297. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  298. package/{esm2015/tooltip/tooltip.animations.js → esm2020/tooltip/tooltip.animations.mjs} +0 -0
  299. package/esm2020/tooltip/tooltip.component.mjs +291 -0
  300. package/{esm2015/tooltip/tooltip.module.js → esm2020/tooltip/tooltip.module.mjs} +5 -5
  301. package/{esm2015/tree/control/base-tree-control.js → esm2020/tree/control/base-tree-control.mjs} +0 -0
  302. package/{esm2015/tree/control/flat-tree-control.js → esm2020/tree/control/flat-tree-control.mjs} +0 -0
  303. package/{esm2015/tree/control/nested-tree-control.js → esm2020/tree/control/nested-tree-control.mjs} +0 -0
  304. package/{esm2015/tree/control/tree-control.js → esm2020/tree/control/tree-control.mjs} +0 -0
  305. package/{esm2015/tree/data-source/flat-data-source.js → esm2020/tree/data-source/flat-data-source.mjs} +0 -0
  306. package/{esm2015/tree/data-source/nested-data-source.js → esm2020/tree/data-source/nested-data-source.mjs} +0 -0
  307. package/{esm2015/tree/index.js → esm2020/tree/index.mjs} +0 -0
  308. package/{esm2015/tree/node.js → esm2020/tree/node.mjs} +4 -4
  309. package/{esm2015/tree/outlet.js → esm2020/tree/outlet.mjs} +4 -4
  310. package/esm2020/tree/padding.directive.mjs +110 -0
  311. package/{esm2015/tree/ptsecurity-mosaic-tree.js → esm2020/tree/ptsecurity-mosaic-tree.mjs} +0 -0
  312. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  313. package/esm2020/tree/toggle.mjs +80 -0
  314. package/{esm2015/tree/tree-base.js → esm2020/tree/tree-base.mjs} +7 -7
  315. package/{esm2015/tree/tree-errors.js → esm2020/tree/tree-errors.mjs} +0 -0
  316. package/esm2020/tree/tree-option.component.mjs +226 -0
  317. package/esm2020/tree/tree-selection.component.mjs +530 -0
  318. package/esm2020/tree/tree.mjs +15 -0
  319. package/{esm2015/tree/tree.module.js → esm2020/tree/tree.module.mjs} +5 -5
  320. package/{esm2015/tree-select/index.js → esm2020/tree-select/index.mjs} +0 -0
  321. package/{esm2015/tree-select/ptsecurity-mosaic-tree-select.js → esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs} +0 -0
  322. package/{esm2015/tree-select/public-api.js → esm2020/tree-select/public-api.mjs} +0 -0
  323. package/{esm2015/tree-select/tree-select.component.js → esm2020/tree-select/tree-select.component.mjs} +12 -23
  324. package/{esm2015/tree-select/tree-select.module.js → esm2020/tree-select/tree-select.module.mjs} +5 -5
  325. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +756 -0
  326. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  327. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +385 -0
  328. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  329. package/fesm2015/ptsecurity-mosaic-button.mjs +170 -0
  330. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -0
  331. package/fesm2015/{ptsecurity-mosaic-card.js → ptsecurity-mosaic-card.mjs} +10 -18
  332. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -0
  333. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +366 -0
  334. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  335. package/fesm2015/{ptsecurity-mosaic-core.js → ptsecurity-mosaic-core.mjs} +158 -181
  336. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -0
  337. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2700 -0
  338. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  339. package/fesm2015/{ptsecurity-mosaic-design-tokens.js → ptsecurity-mosaic-design-tokens.mjs} +13 -10
  340. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  341. package/fesm2015/ptsecurity-mosaic-divider.mjs +61 -0
  342. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -0
  343. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1106 -0
  344. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  345. package/fesm2015/ptsecurity-mosaic-form-field.mjs +378 -0
  346. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -0
  347. package/fesm2015/ptsecurity-mosaic-icon.mjs +88 -0
  348. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -0
  349. package/fesm2015/ptsecurity-mosaic-input.mjs +609 -0
  350. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -0
  351. package/fesm2015/{ptsecurity-mosaic-link.js → ptsecurity-mosaic-link.mjs} +8 -8
  352. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -0
  353. package/fesm2015/ptsecurity-mosaic-list.mjs +796 -0
  354. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -0
  355. package/fesm2015/ptsecurity-mosaic-modal.mjs +842 -0
  356. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -0
  357. package/fesm2015/ptsecurity-mosaic-navbar.mjs +1025 -0
  358. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -0
  359. package/fesm2015/ptsecurity-mosaic-popover.mjs +393 -0
  360. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -0
  361. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +76 -0
  362. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  363. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  364. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  365. package/fesm2015/ptsecurity-mosaic-radio.mjs +481 -0
  366. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -0
  367. package/fesm2015/ptsecurity-mosaic-select.mjs +1175 -0
  368. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -0
  369. package/fesm2015/{ptsecurity-mosaic-sidebar.js → ptsecurity-mosaic-sidebar.mjs} +16 -25
  370. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  371. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +592 -0
  372. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  373. package/fesm2015/ptsecurity-mosaic-splitter.mjs +524 -0
  374. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -0
  375. package/fesm2015/{ptsecurity-mosaic-table.js → ptsecurity-mosaic-table.mjs} +8 -8
  376. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -0
  377. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1511 -0
  378. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -0
  379. package/fesm2015/ptsecurity-mosaic-tags.mjs +1372 -0
  380. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -0
  381. package/fesm2015/ptsecurity-mosaic-textarea.mjs +293 -0
  382. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -0
  383. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +715 -0
  384. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  385. package/fesm2015/{ptsecurity-mosaic-toggle.js → ptsecurity-mosaic-toggle.mjs} +12 -23
  386. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -0
  387. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +362 -0
  388. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  389. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +932 -0
  390. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  391. package/fesm2015/ptsecurity-mosaic-tree.mjs +1707 -0
  392. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -0
  393. package/fesm2015/{ptsecurity-mosaic.js → ptsecurity-mosaic.mjs} +1 -1
  394. package/fesm2015/ptsecurity-mosaic.mjs.map +1 -0
  395. package/{fesm2015/ptsecurity-mosaic-autocomplete.js → fesm2020/ptsecurity-mosaic-autocomplete.mjs} +17 -26
  396. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  397. package/{fesm2015/ptsecurity-mosaic-button-toggle.js → fesm2020/ptsecurity-mosaic-button-toggle.mjs} +15 -23
  398. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  399. package/fesm2020/ptsecurity-mosaic-button.mjs +170 -0
  400. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -0
  401. package/fesm2020/ptsecurity-mosaic-card.mjs +113 -0
  402. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -0
  403. package/{fesm2015/ptsecurity-mosaic-checkbox.js → fesm2020/ptsecurity-mosaic-checkbox.mjs} +13 -23
  404. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  405. package/fesm2020/ptsecurity-mosaic-core.mjs +2688 -0
  406. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -0
  407. package/{fesm2015/ptsecurity-mosaic-datepicker.js → fesm2020/ptsecurity-mosaic-datepicker.mjs} +77 -121
  408. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  409. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +939 -0
  410. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  411. package/fesm2020/ptsecurity-mosaic-divider.mjs +61 -0
  412. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -0
  413. package/{fesm2015/ptsecurity-mosaic-dropdown.js → fesm2020/ptsecurity-mosaic-dropdown.mjs} +29 -52
  414. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  415. package/fesm2020/ptsecurity-mosaic-form-field.mjs +377 -0
  416. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -0
  417. package/fesm2020/ptsecurity-mosaic-icon.mjs +86 -0
  418. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -0
  419. package/{fesm2015/ptsecurity-mosaic-input.js → fesm2020/ptsecurity-mosaic-input.mjs} +20 -20
  420. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -0
  421. package/fesm2020/ptsecurity-mosaic-link.mjs +136 -0
  422. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -0
  423. package/{fesm2015/ptsecurity-mosaic-list.js → fesm2020/ptsecurity-mosaic-list.mjs} +30 -67
  424. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -0
  425. package/{fesm2015/ptsecurity-mosaic-modal.js → fesm2020/ptsecurity-mosaic-modal.mjs} +45 -52
  426. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -0
  427. package/fesm2020/ptsecurity-mosaic-navbar.mjs +1009 -0
  428. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -0
  429. package/fesm2020/ptsecurity-mosaic-popover.mjs +389 -0
  430. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -0
  431. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +76 -0
  432. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  433. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  434. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  435. package/{fesm2015/ptsecurity-mosaic-radio.js → fesm2020/ptsecurity-mosaic-radio.mjs} +13 -22
  436. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -0
  437. package/{fesm2015/ptsecurity-mosaic-select.js → fesm2020/ptsecurity-mosaic-select.mjs} +23 -35
  438. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -0
  439. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +202 -0
  440. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  441. package/{fesm2015/ptsecurity-mosaic-sidepanel.js → fesm2020/ptsecurity-mosaic-sidepanel.mjs} +32 -37
  442. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  443. package/fesm2020/ptsecurity-mosaic-splitter.mjs +524 -0
  444. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -0
  445. package/fesm2020/ptsecurity-mosaic-table.mjs +50 -0
  446. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -0
  447. package/{fesm2015/ptsecurity-mosaic-tabs.js → fesm2020/ptsecurity-mosaic-tabs.mjs} +65 -102
  448. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -0
  449. package/{fesm2015/ptsecurity-mosaic-tags.js → fesm2020/ptsecurity-mosaic-tags.mjs} +28 -47
  450. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -0
  451. package/{fesm2015/ptsecurity-mosaic-textarea.js → fesm2020/ptsecurity-mosaic-textarea.mjs} +8 -8
  452. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -0
  453. package/{fesm2015/ptsecurity-mosaic-timepicker.js → fesm2020/ptsecurity-mosaic-timepicker.mjs} +12 -12
  454. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  455. package/fesm2020/ptsecurity-mosaic-toggle.mjs +180 -0
  456. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -0
  457. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +354 -0
  458. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  459. package/{fesm2015/ptsecurity-mosaic-tree-select.js → fesm2020/ptsecurity-mosaic-tree-select.mjs} +16 -27
  460. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  461. package/{fesm2015/ptsecurity-mosaic-tree.js → fesm2020/ptsecurity-mosaic-tree.mjs} +59 -100
  462. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -0
  463. package/fesm2020/ptsecurity-mosaic.mjs +4 -0
  464. package/fesm2020/ptsecurity-mosaic.mjs.map +1 -0
  465. package/form-field/README.md +0 -0
  466. package/form-field/package.json +5 -5
  467. package/icon/README.md +0 -0
  468. package/icon/package.json +5 -5
  469. package/input/package.json +5 -5
  470. package/link/README.md +0 -0
  471. package/link/package.json +5 -5
  472. package/list/README.md +0 -0
  473. package/list/package.json +5 -5
  474. package/modal/README.md +34 -0
  475. package/modal/package.json +5 -5
  476. package/navbar/README.md +41 -0
  477. package/navbar/navbar-item.component.d.ts +122 -34
  478. package/navbar/navbar.component.d.ts +37 -9
  479. package/navbar/navbar.module.d.ts +2 -1
  480. package/navbar/package.json +5 -5
  481. package/navbar/vertical-navbar.component.d.ts +15 -26
  482. package/package.json +299 -14
  483. package/popover/README.md +32 -0
  484. package/popover/package.json +5 -5
  485. package/prebuilt-themes/dark-theme.css +1 -1
  486. package/prebuilt-themes/default-theme.css +1 -1
  487. package/progress-bar/README.md +0 -0
  488. package/progress-bar/package.json +5 -5
  489. package/progress-spinner/README.md +0 -0
  490. package/progress-spinner/package.json +5 -5
  491. package/radio/package.json +5 -5
  492. package/schematics/README.md +35 -0
  493. package/schematics/ng-update/data/index.d.ts +1 -0
  494. package/schematics/ng-update/data/index.js +10 -9
  495. package/schematics/ng-update/data/index.js.map +1 -1
  496. package/schematics/ng-update/data/symbol-removal.d.ts +2 -0
  497. package/schematics/ng-update/data/symbol-removal.js +5 -0
  498. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  499. package/schematics/ng-update/index.js +3 -3
  500. package/schematics/ng-update/index.js.map +1 -1
  501. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +1 -2
  502. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +1 -1
  503. package/schematics/ng-update/upgrade-data.js +2 -1
  504. package/schematics/ng-update/upgrade-data.js.map +1 -1
  505. package/schematics/tsconfig.lib.json +2 -2
  506. package/select/README.md +0 -0
  507. package/select/package.json +5 -5
  508. package/sidebar/package.json +5 -5
  509. package/sidepanel/package.json +5 -5
  510. package/splitter/package.json +5 -5
  511. package/splitter/splitter.component.d.ts +41 -3
  512. package/splitter/splitter.module.d.ts +1 -1
  513. package/table/README.md +0 -0
  514. package/table/package.json +5 -5
  515. package/tabs/README.md +0 -0
  516. package/tabs/package.json +5 -5
  517. package/tags/README.md +0 -0
  518. package/tags/package.json +5 -5
  519. package/textarea/README.md +0 -0
  520. package/textarea/package.json +5 -5
  521. package/timepicker/README.md +0 -0
  522. package/timepicker/package.json +5 -5
  523. package/toggle/package.json +5 -5
  524. package/tooltip/package.json +5 -5
  525. package/tree/package.json +5 -5
  526. package/tree-select/README.md +0 -0
  527. package/tree-select/package.json +5 -5
  528. package/bundles/ptsecurity-mosaic-autocomplete.umd.js +0 -1160
  529. package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +0 -1
  530. package/bundles/ptsecurity-mosaic-button-toggle.umd.js +0 -755
  531. package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +0 -1
  532. package/bundles/ptsecurity-mosaic-button.umd.js +0 -533
  533. package/bundles/ptsecurity-mosaic-button.umd.js.map +0 -1
  534. package/bundles/ptsecurity-mosaic-card.umd.js +0 -479
  535. package/bundles/ptsecurity-mosaic-card.umd.js.map +0 -1
  536. package/bundles/ptsecurity-mosaic-checkbox.umd.js +0 -762
  537. package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +0 -1
  538. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2843
  539. package/bundles/ptsecurity-mosaic-core.umd.js.map +0 -1
  540. package/bundles/ptsecurity-mosaic-datepicker.umd.js +0 -3355
  541. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +0 -1
  542. package/bundles/ptsecurity-mosaic-design-tokens.umd.js +0 -1871
  543. package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +0 -1
  544. package/bundles/ptsecurity-mosaic-divider.umd.js +0 -106
  545. package/bundles/ptsecurity-mosaic-divider.umd.js.map +0 -1
  546. package/bundles/ptsecurity-mosaic-dropdown.umd.js +0 -1532
  547. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +0 -1
  548. package/bundles/ptsecurity-mosaic-form-field.umd.js +0 -788
  549. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +0 -1
  550. package/bundles/ptsecurity-mosaic-icon.umd.js +0 -450
  551. package/bundles/ptsecurity-mosaic-icon.umd.js.map +0 -1
  552. package/bundles/ptsecurity-mosaic-input.umd.js +0 -1008
  553. package/bundles/ptsecurity-mosaic-input.umd.js.map +0 -1
  554. package/bundles/ptsecurity-mosaic-link.umd.js +0 -515
  555. package/bundles/ptsecurity-mosaic-link.umd.js.map +0 -1
  556. package/bundles/ptsecurity-mosaic-list.umd.js +0 -1256
  557. package/bundles/ptsecurity-mosaic-list.umd.js.map +0 -1
  558. package/bundles/ptsecurity-mosaic-modal.umd.js +0 -1312
  559. package/bundles/ptsecurity-mosaic-modal.umd.js.map +0 -1
  560. package/bundles/ptsecurity-mosaic-navbar.umd.js +0 -930
  561. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +0 -1
  562. package/bundles/ptsecurity-mosaic-popover.umd.js +0 -836
  563. package/bundles/ptsecurity-mosaic-popover.umd.js.map +0 -1
  564. package/bundles/ptsecurity-mosaic-progress-bar.umd.js +0 -440
  565. package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +0 -1
  566. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +0 -448
  567. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +0 -1
  568. package/bundles/ptsecurity-mosaic-radio.umd.js +0 -901
  569. package/bundles/ptsecurity-mosaic-radio.umd.js.map +0 -1
  570. package/bundles/ptsecurity-mosaic-select.umd.js +0 -1606
  571. package/bundles/ptsecurity-mosaic-select.umd.js.map +0 -1
  572. package/bundles/ptsecurity-mosaic-sidebar.umd.js +0 -254
  573. package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +0 -1
  574. package/bundles/ptsecurity-mosaic-sidepanel.umd.js +0 -954
  575. package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +0 -1
  576. package/bundles/ptsecurity-mosaic-splitter.umd.js +0 -448
  577. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +0 -1
  578. package/bundles/ptsecurity-mosaic-table.umd.js +0 -81
  579. package/bundles/ptsecurity-mosaic-table.umd.js.map +0 -1
  580. package/bundles/ptsecurity-mosaic-tabs.umd.js +0 -2013
  581. package/bundles/ptsecurity-mosaic-tabs.umd.js.map +0 -1
  582. package/bundles/ptsecurity-mosaic-tags.umd.js +0 -1912
  583. package/bundles/ptsecurity-mosaic-tags.umd.js.map +0 -1
  584. package/bundles/ptsecurity-mosaic-textarea.umd.js +0 -664
  585. package/bundles/ptsecurity-mosaic-textarea.umd.js.map +0 -1
  586. package/bundles/ptsecurity-mosaic-timepicker.umd.js +0 -821
  587. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +0 -1
  588. package/bundles/ptsecurity-mosaic-toggle.umd.js +0 -557
  589. package/bundles/ptsecurity-mosaic-toggle.umd.js.map +0 -1
  590. package/bundles/ptsecurity-mosaic-tooltip.umd.js +0 -777
  591. package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +0 -1
  592. package/bundles/ptsecurity-mosaic-tree-select.umd.js +0 -1368
  593. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +0 -1
  594. package/bundles/ptsecurity-mosaic-tree.umd.js +0 -2301
  595. package/bundles/ptsecurity-mosaic-tree.umd.js.map +0 -1
  596. package/bundles/ptsecurity-mosaic.umd.js +0 -11
  597. package/bundles/ptsecurity-mosaic.umd.js.map +0 -1
  598. package/esm2015/autocomplete/autocomplete.component.js +0 -163
  599. package/esm2015/button/button.component.js +0 -129
  600. package/esm2015/button/button.module.js +0 -42
  601. package/esm2015/button-toggle/button-toggle.component.js +0 -370
  602. package/esm2015/card/card.component.js +0 -88
  603. package/esm2015/checkbox/checkbox.js +0 -325
  604. package/esm2015/core/formatters/date/formatter.js +0 -288
  605. package/esm2015/core/formatters/date/templates/en-US.js +0 -280
  606. package/esm2015/core/formatters/date/templates/ru-RU.js +0 -280
  607. package/esm2015/core/formatters/number/formatter.js +0 -99
  608. package/esm2015/core/option/action.js +0 -131
  609. package/esm2015/core/option/optgroup.js +0 -40
  610. package/esm2015/core/option/option.js +0 -262
  611. package/esm2015/core/pop-up/pop-up-trigger.js +0 -241
  612. package/esm2015/core/pop-up/pop-up.js +0 -87
  613. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +0 -45
  614. package/esm2015/datepicker/calendar-body.component.js +0 -114
  615. package/esm2015/datepicker/calendar.component.js +0 -377
  616. package/esm2015/datepicker/datepicker-input.directive.js +0 -885
  617. package/esm2015/datepicker/datepicker-toggle.component.js +0 -94
  618. package/esm2015/datepicker/datepicker.component.js +0 -418
  619. package/esm2015/dropdown/dropdown-item.component.js +0 -149
  620. package/esm2015/dropdown/dropdown-trigger.directive.js +0 -486
  621. package/esm2015/dropdown/dropdown.component.js +0 -302
  622. package/esm2015/form-field/form-field.js +0 -224
  623. package/esm2015/icon/icon.component.js +0 -51
  624. package/esm2015/link/link.component.js +0 -108
  625. package/esm2015/list/list-selection.component.js +0 -716
  626. package/esm2015/list/list.component.js +0 -58
  627. package/esm2015/modal/modal.component.js +0 -508
  628. package/esm2015/navbar/navbar-item.component.js +0 -209
  629. package/esm2015/navbar/navbar.component.js +0 -118
  630. package/esm2015/navbar/navbar.module.js +0 -76
  631. package/esm2015/navbar/vertical-navbar.component.js +0 -140
  632. package/esm2015/popover/popover-confirm.component.js +0 -116
  633. package/esm2015/popover/popover.component.js +0 -262
  634. package/esm2015/progress-bar/progress-bar.component.js +0 -50
  635. package/esm2015/progress-spinner/progress-spinner.component.js +0 -54
  636. package/esm2015/radio/radio.component.js +0 -467
  637. package/esm2015/select/select.component.js +0 -1122
  638. package/esm2015/sidebar/sidebar.component.js +0 -155
  639. package/esm2015/sidepanel/sidepanel-container.component.js +0 -114
  640. package/esm2015/sidepanel/sidepanel.service.js +0 -164
  641. package/esm2015/splitter/splitter.component.js +0 -342
  642. package/esm2015/splitter/splitter.module.js +0 -38
  643. package/esm2015/tabs/paginated-tab-header.js +0 -482
  644. package/esm2015/tabs/tab-body.component.js +0 -186
  645. package/esm2015/tabs/tab-group.component.js +0 -359
  646. package/esm2015/tabs/tab-header.component.js +0 -76
  647. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +0 -118
  648. package/esm2015/tags/tag-list.component.js +0 -732
  649. package/esm2015/tags/tag.component.js +0 -383
  650. package/esm2015/timepicker/timepicker.directive.js +0 -653
  651. package/esm2015/toggle/toggle.component.js +0 -169
  652. package/esm2015/tooltip/tooltip.component.js +0 -299
  653. package/esm2015/tree/padding.directive.js +0 -111
  654. package/esm2015/tree/toggle.js +0 -89
  655. package/esm2015/tree/tree-option.component.js +0 -238
  656. package/esm2015/tree/tree-selection.component.js +0 -541
  657. package/esm2015/tree/tree.js +0 -23
  658. package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +0 -1
  659. package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +0 -1
  660. package/fesm2015/ptsecurity-mosaic-button.js +0 -174
  661. package/fesm2015/ptsecurity-mosaic-button.js.map +0 -1
  662. package/fesm2015/ptsecurity-mosaic-card.js.map +0 -1
  663. package/fesm2015/ptsecurity-mosaic-checkbox.js.map +0 -1
  664. package/fesm2015/ptsecurity-mosaic-core.js.map +0 -1
  665. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +0 -1
  666. package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +0 -1
  667. package/fesm2015/ptsecurity-mosaic-divider.js +0 -68
  668. package/fesm2015/ptsecurity-mosaic-divider.js.map +0 -1
  669. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +0 -1
  670. package/fesm2015/ptsecurity-mosaic-form-field.js +0 -396
  671. package/fesm2015/ptsecurity-mosaic-form-field.js.map +0 -1
  672. package/fesm2015/ptsecurity-mosaic-icon.js +0 -93
  673. package/fesm2015/ptsecurity-mosaic-icon.js.map +0 -1
  674. package/fesm2015/ptsecurity-mosaic-input.js.map +0 -1
  675. package/fesm2015/ptsecurity-mosaic-link.js.map +0 -1
  676. package/fesm2015/ptsecurity-mosaic-list.js.map +0 -1
  677. package/fesm2015/ptsecurity-mosaic-modal.js.map +0 -1
  678. package/fesm2015/ptsecurity-mosaic-navbar.js +0 -539
  679. package/fesm2015/ptsecurity-mosaic-navbar.js.map +0 -1
  680. package/fesm2015/ptsecurity-mosaic-popover.js +0 -406
  681. package/fesm2015/ptsecurity-mosaic-popover.js.map +0 -1
  682. package/fesm2015/ptsecurity-mosaic-progress-bar.js +0 -84
  683. package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +0 -1
  684. package/fesm2015/ptsecurity-mosaic-progress-spinner.js +0 -88
  685. package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +0 -1
  686. package/fesm2015/ptsecurity-mosaic-radio.js.map +0 -1
  687. package/fesm2015/ptsecurity-mosaic-select.js.map +0 -1
  688. package/fesm2015/ptsecurity-mosaic-sidebar.js.map +0 -1
  689. package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +0 -1
  690. package/fesm2015/ptsecurity-mosaic-splitter.js +0 -384
  691. package/fesm2015/ptsecurity-mosaic-splitter.js.map +0 -1
  692. package/fesm2015/ptsecurity-mosaic-table.js.map +0 -1
  693. package/fesm2015/ptsecurity-mosaic-tabs.js.map +0 -1
  694. package/fesm2015/ptsecurity-mosaic-tags.js.map +0 -1
  695. package/fesm2015/ptsecurity-mosaic-textarea.js.map +0 -1
  696. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +0 -1
  697. package/fesm2015/ptsecurity-mosaic-toggle.js.map +0 -1
  698. package/fesm2015/ptsecurity-mosaic-tooltip.js +0 -362
  699. package/fesm2015/ptsecurity-mosaic-tooltip.js.map +0 -1
  700. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +0 -1
  701. package/fesm2015/ptsecurity-mosaic-tree.js.map +0 -1
  702. package/fesm2015/ptsecurity-mosaic.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptsecurity-mosaic-tags.mjs","sources":["../../../packages/mosaic/tags/tag-default-options.ts","../../../packages/mosaic/tags/tag.component.ts","../../../packages/mosaic/tags/tag.partial.html","../../../packages/mosaic/tags/tag-list.component.ts","../../../packages/mosaic/tags/tag-list.partial.html","../../../packages/mosaic/tags/tag-input.ts","../../../packages/mosaic/tags/tag.module.ts","../../../packages/mosaic/tags/ptsecurity-mosaic-tags.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n\n/** Default options, for the chips module, that can be overridden. */\n// tslint:disable-next-line: naming-convention\nexport interface McTagsDefaultOptions {\n /** The list of key codes that will trigger a chipEnd event. */\n separatorKeyCodes: number[];\n}\n\n/** Injection token to be used to override the default options for the chips module. */\nexport const MC_TAGS_DEFAULT_OPTIONS = new InjectionToken<McTagsDefaultOptions>('mc-tags-default-options');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport { BACKSPACE, DELETE, SPACE } from '@ptsecurity/cdk/keycodes';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n mixinColor,\n mixinDisabled\n} from '@ptsecurity/mosaic/core';\nimport { McIcon } from '@ptsecurity/mosaic/icon';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McTagEvent {\n tag: McTag;\n}\n\n/** Event object emitted by McTag when selected or deselected. */\nexport class McTagSelectionChange {\n constructor(public source: McTag, public selected: boolean, public isUserInput = false) {}\n}\n\n\nconst TAG_ATTRIBUTE_NAMES = ['mc-basic-tag'];\n\n/**\n * Dummy directive to add CSS class to tag avatar.\n * @docs-private\n */\n@Directive({\n selector: 'mc-tag-avatar, [mcTagAvatar]',\n host: { class: 'mc-tag-avatar' }\n})\nexport class McTagAvatar {}\n\n/**\n * Dummy directive to add CSS class to tag trailing icon.\n * @docs-private\n */\n@Directive({\n selector: 'mc-tag-trailing-icon, [mcTagTrailingIcon]',\n host: { class: 'mc-tag-trailing-icon' }\n})\nexport class McTagTrailingIcon {}\n\nexport class McTagBase {\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McTagMixinBase: CanColorCtor & CanDisableCtor & typeof McTagBase = mixinColor(mixinDisabled(McTagBase));\n\n\n@Component({\n selector: 'mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]',\n exportAs: 'mcTag',\n templateUrl: 'tag.partial.html',\n styleUrls: ['./tag.scss'],\n inputs: ['color'],\n host: {\n class: 'mc-tag',\n\n '[attr.tabindex]': 'tabindex',\n '[attr.disabled]': 'disabled || null',\n\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-tag-with-avatar]': 'avatar',\n '[class.mc-tag-with-icon]': 'contentChildren',\n '[class.mc-tag-with-trailing-icon]': 'trailingIcon || removeIcon',\n '[class.mc-disabled]': 'disabled',\n\n '(click)': 'handleClick($event)',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': 'blur()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McTag extends McTagMixinBase implements IFocusableOption, OnDestroy, CanColor, CanDisable {\n /** Emits when the tag is focused. */\n readonly onFocus = new Subject<McTagEvent>();\n\n /** Emits when the tag is blured. */\n readonly onBlur = new Subject<McTagEvent>();\n\n nativeElement: HTMLElement;\n\n /** Whether the tag has focus. */\n hasFocus: boolean = false;\n\n /** Whether the tag list is selectable */\n tagListSelectable: boolean = true;\n\n @ContentChildren(McIcon) contentChildren: QueryList<McIcon>;\n\n /** The tag avatar */\n @ContentChild(McTagAvatar, {static: false}) avatar: McTagAvatar;\n\n /** The tag's trailing icon. */\n @ContentChild(McTagTrailingIcon, {static: false}) trailingIcon: McTagTrailingIcon;\n\n /** The tag's remove toggler. */\n @ContentChild(forwardRef(() => McTagRemove), {static: false}) removeIcon: McTagRemove;\n\n /** Emitted when the tag is selected or deselected. */\n @Output() readonly selectionChange: EventEmitter<McTagSelectionChange> =\n new EventEmitter<McTagSelectionChange>();\n\n /** Emitted when the tag is destroyed. */\n @Output() readonly destroyed: EventEmitter<McTagEvent> = new EventEmitter<McTagEvent>();\n\n /** Emitted when a tag is to be removed. */\n @Output() readonly removed: EventEmitter<McTagEvent> = new EventEmitter<McTagEvent>();\n\n /** Whether the tag is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n\n set selected(value: boolean) {\n const coercedValue = coerceBooleanProperty(value);\n\n if (coercedValue !== this._selected) {\n this._selected = coercedValue;\n this.dispatchSelectionChange();\n }\n }\n\n private _selected: boolean = false;\n\n /** The value of the tag. Defaults to the content inside `<mc-tag>` tags. */\n @Input()\n get value(): any {\n return this._value !== undefined\n ? this._value\n : this.elementRef.nativeElement.textContent;\n }\n\n set value(value: any) {\n this._value = value;\n }\n\n private _value: any;\n\n /**\n * Whether or not the tag is selectable. When a tag is not selectable,\n * changes to its selected state are always ignored. By default a tag is\n * selectable, and it becomes non-selectable if its parent tag list is\n * not selectable.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable && this.tagListSelectable;\n }\n\n set selectable(value: boolean) {\n this._selectable = coerceBooleanProperty(value);\n }\n\n private _selectable: boolean = true;\n\n /**\n * Determines whether or not the tag displays the remove styling and emits (removed) events.\n */\n @Input()\n get removable(): boolean {\n return this._removable;\n }\n\n set removable(value: boolean) {\n this._removable = coerceBooleanProperty(value);\n }\n\n private _removable: boolean = true;\n\n get tabindex(): any {\n if (!this.selectable) { return null; }\n\n return this.disabled ? null : -1;\n }\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this.disabled) {\n this._disabled = value;\n }\n }\n\n private _disabled: boolean = false;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone\n ) {\n super(elementRef);\n\n this.addHostClassName();\n\n this.nativeElement = elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.addClassModificatorForIcons();\n }\n\n addClassModificatorForIcons() {\n const icons = this.contentChildren.map((item) => item._elementRef.nativeElement);\n\n if (icons.length === 1) {\n const iconElement = icons[0];\n\n if (!iconElement.previousElementSibling && !iconElement.nextElementSibling) {\n if (iconElement.nextSibling) {\n iconElement.classList.add('mc-icon_left');\n this.nativeElement.classList.add('mc-left-icon');\n }\n\n if (iconElement.previousSibling) {\n iconElement.classList.add('mc-icon_right');\n this.nativeElement.classList.add('mc-right-icon');\n }\n }\n } else if (icons.length > 1) {\n const firstIconElement = icons[0];\n const secondIconElement = icons[1];\n\n firstIconElement.classList.add('mc-icon_left');\n secondIconElement.classList.add('mc-icon_right');\n }\n }\n\n addHostClassName() {\n // Add class for the different tags\n for (const attr of TAG_ATTRIBUTE_NAMES) {\n if (\n this.elementRef.nativeElement.hasAttribute(attr) ||\n this.elementRef.nativeElement.tagName.toLowerCase() === attr\n ) {\n (this.elementRef.nativeElement as HTMLElement).classList.add(attr);\n\n return;\n }\n }\n (this.elementRef.nativeElement as HTMLElement).classList.add('mc-standard-tag');\n }\n\n ngOnDestroy() {\n this.destroyed.emit({ tag: this });\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n this.dispatchSelectionChange();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n this.dispatchSelectionChange();\n }\n }\n\n selectViaInteraction(): void {\n if (!this._selected) {\n this._selected = true;\n this.dispatchSelectionChange(true);\n }\n }\n\n toggleSelected(isUserInput: boolean = false): boolean {\n this._selected = !this.selected;\n this.dispatchSelectionChange(isUserInput);\n\n return this.selected;\n }\n\n /** Allows for programmatic focusing of the tag. */\n focus(): void {\n if (!this.selectable) { return; }\n\n if (!this.hasFocus) {\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ tag: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n\n /**\n * Allows for programmatic removal of the tag. Called by the McTagList when the DELETE or\n * BACKSPACE keys are pressed.\n *\n * Informs any listeners of the removal request. Does not remove the tag from the DOM.\n */\n remove(): void {\n if (this.removable) {\n this.removed.emit({ tag: this });\n }\n }\n\n handleClick(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n } else {\n event.stopPropagation();\n }\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.disabled) { return; }\n\n // tslint:disable-next-line: deprecation\n switch (event.keyCode) {\n case DELETE:\n case BACKSPACE:\n // If we are removable, remove the focused tag\n this.remove();\n // Always prevent so page navigation does not occur\n event.preventDefault();\n break;\n case SPACE:\n // If we are selectable, toggle the focused tag\n if (this.selectable) {\n this.toggleSelected(true);\n }\n\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n default:\n }\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the tag from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the tag list\n // that moves focus not the next item. To work around the issue, we defer marking the tag\n // as not focused until the next time the zone stabilizes.\n this._ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.hasFocus = false;\n this.onBlur.next({ tag: this });\n });\n });\n }\n\n private dispatchSelectionChange(isUserInput = false) {\n this.selectionChange.emit({\n source: this,\n isUserInput,\n selected: this._selected\n });\n }\n}\n\n\n/**\n *\n * Example:\n *\n * `<mc-tag>\n * <mc-icon mcTagRemove>cancel</mc-icon>\n * </mc-tag>`\n *\n * You *may* use a custom icon, but you may need to override the `mc-tag-remove` positioning\n * styles to properly center the icon within the tag.\n */\n@Directive({\n selector: '[mcTagRemove]',\n host: {\n class: 'mc-tag-remove mc-tag-trailing-icon',\n '[attr.tabindex]': '-1',\n '(click)': 'handleClick($event)',\n '(focus)': 'focus($event)'\n }\n})\nexport class McTagRemove {\n constructor(protected parentTag: McTag) {}\n\n focus($event): void {\n $event.stopPropagation();\n }\n\n /** Calls the parent tag's public `remove()` method if applicable. */\n handleClick(event: Event): void {\n if (this.parentTag.removable) {\n this.parentTag.hasFocus = true;\n\n this.parentTag.remove();\n }\n\n // We need to stop event propagation because otherwise the event will bubble up to the\n // form field and cause the `onContainerClick` method to be invoked. This method would then\n // reset the focused tag that has been focused after tag removal. Usually the parent\n // the parent click listener of the `McTag` would prevent propagation, but it can happen\n // that the tag is being removed before the event bubbles up.\n event.stopPropagation();\n }\n}\n","<div class=\"mc-tag__wrapper\">\n <span class=\"mc-tag__text\"><ng-content></ng-content></span>\n <ng-content select=\"[mc-icon]\"></ng-content>\n <div class=\"mc-tag-overlay\"></div>\n</div>\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport { FocusKeyManager } from '@ptsecurity/cdk/a11y';\nimport { BACKSPACE, END, HOME } from '@ptsecurity/cdk/keycodes';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n MC_VALIDATION,\n McValidationOptions,\n mixinErrorState,\n setMosaicValidation\n} from '@ptsecurity/mosaic/core';\nimport { McCleaner, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { McTagTextControl } from './tag-text-control';\nimport { McTag, McTagEvent, McTagSelectionChange } from './tag.component';\n\n\nexport class McTagListBase {\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McTagListMixinBase: CanUpdateErrorStateCtor & typeof McTagListBase = mixinErrorState(McTagListBase);\n\n\n// Increasing integer for generating unique ids for tag-list components.\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the tag list value has changed. */\nexport class McTagListChange {\n constructor(public source: McTagList, public value: any) {}\n}\n\n\n@Component({\n selector: 'mc-tag-list',\n exportAs: 'mcTagList',\n templateUrl: 'tag-list.partial.html',\n styleUrls: ['tag-list.scss'],\n host: {\n class: 'mc-tag-list',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-invalid]': 'errorState',\n\n '[attr.tabindex]': 'disabled ? null : tabIndex',\n '[id]': 'uid',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(keydown)': 'keydown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: McFormFieldControl, useExisting: McTagList }]\n})\nexport class McTagList extends McTagListMixinBase implements McFormFieldControl<any>,\n ControlValueAccessor, AfterContentInit, DoCheck, OnInit, OnDestroy, CanUpdateErrorState {\n\n readonly controlType: string = 'tag-list';\n\n /** Combined stream of all of the child tags' selection change events. */\n get tagSelectionChanges(): Observable<McTagSelectionChange> {\n return merge(...this.tags.map((tag) => tag.selectionChange));\n }\n\n /** Combined stream of all of the child tags' focus change events. */\n get tagFocusChanges(): Observable<McTagEvent> {\n return merge(...this.tags.map((tag) => tag.onFocus));\n }\n\n /** Combined stream of all of the child tags' blur change events. */\n get tagBlurChanges(): Observable<McTagEvent> {\n return merge(...this.tags.map((tag) => tag.onBlur));\n }\n\n /** Combined stream of all of the child tags' remove change events. */\n get tagRemoveChanges(): Observable<McTagEvent> {\n return merge(...this.tags.map((tag) => tag.destroyed));\n }\n\n /** The array of selected tags inside tag list. */\n get selected(): McTag[] | McTag {\n return this.multiple ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get canShowCleaner(): boolean {\n return this.cleaner && this.tags.length > 0;\n }\n\n /** Whether the user should be allowed to select multiple tags. */\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n this._multiple = coerceBooleanProperty(value);\n }\n\n /**\n * A function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith(): (o1: any, o2: any) => boolean {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this.writeValue(value);\n this._value = value;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get id(): string {\n return this.tagInput ? this.tagInput.id : this.uid;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this.tagInput ? this.tagInput.placeholder : this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n\n /** Whether any tags or the mcTagInput inside of this tag-list has focus. */\n get focused(): boolean {\n return (this.tagInput && this.tagInput.focused) || this.hasFocusedTag();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return (!this.tagInput || this.tagInput.empty) && this.tags.length === 0;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n return !this.empty || this.focused;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this.syncTagsDisabledState();\n }\n\n /**\n * Whether or not this tag list is selectable. When a tag list is not selectable,\n * the selected states for all the tags inside the tag list are always ignored.\n */\n @Input()\n get selectable(): boolean {\n return this._selectable;\n }\n\n set selectable(value: boolean) {\n this._selectable = coerceBooleanProperty(value);\n\n if (this.tags) {\n this.tags.forEach((tag) => tag.tagListSelectable = this._selectable);\n }\n }\n\n @Input()\n get tabIndex(): number {\n return this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /**\n * Event that emits whenever the raw value of the tag-list changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n uid: string = `mc-tag-list-${nextUniqueId++}`;\n\n /**\n * User defined tab index.\n * When it is not null, use user defined tab index. Otherwise use tabIndex\n */\n userTabIndex: number | null = null;\n\n keyManager: FocusKeyManager<McTag>;\n\n selectionModel: SelectionModel<McTag>;\n\n tagChanges = new EventEmitter<any>();\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /** Orientation of the tag list. */\n @Input('orientation') orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /** Event emitted when the selected tag list value has been changed by the user. */\n @Output() readonly change: EventEmitter<McTagListChange> = new EventEmitter<McTagListChange>();\n\n @ContentChild('mcTagListCleaner', { static: true }) cleaner: McCleaner;\n\n /** The tag components contained within this tag list. */\n @ContentChildren(McTag, {\n // Need to use `descendants: true`,\n // Ivy will no longer match indirect descendants if it's left as false.\n descendants: true\n }) tags: QueryList<McTag>;\n\n private _value: any;\n\n private _required: boolean = false;\n\n private _placeholder: string;\n\n private _disabled: boolean = false;\n\n private _selectable: boolean = true;\n\n /** The tag input to add more tags */\n private tagInput: McTagTextControl;\n\n private _multiple: boolean = false;\n\n /**\n * When a tag is destroyed, we store the index of the destroyed tag until the tags\n * query list notifies about the update. This is necessary because we cannot determine an\n * appropriate tag that should receive focus until the array of tags updated completely.\n */\n private lastDestroyedTagIndex: number | null = null;\n\n /** Subject that emits when the component has been destroyed. */\n private destroyed = new Subject<void>();\n\n /** Subscription to focus changes in the tags. */\n private tagFocusSubscription: Subscription | null;\n\n /** Subscription to blur changes in the tags. */\n private tagBlurSubscription: Subscription | null;\n\n /** Subscription to selection changes in tags. */\n private tagSelectionSubscription: Subscription | null;\n\n /** Subscription to remove changes in tags. */\n private tagRemoveSubscription: Subscription | null;\n\n constructor(\n protected elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() private dir: Directionality,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngAfterContentInit() {\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n\n this.keyManager = new FocusKeyManager<McTag>(this.tags)\n .withVerticalOrientation()\n .withHorizontalOrientation(this.dir ? this.dir.value : 'ltr');\n\n if (this.dir) {\n this.dir.change\n .pipe(takeUntil(this.destroyed))\n .subscribe((dir) => this.keyManager.withHorizontalOrientation(dir));\n }\n\n // Prevents the tag list from capturing focus and redirecting\n // it back to the first tag when the user tabs out.\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n // When the list changes, re-subscribe\n this.tags.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n if (this.disabled) {\n // Since this happens after the content has been\n // checked, we need to defer it to the next tick.\n Promise.resolve().then(() => { this.syncTagsDisabledState(); });\n }\n\n this.resetTags();\n\n // Reset tags selected/deselected status\n this.initializeSelection();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n\n // Check to see if we have a destroyed tag and need to refocus\n this.updateFocusForDestroyedTags();\n\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.tagChanges.emit(this.tags.toArray());\n this.stateChanges.next();\n this.propagateTagsChanges();\n });\n });\n }\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<McTag>(this.multiple, undefined, false);\n this.stateChanges.next();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n this.stateChanges.complete();\n\n this.dropSubscriptions();\n }\n\n // tslint:disable-next-line:no-empty\n onTouched = () => {};\n\n // tslint:disable-next-line:no-empty\n onChange: (value: any) => void = () => {};\n\n /** Associates an HTML input element with this tag list. */\n registerInput(inputElement: McTagTextControl): void {\n this.tagInput = inputElement;\n\n // todo need rethink about it\n if (this.ngControl && inputElement.ngControl?.statusChanges) {\n inputElement.ngControl.statusChanges\n .subscribe(() => this.ngControl.control!.setErrors(inputElement.ngControl!.errors));\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any): void {\n if (this.tags) {\n this.setSelectionByValue(value, false);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick(event: MouseEvent) {\n if (!this.originatesFromTag(event)) {\n this.focus();\n }\n }\n\n /**\n * Focuses the first non-disabled tag in this tag list, or the associated input when there\n * are no eligible tags.\n */\n focus(): void {\n if (this.disabled) { return; }\n\n // TODO: ARIA says this should focus the first `selected` tag if any are selected.\n // Focus on first element if there's no tagInput inside tag-list\n if (this.tagInput && this.tagInput.focused) {\n // do nothing\n } else if (this.tags.length > 0) {\n this.keyManager.setFirstItemActive();\n this.stateChanges.next();\n } else {\n this.focusInput();\n this.stateChanges.next();\n }\n }\n\n /** Attempt to focus an input if we have one. */\n focusInput() {\n if (this.tagInput) {\n this.tagInput.focus();\n }\n }\n\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n keydown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n\n // If they are on an empty input and hit backspace, focus the last tag\n // tslint:disable-next-line: deprecation\n if (event.keyCode === BACKSPACE && this.isInputEmpty(target)) {\n this.keyManager.setLastItemActive();\n event.preventDefault();\n } else if (target && target.classList.contains('mc-tag')) {\n // tslint:disable-next-line: deprecation\n if (event.keyCode === HOME) {\n this.keyManager.setFirstItemActive();\n event.preventDefault();\n // tslint:disable-next-line: deprecation\n } else if (event.keyCode === END) {\n this.keyManager.setLastItemActive();\n event.preventDefault();\n } else {\n this.keyManager.onKeydown(event);\n }\n\n this.stateChanges.next();\n }\n }\n\n setSelectionByValue(value: any, isUserInput: boolean = true) {\n this.clearSelection();\n this.tags.forEach((tag) => tag.deselect());\n\n if (Array.isArray(value)) {\n value.forEach((currentValue) => this.selectValue(currentValue, isUserInput));\n this.sortValues();\n } else {\n const correspondingTag = this.selectValue(value, isUserInput);\n\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what tag the user interacted with last.\n if (correspondingTag && isUserInput) {\n this.keyManager.setActiveItem(correspondingTag);\n }\n }\n }\n\n /** When blurred, mark the field as touched when focus moved outside the tag list. */\n blur() {\n if (!this.hasFocusedTag()) {\n this.keyManager.setActiveItem(-1);\n }\n\n if (!this.disabled) {\n if (this.tagInput) {\n // If there's a tag input, we should check whether the focus moved to tag input.\n // If the focus is not moved to tag input, mark the field as touched. If the focus moved\n // to tag input, do nothing.\n // Timeout is needed to wait for the focus() event trigger on tag input.\n setTimeout(() => {\n if (!this.focused) {\n this.markAsTouched();\n }\n });\n } else {\n // If there's no tag input, then mark the field as touched.\n this.markAsTouched();\n }\n }\n }\n\n /** Mark the field as touched */\n markAsTouched() {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n /**\n * Check the tab index as you should not be allowed to focus an empty list.\n */\n protected updateTabIndex(): void {\n // If we have 0 tags, we should not allow keyboard focus\n this._tabIndex = this.userTabIndex || (this.tags.length === 0 ? -1 : 0);\n }\n\n /**\n * If the amount of tags changed, we need to update the\n * key manager state and focus the next closest tag.\n */\n protected updateFocusForDestroyedTags() {\n if (this.lastDestroyedTagIndex != null) {\n if (this.tags.length) {\n const newTagIndex = Math.min(this.lastDestroyedTagIndex, this.tags.length - 1);\n this.keyManager.setActiveItem(newTagIndex);\n } else {\n this.focusInput();\n }\n }\n\n this.lastDestroyedTagIndex = null;\n }\n\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of tags.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.tags.length;\n }\n\n private isInputEmpty(element: HTMLElement): boolean {\n if (element && element.nodeName.toLowerCase() === 'input') {\n const input = element as HTMLInputElement;\n\n return !input.value;\n }\n\n return false;\n }\n\n /**\n * Finds and selects the tag based on its value.\n * @returns Tag that has the corresponding value.\n */\n private selectValue(value: any, isUserInput: boolean = true): McTag | undefined {\n\n const correspondingTag = this.tags.find((tag) => {\n return tag.value != null && this._compareWith(tag.value, value);\n });\n\n if (correspondingTag) {\n if (isUserInput) {\n correspondingTag.selectViaInteraction();\n } else {\n correspondingTag.select();\n }\n\n this.selectionModel.select(correspondingTag);\n }\n\n return correspondingTag;\n }\n\n private initializeSelection(): void {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl || this._value) {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value, false);\n this.stateChanges.next();\n }\n });\n }\n\n /**\n * Deselects every tag in the list.\n * @param skip Tag that should not be deselected.\n */\n private clearSelection(skip?: McTag): void {\n this.selectionModel.clear();\n this.tags.forEach((tag) => {\n if (tag !== skip) {\n tag.deselect();\n }\n });\n this.stateChanges.next();\n }\n\n /**\n * Sorts the model values, ensuring that they keep the same\n * order that they have in the panel.\n */\n private sortValues(): void {\n if (this._multiple) {\n this.selectionModel.clear();\n\n this.tags.forEach((tag) => {\n if (tag.selected) {\n this.selectionModel.select(tag);\n }\n });\n this.stateChanges.next();\n }\n }\n\n /** Emits change event to set the model value. */\n // todo need rethink this method and selection logic\n private propagateChanges(fallbackValue?: any): void {\n let valueToEmit: any = null;\n\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map((tag) => tag.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.change.emit(new McTagListChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.changeDetectorRef.markForCheck();\n }\n\n private propagateTagsChanges(): void {\n const valueToEmit: any = this.tags.map((tag) => tag.value);\n\n this._value = valueToEmit;\n this.change.emit(new McTagListChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this.onChange(valueToEmit);\n this.changeDetectorRef.markForCheck();\n }\n\n private resetTags() {\n this.dropSubscriptions();\n this.listenToTagsFocus();\n this.listenToTagsSelection();\n this.listenToTagsRemoved();\n }\n\n private dropSubscriptions() {\n if (this.tagFocusSubscription) {\n this.tagFocusSubscription.unsubscribe();\n this.tagFocusSubscription = null;\n }\n\n if (this.tagBlurSubscription) {\n this.tagBlurSubscription.unsubscribe();\n this.tagBlurSubscription = null;\n }\n\n if (this.tagSelectionSubscription) {\n this.tagSelectionSubscription.unsubscribe();\n this.tagSelectionSubscription = null;\n }\n\n if (this.tagRemoveSubscription) {\n this.tagRemoveSubscription.unsubscribe();\n this.tagRemoveSubscription = null;\n }\n }\n\n /** Listens to user-generated selection events on each tag. */\n private listenToTagsSelection(): void {\n this.tagSelectionSubscription = this.tagSelectionChanges.subscribe((event) => {\n if (event.source.selected) {\n this.selectionModel.select(event.source);\n } else {\n this.selectionModel.deselect(event.source);\n }\n\n // For single selection tag list, make sure the deselected value is unselected.\n if (!this.multiple) {\n this.tags.forEach((tag) => {\n if (!this.selectionModel.isSelected(tag) && tag.selected) {\n tag.deselect();\n }\n });\n }\n\n if (event.isUserInput) {\n this.propagateChanges();\n }\n });\n }\n\n /** Listens to user-generated selection events on each tag. */\n private listenToTagsFocus(): void {\n this.tagFocusSubscription = this.tagFocusChanges\n .subscribe((event) => {\n const tagIndex: number = this.tags.toArray().indexOf(event.tag);\n\n if (this.isValidIndex(tagIndex)) {\n this.keyManager.updateActiveItem(tagIndex);\n }\n\n this.stateChanges.next();\n });\n\n this.tagBlurSubscription = this.tagBlurChanges\n .subscribe(() => {\n this.blur();\n this.stateChanges.next();\n });\n }\n\n private listenToTagsRemoved(): void {\n this.tagRemoveSubscription = this.tagRemoveChanges\n .subscribe((event) => {\n const tag = event.tag;\n const tagIndex = this.tags.toArray().indexOf(event.tag);\n\n // In case the tag that will be removed is currently focused, we temporarily store\n // the index in order to be able to determine an appropriate sibling tag that will\n // receive focus.\n if (this.isValidIndex(tagIndex) && tag.hasFocus) {\n this.lastDestroyedTagIndex = tagIndex;\n }\n });\n }\n\n /** Checks whether an event comes from inside a tag element. */\n private originatesFromTag(event: Event): boolean {\n let currentElement = event.target as HTMLElement | null;\n\n while (currentElement && currentElement !== this.elementRef.nativeElement) {\n if (currentElement.classList.contains('mc-tag')) { return true; }\n\n currentElement = currentElement.parentElement;\n }\n\n return false;\n }\n\n /** Checks whether any of the tags is focused. */\n private hasFocusedTag() {\n return this.tags.some((tag) => tag.hasFocus);\n }\n\n /** Syncs the list's disabled state with the individual tags. */\n private syncTagsDisabledState() {\n if (this.tags) {\n this.tags.forEach((tag) => {\n tag.disabled = this._disabled;\n });\n }\n }\n}\n\n","<div class=\"mc-tags-list__list-container\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"mc-tags-list__cleaner\"\n *ngIf=\"canShowCleaner\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n</div>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Renderer2,\n Self\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { hasModifierKey, ENTER, TAB, SPACE, COMMA } from '@ptsecurity/cdk/keycodes';\n\nimport { MC_TAGS_DEFAULT_OPTIONS, McTagsDefaultOptions } from './tag-default-options';\nimport { McTagList } from './tag-list.component';\nimport { McTagTextControl } from './tag-text-control';\n\n\n/** Represents an input event on a `mcTagInput`. */\n// tslint:disable-next-line: naming-convention\nexport interface McTagInputEvent {\n /** The native `<input>` element that the event is being fired for. */\n input: HTMLInputElement;\n\n /** The value of the input. */\n value: string;\n}\n\n// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\n\n/**\n * Directive that adds tag-specific behaviors to an input element inside `<mc-form-field>`.\n * May be placed inside or outside of an `<mc-tag-list>`.\n */\n@Directive({\n selector: 'input[mcTagInputFor]',\n exportAs: 'mcTagInput, mcTagInputFor',\n host: {\n class: 'mc-tag-input',\n\n '[id]': 'id',\n '[attr.disabled]': 'disabled || null',\n '[attr.placeholder]': 'placeholder || null',\n\n '(keydown)': 'onKeydown($event)',\n '(blur)': 'blur()',\n '(focus)': 'onFocus()',\n '(input)': 'onInput()',\n '(paste)': 'onPaste($event)'\n }\n})\nexport class McTagInput implements McTagTextControl, OnChanges {\n /** Whether the control is focused. */\n focused: boolean = false;\n\n /**\n * The list of key codes that will trigger a tagEnd event.\n *\n * Defaults to `[ENTER]`.\n */\n @Input('mcTagInputSeparatorKeyCodes')\n separatorKeyCodes: number[] = this.defaultOptions.separatorKeyCodes;\n\n /** Emitted when a tag is to be added. */\n @Output('mcTagInputTokenEnd')\n tagEnd: EventEmitter<McTagInputEvent> = new EventEmitter<McTagInputEvent>();\n\n /** The input's placeholder text. */\n @Input() placeholder: string = '';\n\n /** Unique id for the input. */\n @Input() id: string = `mc-tag-list-input-${nextUniqueId++}`;\n\n /** Register input for tag list */\n @Input('mcTagInputFor')\n set tagList(value: McTagList) {\n if (value) {\n this._tagList = value;\n this._tagList.registerInput(this);\n }\n }\n\n // tslint:disable-next-line: naming-convention\n private _tagList: McTagList;\n\n /**\n * Whether or not the tagEnd event will be emitted when the input is blurred.\n */\n @Input('mcTagInputAddOnBlur')\n get addOnBlur(): boolean {\n return this._addOnBlur;\n }\n\n set addOnBlur(value: boolean) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n\n private _addOnBlur: boolean = true;\n\n /** Whether the input is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this._tagList && this._tagList.disabled);\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n /** Whether the input is empty. */\n get empty(): boolean {\n return !this.inputElement.value;\n }\n\n countOfSymbolsForUpdateWidth: number = 3;\n\n private oneSymbolWidth: number;\n\n /** The native input element to which this directive is attached. */\n private inputElement: HTMLInputElement;\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>,\n private renderer: Renderer2,\n @Inject(MC_TAGS_DEFAULT_OPTIONS) private defaultOptions: McTagsDefaultOptions,\n @Optional() @Self() public ngControl: NgControl\n ) {\n // tslint:disable-next-line: no-unnecessary-type-assertion\n this.inputElement = this.elementRef.nativeElement as HTMLInputElement;\n\n this.setDefaultInputWidth();\n }\n\n ngOnChanges() {\n this._tagList.stateChanges.next();\n }\n\n onKeydown(event: KeyboardEvent) {\n if (!this.inputElement.value) {\n this._tagList.keydown(event);\n }\n\n if (this.isSeparatorKey(event)) {\n this.emitTagEnd();\n\n event.preventDefault();\n }\n }\n\n /** Checks to see if the blur should emit the (tagEnd) event. */\n blur() {\n this.focused = false;\n // Blur the tag list if it is not focused\n if (!this._tagList.focused) {\n this.triggerValidation();\n\n this._tagList.blur();\n }\n\n // tslint:disable-next-line: no-unnecessary-type-assertion\n if (this.addOnBlur) {\n this.emitTagEnd();\n }\n\n this._tagList.stateChanges.next();\n }\n\n triggerValidation() {\n if (!this.hasControl()) { return; }\n\n (this.ngControl.statusChanges as EventEmitter<string | null>).emit(this.ngControl.status);\n }\n\n /** Checks to see if the (tagEnd) event needs to be emitted. */\n emitTagEnd() {\n if (!this.hasControl() || (this.hasControl() && !this.ngControl.invalid)) {\n this.tagEnd.emit({ input: this.inputElement, value: this.inputElement.value });\n this.updateInputWidth();\n }\n }\n\n onInput() {\n this.updateInputWidth();\n // Let tag list know whenever the value changes.\n this._tagList.stateChanges.next();\n }\n\n onPaste($event: ClipboardEvent) {\n if (!$event.clipboardData) { return; }\n\n const data = $event.clipboardData.getData('text');\n\n if (data && data.length === 0) { return; }\n\n const items: string[] = [];\n\n for (const key of this.separatorKeyCodes) {\n const separator = this.separatorKeyToSymbol(key);\n\n if (data.search(separator) > -1) {\n items.push(...data.split(separator));\n\n break;\n }\n }\n\n if (items.length === 0) {\n items.push(data);\n }\n\n items.forEach((item) => this.tagEnd.emit({ input: this.inputElement, value: item }));\n\n this.updateInputWidth();\n\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n updateInputWidth(): void {\n const length = this.inputElement.value.length;\n\n this.renderer.setStyle(this.inputElement, 'max-width', 0);\n this.oneSymbolWidth = this.inputElement.scrollWidth / length;\n this.renderer.setStyle(this.inputElement, 'max-width', '');\n\n if (length > this.countOfSymbolsForUpdateWidth) {\n this.renderer.setStyle(this.inputElement, 'width', `${length * this.oneSymbolWidth}px`);\n } else {\n this.setDefaultInputWidth();\n }\n }\n\n onFocus() {\n this.focused = true;\n this._tagList.stateChanges.next();\n }\n\n /** Focuses the input. */\n focus(): void {\n this.inputElement.focus();\n }\n\n private separatorKeyToSymbol(k): RegExp | string {\n const sep = {\n [ENTER]: /\\r?\\n/,\n [TAB]: /\\t/,\n [SPACE]: / /,\n [COMMA]: /,/\n }[k];\n\n if (sep) { return sep; }\n\n return k;\n }\n\n private hasControl(): boolean {\n return !!this.ngControl;\n }\n\n private setDefaultInputWidth() {\n this.renderer.setStyle(this.inputElement, 'width', '30px');\n }\n\n /** Checks whether a keycode is one of the configured separators. */\n private isSeparatorKey(event: KeyboardEvent) {\n if (hasModifierKey(event)) { return false; }\n\n // tslint:disable-next-line: deprecation\n return this.separatorKeyCodes.indexOf(event.keyCode) > -1;\n }\n}\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ENTER } from '@ptsecurity/cdk/keycodes';\n\nimport { MC_TAGS_DEFAULT_OPTIONS, McTagsDefaultOptions } from './tag-default-options';\nimport { McTagInput } from './tag-input';\nimport { McTagList } from './tag-list.component';\nimport { McTag, McTagAvatar, McTagRemove, McTagTrailingIcon } from './tag.component';\n\n\n@NgModule({\n imports: [CommonModule, PlatformModule],\n exports: [\n McTagList,\n McTag,\n McTagInput,\n McTagTrailingIcon,\n McTagAvatar,\n McTagRemove\n ],\n declarations: [\n McTagList,\n McTag,\n McTagInput,\n McTagTrailingIcon,\n McTagAvatar,\n McTagRemove\n ],\n providers: [{\n provide: MC_TAGS_DEFAULT_OPTIONS,\n // tslint:disable-next-line: no-object-literal-type-assertion\n useValue: { separatorKeyCodes: [ENTER] } as McTagsDefaultOptions\n }]\n})\nexport class McTagsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
@@ -202,9 +202,9 @@ class McTextarea extends McTextareaMixinBase {
202
202
  return validity && validity.badInput;
203
203
  }
204
204
  }
205
- /** @nocollapse */ McTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextarea, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }, { token: MC_TEXTAREA_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
206
- /** @nocollapse */ McTextarea.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTextarea, selector: "textarea[mcTextarea]", inputs: { canGrow: "canGrow", errorStateMatcher: "errorStateMatcher", disabled: "disabled", id: "id", placeholder: "placeholder", required: "required", value: "value" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)" }, properties: { "class.mc-textarea-resizable": "!canGrow", "attr.id": "id", "attr.placeholder": "placeholder", "attr.aria-invalid": "errorState", "attr.disabled": "disabled || null", "attr.required": "required" }, classAttribute: "mc-textarea" }, providers: [{ provide: McFormFieldControl, useExisting: McTextarea }], exportAs: ["mcTextarea"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextarea, decorators: [{
205
+ /** @nocollapse */ /** @nocollapse */ McTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextarea, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }, { token: MC_TEXTAREA_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
206
+ /** @nocollapse */ /** @nocollapse */ McTextarea.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: McTextarea, selector: "textarea[mcTextarea]", inputs: { canGrow: "canGrow", errorStateMatcher: "errorStateMatcher", disabled: "disabled", id: "id", placeholder: "placeholder", required: "required", value: "value" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)" }, properties: { "class.mc-textarea-resizable": "!canGrow", "attr.id": "id", "attr.placeholder": "placeholder", "attr.aria-invalid": "errorState", "attr.disabled": "disabled || null", "attr.required": "required" }, classAttribute: "mc-textarea" }, providers: [{ provide: McFormFieldControl, useExisting: McTextarea }], exportAs: ["mcTextarea"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextarea, decorators: [{
208
208
  type: Directive,
209
209
  args: [{
210
210
  selector: 'textarea[mcTextarea]',
@@ -271,10 +271,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
271
271
 
272
272
  class McTextareaModule {
273
273
  }
274
- /** @nocollapse */ McTextareaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
275
- /** @nocollapse */ McTextareaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextareaModule, declarations: [McTextarea], imports: [CommonModule, A11yModule, McCommonModule, FormsModule], exports: [McTextarea] });
276
- /** @nocollapse */ McTextareaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextareaModule, imports: [[CommonModule, A11yModule, McCommonModule, FormsModule]] });
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTextareaModule, decorators: [{
274
+ /** @nocollapse */ /** @nocollapse */ McTextareaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
275
+ /** @nocollapse */ /** @nocollapse */ McTextareaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextareaModule, declarations: [McTextarea], imports: [CommonModule, A11yModule, McCommonModule, FormsModule], exports: [McTextarea] });
276
+ /** @nocollapse */ /** @nocollapse */ McTextareaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextareaModule, imports: [[CommonModule, A11yModule, McCommonModule, FormsModule]] });
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTextareaModule, decorators: [{
278
278
  type: NgModule,
279
279
  args: [{
280
280
  imports: [CommonModule, A11yModule, McCommonModule, FormsModule],
@@ -288,4 +288,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
288
288
  */
289
289
 
290
290
  export { MC_TEXTAREA_VALUE_ACCESSOR, McTextarea, McTextareaBase, McTextareaMixinBase, McTextareaModule };
291
- //# sourceMappingURL=ptsecurity-mosaic-textarea.js.map
291
+ //# sourceMappingURL=ptsecurity-mosaic-textarea.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptsecurity-mosaic-textarea.mjs","sources":["../../../packages/mosaic/textarea/textarea.component.ts","../../../packages/mosaic/textarea/textarea.module.ts","../../../packages/mosaic/textarea/ptsecurity-mosaic-textarea.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive, DoCheck, ElementRef, Inject,\n Input, OnChanges, OnDestroy, Optional,\n Self, InjectionToken, NgZone, OnInit,\n AfterContentInit\n} from '@angular/core';\nimport { FormGroupDirective, NG_VALIDATORS, NgControl, NgForm, NgModel, Validator } from '@angular/forms';\nimport {\n CanUpdateErrorState,\n CanUpdateErrorStateCtor,\n ErrorStateMatcher,\n MC_VALIDATION,\n McValidationOptions,\n setMosaicValidation,\n mixinErrorState\n} from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { fromEvent, Subscription, Subject } from 'rxjs';\n\n\nexport const MC_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('MC_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n\nexport class McTextareaBase {\n constructor(\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McTextareaMixinBase: CanUpdateErrorStateCtor & typeof McTextareaBase = mixinErrorState(McTextareaBase);\n\n@Directive({\n selector: 'textarea[mcTextarea]',\n exportAs: 'mcTextarea',\n host: {\n class: 'mc-textarea',\n '[class.mc-textarea-resizable]': '!canGrow',\n\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n\n '(blur)': 'focusChanged(false)',\n '(focus)': 'focusChanged(true)'\n },\n providers: [{ provide: McFormFieldControl, useExisting: McTextarea }]\n})\nexport class McTextarea extends McTextareaMixinBase implements McFormFieldControl<any>, OnInit, OnChanges,\n OnDestroy, DoCheck, CanUpdateErrorState, AfterContentInit {\n\n @Input() canGrow: boolean = true;\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'textarea';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this.valueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.valueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n protected uid = `mc-textsrea-${nextUniqueId++}`;\n protected previousNativeValue: any;\n private _disabled = false;\n private _id: string;\n private _required = false;\n\n private valueAccessor: { value: any };\n private growSubscription: Subscription;\n\n private lineHeight: number = 0;\n private freeRowsHeight: number = 0;\n private minHeight: number = 0;\n\n constructor(\n protected elementRef: ElementRef,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() parentForm: NgForm,\n @Optional() @Self() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(MC_TEXTAREA_VALUE_ACCESSOR) inputValueAccessor: any,\n private ngZone: NgZone\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n // If no input value accessor was explicitly specified, use the element as the textarea value\n // accessor.\n this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n const growObserver = fromEvent(elementRef.nativeElement, 'input');\n\n this.growSubscription = growObserver.subscribe(this.grow.bind(this));\n }\n\n ngOnInit() {\n setTimeout(() => this.grow(), 0);\n this.lineHeight = parseInt(getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(getComputedStyle(this.elementRef.nativeElement).paddingBottom!, 10);\n\n // tslint:disable-next-line:no-magic-numbers\n this.minHeight = this.lineHeight * 2 + paddingTop + paddingBottom;\n this.freeRowsHeight = this.lineHeight;\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.growSubscription.unsubscribe();\n }\n\n ngAfterContentInit(): void {\n if (!this.ngControl) { return; }\n\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n /** Grow textarea height to avoid vertical scroll */\n grow() {\n if (!this.canGrow) {\n return;\n }\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const outerHeight = parseInt(window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - textarea.clientHeight;\n\n textarea.style.minHeight = 0; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +textarea.scrollHeight + diff + this.freeRowsHeight);\n textarea.style.minHeight = `${height}px`;\n });\n }\n\n /** Focuses the textarea. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Callback for the cases where the focused state of the textarea changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native textarea `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the textarea is invalid based on the native validation. */\n protected isBadInput(): boolean {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLTextAreaElement).validity;\n\n return validity && validity.badInput;\n }\n\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McTextarea } from './textarea.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule, FormsModule],\n exports: [McTextarea],\n declarations: [McTextarea]\n})\nexport class McTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -270,6 +270,7 @@ class McTimepicker {
270
270
  }
271
271
  onBlur() {
272
272
  this.focusChanged(false);
273
+ this.setViewValue(this.formatUserPaste(this.viewValue));
273
274
  this.onInput();
274
275
  }
275
276
  onPaste($event) {
@@ -355,12 +356,11 @@ class McTimepicker {
355
356
  this.disabled = isDisabled;
356
357
  }
357
358
  formatUserPaste(value) {
358
- var _a;
359
359
  if (value.match(AM_PM_FORMAT_REGEXP)) {
360
360
  return value;
361
361
  }
362
362
  const match = value.match(/^(\D+)?(?<hours>\d+)?(\D+)?(\D+)?(?<minutes>\d+)?(\D+)?(\D+)?(?<seconds>\d+)?(\D+)?$/);
363
- if (!((_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.hours)) {
363
+ if (!match?.groups?.hours) {
364
364
  this.setViewValue(value);
365
365
  return value;
366
366
  }
@@ -375,7 +375,7 @@ class McTimepicker {
375
375
  replaceSymbols(value) {
376
376
  let formattedValue = value;
377
377
  const match = value.match(/^(\d\d:){0,2}(?<number>[0-9])(?<symbol>\W)(:\d\d){0,2}$/);
378
- if (match === null || match === void 0 ? void 0 : match.groups) {
378
+ if (match?.groups) {
379
379
  const { number, symbol } = match.groups;
380
380
  formattedValue = value.replace(number + symbol, `0${number}`);
381
381
  }
@@ -384,7 +384,7 @@ class McTimepicker {
384
384
  replaceNumbers(value) {
385
385
  let formattedValue = value;
386
386
  const match = value.match(/^(?<hours>\d{0,4}):?(?<minutes>\d{0,4}):?(?<seconds>\d{0,4})$/);
387
- if (match === null || match === void 0 ? void 0 : match.groups) {
387
+ if (match?.groups) {
388
388
  const { hours, minutes, seconds } = match.groups;
389
389
  if (hours.length && parseInt(hours) > HOURS_PER_DAY) {
390
390
  formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());
@@ -622,13 +622,13 @@ class McTimepicker {
622
622
  }
623
623
  }
624
624
  }
625
- /** @nocollapse */ McTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepicker, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
626
- /** @nocollapse */ McTimepicker.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTimepicker, selector: "input[mcTimepicker]", inputs: { placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", format: "format", min: "min", max: "max", value: "value", mcValidationTooltip: "mcValidationTooltip" }, outputs: { incorrectInput: "incorrectInput" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "attr.required": "required", "attr.size": "getSize()", "attr.autocomplete": "\"off\"" }, classAttribute: "mc-input mc-timepicker" }, providers: [
625
+ /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepicker, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
626
+ /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: McTimepicker, selector: "input[mcTimepicker]", inputs: { placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", format: "format", min: "min", max: "max", value: "value", mcValidationTooltip: "mcValidationTooltip" }, outputs: { incorrectInput: "incorrectInput" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "attr.required": "required", "attr.size": "getSize()", "attr.autocomplete": "\"off\"" }, classAttribute: "mc-input mc-timepicker" }, providers: [
627
627
  MC_TIMEPICKER_VALIDATORS,
628
628
  MC_TIMEPICKER_VALUE_ACCESSOR,
629
629
  { provide: McFormFieldControl, useExisting: McTimepicker }
630
630
  ], exportAs: ["mcTimepicker"], ngImport: i0 });
631
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepicker, decorators: [{
631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepicker, decorators: [{
632
632
  type: Directive,
633
633
  args: [{
634
634
  selector: 'input[mcTimepicker]',
@@ -680,18 +680,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
680
680
 
681
681
  class McTimepickerModule {
682
682
  }
683
- /** @nocollapse */ McTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
684
- /** @nocollapse */ McTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepickerModule, declarations: [McTimepicker], imports: [CommonModule,
683
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
684
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepickerModule, declarations: [McTimepicker], imports: [CommonModule,
685
685
  A11yModule,
686
686
  PlatformModule,
687
687
  FormsModule], exports: [McTimepicker] });
688
- /** @nocollapse */ McTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepickerModule, imports: [[
688
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepickerModule, imports: [[
689
689
  CommonModule,
690
690
  A11yModule,
691
691
  PlatformModule,
692
692
  FormsModule
693
693
  ]] });
694
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTimepickerModule, decorators: [{
694
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McTimepickerModule, decorators: [{
695
695
  type: NgModule,
696
696
  args: [{
697
697
  imports: [
@@ -710,4 +710,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
710
710
  */
711
711
 
712
712
  export { AM_PM_FORMAT_REGEXP, DEFAULT_TIME_FORMAT, HOURS_MINUTES_REGEXP, HOURS_MINUTES_SECONDS_REGEXP, HOURS_ONLY_REGEXP, HOURS_PER_DAY, MC_TIMEPICKER_VALIDATORS, MC_TIMEPICKER_VALUE_ACCESSOR, MINUTES_PER_HOUR, McTimepicker, McTimepickerModule, SECONDS_PER_MINUTE, TIMEFORMAT_PLACEHOLDERS, TimeFormats, TimeParts };
713
- //# sourceMappingURL=ptsecurity-mosaic-timepicker.js.map
713
+ //# sourceMappingURL=ptsecurity-mosaic-timepicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ptsecurity-mosaic-timepicker.mjs","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\nexport enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { DateAdapter } from '@ptsecurity/cdk/datetime';\nimport {\n DOWN_ARROW,\n UP_ARROW,\n HOME,\n END,\n LEFT_ARROW,\n RIGHT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isLetterKey,\n isVerticalMovement,\n isHorizontalMovement,\n TAB\n} from '@ptsecurity/cdk/keycodes';\nimport { validationTooltipHideDelay, validationTooltipShowDelay } from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McWarningTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\nimport { noop, Subject } from 'rxjs';\n\nimport {\n DEFAULT_TIME_FORMAT,\n HOURS_PER_DAY,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeParts,\n AM_PM_FORMAT_REGEXP\n} from './timepicker.constants';\n\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n\n@Directive({\n selector: 'input[mcTimepicker]',\n exportAs: 'mcTimepicker',\n host: {\n class: 'mc-input mc-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n\n '(paste)': 'onPaste($event)',\n\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n MC_TIMEPICKER_VALIDATORS,\n MC_TIMEPICKER_VALUE_ACCESSOR,\n { provide: McFormFieldControl, useExisting: McTimepicker }\n ]\n})\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format = Object\n .keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set mcValidationTooltip(tooltip: McWarningTooltipTrigger) {\n if (!tooltip) { return; }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control: AbstractControl;\n\n private defaultPlaceholder = true;\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>\n ) {\n if (!this.dateAdapter) {\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n this.setViewValue(this.formatUserPaste(this.viewValue));\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) { return; }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n this.onChange(null);\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(Object.values(match.groups)\n // tslint:disable-next-line:no-magic-numbers\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\n\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\n\n if (hours > HOURS_PER_DAY) { hours = 0; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\n\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\n\n if (hours < 0) { hours = HOURS_PER_DAY; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time valie edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) { return null; }\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n // tslint:disable:no-magic-numbers\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n // tslint:enable\n const date = this.value || this.dateAdapter.today();\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(date),\n this.dateAdapter.getMonth(date),\n this.dateAdapter.getDate(date),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(date)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\n }\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.min || !controlValue || this.compareTime(this.min, controlValue) <= 0) ?\n null :\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n }\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.max || !controlValue || this.compareTime(this.max, controlValue) >= 0) ?\n null :\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n }\n\n private compareTime(first: D, second: D): number {\n const result = this.dateAdapter.getHours(first) - this.dateAdapter.getHours(second) ||\n this.dateAdapter.getMinutes(first) - this.dateAdapter.getMinutes(second);\n\n if (TimeFormats.HHmm === this.format) {\n return result;\n } else if (TimeFormats.HHmmss === this.format) {\n return result || this.dateAdapter.getSeconds(first) - this.dateAdapter.getSeconds(second);\n } else {\n throw Error(`Unknown format: ${this.format}`);\n }\n }\n\n private getValidDateOrNull(obj: any): D | null {\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (!this.control) {\n this.control = control;\n }\n }\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { McTimepicker } from './timepicker.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n FormsModule\n ],\n declarations: [McTimepicker],\n exports: [McTimepicker]\n})\nexport class McTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}