@ptsecurity/mosaic 14.3.1 → 14.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/_theming.scss +220 -7
  2. package/_visual.scss +34 -3
  3. package/core/formatters/date/formatter.pipe.d.ts +79 -66
  4. package/core/formatters/number/formatter.d.ts +13 -3
  5. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +15 -6
  6. package/design-tokens/legacy-2017/tokens/components/popup.json5 +1 -1
  7. package/design-tokens/legacy-2017/tokens/components/scrollbars.json5 +52 -0
  8. package/design-tokens/legacy-2017/tokens.d.ts +35 -3
  9. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +13 -4
  10. package/design-tokens/pt-2022/tokens/components/popup.json5 +1 -1
  11. package/design-tokens/pt-2022/tokens/components/scrollbars.json5 +52 -0
  12. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +1 -2
  13. package/design-tokens/pt-2022/tokens.d.ts +34 -3
  14. package/esm2020/button-toggle/button-toggle.component.mjs +2 -2
  15. package/esm2020/core/formatters/date/formatter.pipe.mjs +87 -54
  16. package/esm2020/core/formatters/number/formatter.mjs +26 -10
  17. package/esm2020/core/select/constants.mjs +1 -1
  18. package/esm2020/core/version.mjs +2 -2
  19. package/esm2020/datepicker/calendar-body.component.mjs +2 -2
  20. package/esm2020/datepicker/datepicker.component.mjs +3 -3
  21. package/esm2020/design-tokens/legacy-2017/tokens.mjs +36 -4
  22. package/esm2020/design-tokens/pt-2022/tokens.mjs +35 -4
  23. package/esm2020/dropdown/dropdown-item.component.mjs +2 -2
  24. package/esm2020/form-field/form-field.mjs +50 -9
  25. package/esm2020/form-field/form-field.module.mjs +10 -6
  26. package/esm2020/form-field/password-hint.mjs +4 -4
  27. package/esm2020/form-field/validate.directive.mjs +7 -4
  28. package/esm2020/input/input.mjs +10 -21
  29. package/esm2020/select/select.component.mjs +2 -4
  30. package/esm2020/sidepanel/sidepanel-container.component.mjs +3 -3
  31. package/esm2020/sidepanel/sidepanel-directives.mjs +16 -11
  32. package/esm2020/tags/tag-input.mjs +19 -7
  33. package/esm2020/timezone/timezone-option.directive.mjs +3 -1
  34. package/esm2020/timezone/timezone.utils.mjs +11 -4
  35. package/esm2020/toast/toast.service.mjs +5 -4
  36. package/esm2020/tree-select/tree-select.component.mjs +3 -3
  37. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +2 -2
  38. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  39. package/fesm2015/ptsecurity-mosaic-core.mjs +110 -60
  40. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  41. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +4 -4
  42. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  43. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +104 -9
  44. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  45. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +2 -2
  46. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  47. package/fesm2015/ptsecurity-mosaic-form-field.mjs +68 -18
  48. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  49. package/fesm2015/ptsecurity-mosaic-input.mjs +10 -20
  50. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  51. package/fesm2015/ptsecurity-mosaic-select.mjs +1 -3
  52. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  53. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +18 -13
  54. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  55. package/fesm2015/ptsecurity-mosaic-tags.mjs +19 -8
  56. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  57. package/fesm2015/ptsecurity-mosaic-timezone.mjs +12 -4
  58. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
  59. package/fesm2015/ptsecurity-mosaic-toast.mjs +4 -3
  60. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  61. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +2 -2
  62. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  63. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +2 -2
  64. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  65. package/fesm2020/ptsecurity-mosaic-core.mjs +110 -63
  66. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  67. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +4 -4
  68. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  69. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +104 -9
  70. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  71. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +2 -2
  72. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  73. package/fesm2020/ptsecurity-mosaic-form-field.mjs +65 -19
  74. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  75. package/fesm2020/ptsecurity-mosaic-input.mjs +9 -20
  76. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  77. package/fesm2020/ptsecurity-mosaic-select.mjs +1 -3
  78. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  79. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +18 -13
  80. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  81. package/fesm2020/ptsecurity-mosaic-tags.mjs +16 -5
  82. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  83. package/fesm2020/ptsecurity-mosaic-timezone.mjs +12 -4
  84. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
  85. package/fesm2020/ptsecurity-mosaic-toast.mjs +4 -3
  86. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  87. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +2 -2
  88. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  89. package/form-field/form-field.d.ts +12 -2
  90. package/form-field/form-field.module.d.ts +1 -1
  91. package/form-field/validate.directive.d.ts +1 -0
  92. package/input/input.d.ts +1 -2
  93. package/package.json +4 -4
  94. package/prebuilt-themes/dark-theme.css +1 -1
  95. package/prebuilt-themes/default-theme.css +1 -1
  96. package/tags/tag-input.d.ts +5 -2
@@ -327,7 +327,7 @@ class McButtonToggle {
327
327
  (click)="onToggleClick()">
328
328
  <ng-content></ng-content>
329
329
  </button>
330
- `, isInline: true, styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:-1px;margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:-1px;margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-backdrop{inset:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-pane{box-sizing:border-box;position:absolute;pointer-events:auto;margin:0;padding:0;z-index:1000;max-width:100%;max-height:100%}.cdk-overlay-connected-position-bounding-box{box-sizing:border-box;position:absolute;z-index:1000;display:flex;flex-direction:column;margin:0;padding:0;min-width:1px;min-height:1px}.mc-scrollbar::-webkit-scrollbar,.mc-scrollbar ::-webkit-scrollbar{width:10px;height:10px;box-shadow:inset 1px 1px #0000001f;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1);background-color:#0000000d}.mc-scrollbar::-webkit-scrollbar:hover,.mc-scrollbar ::-webkit-scrollbar:hover{box-shadow:inset 1px 1px #0000000e,inset 0 -1px #0000000a;background-color:#00000016}.mc-scrollbar::-webkit-scrollbar-button,.mc-scrollbar ::-webkit-scrollbar-button{display:none}.mc-scrollbar::-webkit-scrollbar-corner,.mc-scrollbar ::-webkit-scrollbar-corner{background-color:transparent}.mc-scrollbar::-webkit-scrollbar-thumb,.mc-scrollbar ::-webkit-scrollbar-thumb{background-color:#00000042;box-shadow:inset 1px 1px #0000000e,inset 0 -1px #00000016;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1)}.mc-button-toggle-group{display:flex;flex-direction:row}.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-icon-button{border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-group .mc-button-toggle[disabled]{outline:0}.mc-button-toggle-group:not(.mc-button-toggle_vertical) .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-left:-1px;margin-left:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical{flex-direction:column}.mc-button-toggle_vertical .mc-button-toggle+.mc-button-toggle{border-left:none;border-right:none}.mc-button-toggle_vertical .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-top:-1px;margin-top:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical .mc-button-toggle .mc-button,.mc-button-toggle_vertical .mc-button-toggle .mc-icon-button{width:100%}.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-icon-button{border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-standalone{box-shadow:none}\n"], dependencies: [{ kind: "component", type: i2.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i2.McButtonCssStyler, selector: "[mc-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
330
+ `, isInline: true, styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:-1px;margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:-1px;margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-backdrop{inset:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-pane{box-sizing:border-box;position:absolute;pointer-events:auto;margin:0;padding:0;z-index:1000;max-width:100%;max-height:100%}.cdk-overlay-connected-position-bounding-box{box-sizing:border-box;position:absolute;z-index:1000;display:flex;flex-direction:column;margin:0;padding:0;min-width:1px;min-height:1px}.mc-button-toggle-group{display:flex;flex-direction:row}.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-icon-button{border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-group .mc-button-toggle[disabled]{outline:0}.mc-button-toggle-group:not(.mc-button-toggle_vertical) .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-left:-1px;margin-left:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical{flex-direction:column}.mc-button-toggle_vertical .mc-button-toggle+.mc-button-toggle{border-left:none;border-right:none}.mc-button-toggle_vertical .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-top:-1px;margin-top:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical .mc-button-toggle .mc-button,.mc-button-toggle_vertical .mc-button-toggle .mc-icon-button{width:100%}.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-icon-button{border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-standalone{box-shadow:none}\n"], dependencies: [{ kind: "component", type: i2.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i2.McButtonCssStyler, selector: "[mc-button]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
331
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: McButtonToggle, decorators: [{
332
332
  type: Component,
333
333
  args: [{ selector: 'mc-button-toggle', exportAs: 'mcButtonToggle', template: `
@@ -343,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
343
343
  `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
344
344
  class: 'mc-button-toggle',
345
345
  '[class.mc-button-toggle-standalone]': '!buttonToggleGroup'
346
- }, styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:-1px;margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:-1px;margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-backdrop{inset:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-pane{box-sizing:border-box;position:absolute;pointer-events:auto;margin:0;padding:0;z-index:1000;max-width:100%;max-height:100%}.cdk-overlay-connected-position-bounding-box{box-sizing:border-box;position:absolute;z-index:1000;display:flex;flex-direction:column;margin:0;padding:0;min-width:1px;min-height:1px}.mc-scrollbar::-webkit-scrollbar,.mc-scrollbar ::-webkit-scrollbar{width:10px;height:10px;box-shadow:inset 1px 1px #0000001f;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1);background-color:#0000000d}.mc-scrollbar::-webkit-scrollbar:hover,.mc-scrollbar ::-webkit-scrollbar:hover{box-shadow:inset 1px 1px #0000000e,inset 0 -1px #0000000a;background-color:#00000016}.mc-scrollbar::-webkit-scrollbar-button,.mc-scrollbar ::-webkit-scrollbar-button{display:none}.mc-scrollbar::-webkit-scrollbar-corner,.mc-scrollbar ::-webkit-scrollbar-corner{background-color:transparent}.mc-scrollbar::-webkit-scrollbar-thumb,.mc-scrollbar ::-webkit-scrollbar-thumb{background-color:#00000042;box-shadow:inset 1px 1px #0000000e,inset 0 -1px #00000016;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1)}.mc-button-toggle-group{display:flex;flex-direction:row}.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-icon-button{border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-group .mc-button-toggle[disabled]{outline:0}.mc-button-toggle-group:not(.mc-button-toggle_vertical) .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-left:-1px;margin-left:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical{flex-direction:column}.mc-button-toggle_vertical .mc-button-toggle+.mc-button-toggle{border-left:none;border-right:none}.mc-button-toggle_vertical .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-top:-1px;margin-top:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical .mc-button-toggle .mc-button,.mc-button-toggle_vertical .mc-button-toggle .mc-icon-button{width:100%}.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-icon-button{border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-standalone{box-shadow:none}\n"] }]
346
+ }, styles: ["@keyframes mc-progress{0%{background-position:0 0}to{background-position:29px 0}}.mc-progress{position:relative}.mc-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:mc-progress 1s linear infinite}.mc-group{display:flex;flex-direction:row}.mc-group .mc-group_justified>.mc-group-item{width:100%}.mc-group .mc-group-item+.mc-group-item{margin-left:-1px;margin-left:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group{display:flex;flex-direction:column}.mc-vertical-group>.mc-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:first-child:not(:last-child)>.mc-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.mc-vertical-group>.mc-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-size-border-radius, 4px)}.mc-vertical-group>.mc-group-item:last-child:not(:first-child)>.mc-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child){border-radius:0}.mc-vertical-group>.mc-group-item:not(:first-child):not(:last-child)>.mc-form-field__container{border-radius:0}.mc-vertical-group .mc-group-item+.mc-group-item{margin-top:-1px;margin-top:calc(-1 * var(--mc-button-size-border-width, 1px))}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-backdrop{inset:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000;box-sizing:border-box;margin:0;padding:0}.cdk-overlay-pane{box-sizing:border-box;position:absolute;pointer-events:auto;margin:0;padding:0;z-index:1000;max-width:100%;max-height:100%}.cdk-overlay-connected-position-bounding-box{box-sizing:border-box;position:absolute;z-index:1000;display:flex;flex-direction:column;margin:0;padding:0;min-width:1px;min-height:1px}.mc-button-toggle-group{display:flex;flex-direction:row}.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:first-of-type:not(:last-of-type)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:last-of-type:not(:first-of-type)>.mc-icon-button{border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-button,.mc-button-toggle-group .mc-button-toggle:not(:first-of-type):not(:last-of-type)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-group .mc-button-toggle[disabled]{outline:0}.mc-button-toggle-group:not(.mc-button-toggle_vertical) .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-left:-1px;margin-left:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical{flex-direction:column}.mc-button-toggle_vertical .mc-button-toggle+.mc-button-toggle{border-left:none;border-right:none}.mc-button-toggle_vertical .mc-button-toggle:not([disabled])+.mc-button-toggle:not([disabled]){margin-top:-1px;margin-top:calc(-1 * var(--mc-button-toggle-size-border-size, 1px))}.mc-button-toggle_vertical .mc-button-toggle .mc-button,.mc-button-toggle_vertical .mc-button-toggle .mc-icon-button{width:100%}.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:first-child:not(:last-child)>.mc-icon-button{border-bottom-right-radius:0;border-bottom-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-left-radius:0;border-bottom-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-right-radius:4px;border-top-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-top-left-radius:4px;border-top-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:last-child:not(:first-child)>.mc-icon-button{border-top-right-radius:0;border-top-right-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-top-left-radius:0;border-top-left-radius:var(--mc-button-toggle-size-border-siblings-radius, 0);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mc-button-toggle-size-border-radius, 4px);border-bottom-left-radius:4px;border-bottom-left-radius:var(--mc-button-toggle-size-border-radius, 4px)}.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-button,.mc-button-toggle_vertical .mc-button-toggle:not(:first-child):not(:last-child)>.mc-icon-button{border-radius:0;border-radius:var(--mc-button-toggle-size-border-siblings-radius, 0)}.mc-button-toggle-standalone{box-shadow:none}\n"] }]
347
347
  }], ctorParameters: function () {
348
348
  return [{ type: McButtonToggleGroup, decorators: [{
349
349
  type: Optional
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-button-toggle.mjs","sources":["../../../packages/mosaic/button-toggle/button-toggle.component.ts","../../../packages/mosaic/button-toggle/button-toggle.module.ts","../../../packages/mosaic/button-toggle/ptsecurity-mosaic-button-toggle.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { McButton } from '@ptsecurity/mosaic/button';\n\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/**\n * Provider Expression that allows mc-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MC_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McButtonToggleGroup),\n multi: true\n};\n\n/** Change event object emitted by MсButtonToggle. */\nexport class McButtonToggleChange {\n constructor(\n /** The MсButtonToggle that emits the event. */\n public source: McButtonToggle,\n /** The value assigned to the MсButtonToggle. */\n public value: any\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mc-button-toggle-group',\n providers: [MC_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n host: {\n role: 'group',\n class: 'mc-button-toggle-group',\n '[class.mc-button-toggle_vertical]': 'vertical'\n },\n exportAs: 'mcButtonToggleGroup'\n})\nexport class McButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n\n /** Whether the toggle group is vertical. */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this.selectionModel ? this.selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map((toggle) => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n\n set value(newValue: any) {\n this.setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /** Selected button toggles in the group. */\n get selected(): any {\n const selected = this.selectionModel.selected;\n\n return this.multiple ? selected : (selected[0] || null);\n }\n\n /** Whether multiple button toggles can be selected. */\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 /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => McButtonToggle)) buttonToggles: QueryList<McButtonToggle>;\n\n /** Whether multiple button toggle group is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (!this.buttonToggles) { return; }\n\n this.buttonToggles.forEach((toggle) => toggle.markForCheck());\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<McButtonToggleChange> = new EventEmitter<McButtonToggleChange>();\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private selectionModel: SelectionModel<McButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private rawValue: any;\n\n constructor(private _changeDetector: ChangeDetectorRef) {}\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n // tslint:disable-next-line:no-empty\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n // tslint:disable-next-line:no-empty\n onTouched: () => any = () => {};\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<McButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this.selectionModel.select(...this.buttonToggles.filter((toggle) => toggle.checked));\n this.disabled = this._disabled;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new McButtonToggleChange(source, this.value);\n this.controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n */\n syncButtonToggle(toggle: McButtonToggle, select: boolean, isUserInput = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as McButtonToggle).checked = false;\n }\n\n if (select) {\n this.selectionModel.select(toggle);\n } else {\n this.selectionModel.deselect(toggle);\n }\n\n // Only emit the change event for user input.\n if (isUserInput) {\n this.emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Checks whether a button toggle is selected. */\n isSelected(toggle: McButtonToggle) {\n return this.selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n isPrechecked(toggle: McButtonToggle) {\n if (this.rawValue === undefined) {\n return false;\n }\n\n if (this.multiple && Array.isArray(this.rawValue)) {\n return this.rawValue.some((value) => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this.rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private setSelectionByValue(value: any | any[]) {\n this.rawValue = value;\n\n if (!this.buttonToggles) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this.clearSelection();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n } else {\n this.clearSelection();\n this.selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private clearSelection() {\n this.selectionModel.clear();\n this.buttonToggles.forEach((toggle) => toggle.checked = false);\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private selectValue(value: any) {\n const correspondingOption = this.buttonToggles.find((toggle) => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this.selectionModel.select(correspondingOption);\n }\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mc-button-toggle',\n exportAs: 'mcButtonToggle',\n template: `\n <button\n mc-button\n type=\"button\"\n [class.mc-active]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"onToggleClick()\">\n <ng-content></ng-content>\n </button>\n `,\n styleUrls: ['button-toggle.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mc-button-toggle',\n '[class.mc-button-toggle-standalone]': '!buttonToggleGroup'\n }\n})\nexport class McButtonToggle implements OnInit, OnDestroy {\n\n /** Whether the button is checked. */\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup.isSelected(this) : this._checked;\n }\n\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n // tslint:disable-next-line:no-reserved-keywords\n type: ToggleType;\n\n @ViewChild(McButton, { static: false }) mcButton: McButton;\n\n /** McButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<McButtonToggleChange> = new EventEmitter<McButtonToggleChange>();\n\n private isSingleSelector = false;\n private _checked = false;\n private _disabled: boolean = false;\n\n constructor(\n @Optional() public buttonToggleGroup: McButtonToggleGroup,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private element: ElementRef\n ) {}\n\n ngOnInit() {\n this.isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this.type = this.isSingleSelector ? 'radio' : 'checkbox';\n\n if (this.buttonToggleGroup && this.buttonToggleGroup.isPrechecked(this)) {\n this.checked = true;\n }\n\n this.focusMonitor.monitor(this.element.nativeElement, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this.focusMonitor.stopMonitoring(this.element.nativeElement);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group.isSelected(this)) {\n Promise.resolve().then(() => group.syncButtonToggle(this, false));\n }\n }\n\n /** Focuses the button. */\n focus(): void {\n this.element.nativeElement.focus();\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n onToggleClick() {\n if (this.disabled) { return; }\n\n const newChecked = this.isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup.onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new McButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McButtonToggle, McButtonToggleGroup } from './button-toggle.component';\n\n\n@NgModule({\n imports: [McCommonModule, McButtonModule],\n exports: [McCommonModule, McButtonToggleGroup, McButtonToggle],\n declarations: [McButtonToggleGroup, McButtonToggle]\n})\nexport class McButtonToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-button-toggle.mjs","sources":["../../../packages/mosaic/button-toggle/button-toggle.component.ts","../../../packages/mosaic/button-toggle/button-toggle.module.ts","../../../packages/mosaic/button-toggle/ptsecurity-mosaic-button-toggle.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { McButton } from '@ptsecurity/mosaic/button';\n\n\n/** Acceptable types for a button toggle. */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/**\n * Provider Expression that allows mc-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MC_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McButtonToggleGroup),\n multi: true\n};\n\n/** Change event object emitted by MсButtonToggle. */\nexport class McButtonToggleChange {\n constructor(\n /** The MсButtonToggle that emits the event. */\n public source: McButtonToggle,\n /** The value assigned to the MсButtonToggle. */\n public value: any\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mc-button-toggle-group',\n providers: [MC_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR],\n host: {\n role: 'group',\n class: 'mc-button-toggle-group',\n '[class.mc-button-toggle_vertical]': 'vertical'\n },\n exportAs: 'mcButtonToggleGroup'\n})\nexport class McButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n\n /** Whether the toggle group is vertical. */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this.selectionModel ? this.selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map((toggle) => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n\n set value(newValue: any) {\n this.setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /** Selected button toggles in the group. */\n get selected(): any {\n const selected = this.selectionModel.selected;\n\n return this.multiple ? selected : (selected[0] || null);\n }\n\n /** Whether multiple button toggles can be selected. */\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 /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => McButtonToggle)) buttonToggles: QueryList<McButtonToggle>;\n\n /** Whether multiple button toggle group is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (!this.buttonToggles) { return; }\n\n this.buttonToggles.forEach((toggle) => toggle.markForCheck());\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<McButtonToggleChange> = new EventEmitter<McButtonToggleChange>();\n private _vertical = false;\n private _multiple = false;\n private _disabled = false;\n private selectionModel: SelectionModel<McButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private rawValue: any;\n\n constructor(private _changeDetector: ChangeDetectorRef) {}\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n // tslint:disable-next-line:no-empty\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n // tslint:disable-next-line:no-empty\n onTouched: () => any = () => {};\n\n ngOnInit() {\n this.selectionModel = new SelectionModel<McButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this.selectionModel.select(...this.buttonToggles.filter((toggle) => toggle.checked));\n this.disabled = this._disabled;\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n const selected = this.selected;\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n const event = new McButtonToggleChange(source, this.value);\n this.controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n */\n syncButtonToggle(toggle: McButtonToggle, select: boolean, isUserInput = false) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as McButtonToggle).checked = false;\n }\n\n if (select) {\n this.selectionModel.select(toggle);\n } else {\n this.selectionModel.deselect(toggle);\n }\n\n // Only emit the change event for user input.\n if (isUserInput) {\n this.emitChangeEvent();\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Checks whether a button toggle is selected. */\n isSelected(toggle: McButtonToggle) {\n return this.selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n isPrechecked(toggle: McButtonToggle) {\n if (this.rawValue === undefined) {\n return false;\n }\n\n if (this.multiple && Array.isArray(this.rawValue)) {\n return this.rawValue.some((value) => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this.rawValue;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private setSelectionByValue(value: any | any[]) {\n this.rawValue = value;\n\n if (!this.buttonToggles) {\n return;\n }\n\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this.clearSelection();\n value.forEach((currentValue: any) => this.selectValue(currentValue));\n } else {\n this.clearSelection();\n this.selectValue(value);\n }\n }\n\n /** Clears the selected toggles. */\n private clearSelection() {\n this.selectionModel.clear();\n this.buttonToggles.forEach((toggle) => toggle.checked = false);\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private selectValue(value: any) {\n const correspondingOption = this.buttonToggles.find((toggle) => {\n return toggle.value != null && toggle.value === value;\n });\n\n if (correspondingOption) {\n correspondingOption.checked = true;\n this.selectionModel.select(correspondingOption);\n }\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mc-button-toggle',\n exportAs: 'mcButtonToggle',\n template: `\n <button\n mc-button\n type=\"button\"\n [class.mc-active]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"onToggleClick()\">\n <ng-content></ng-content>\n </button>\n `,\n styleUrls: ['button-toggle.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mc-button-toggle',\n '[class.mc-button-toggle-standalone]': '!buttonToggleGroup'\n }\n})\nexport class McButtonToggle implements OnInit, OnDestroy {\n\n /** Whether the button is checked. */\n @Input()\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup.isSelected(this) : this._checked;\n }\n\n set checked(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._checked) {\n this._checked = newValue;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n // tslint:disable-next-line:no-reserved-keywords\n type: ToggleType;\n\n @ViewChild(McButton, { static: false }) mcButton: McButton;\n\n /** McButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<McButtonToggleChange> = new EventEmitter<McButtonToggleChange>();\n\n private isSingleSelector = false;\n private _checked = false;\n private _disabled: boolean = false;\n\n constructor(\n @Optional() public buttonToggleGroup: McButtonToggleGroup,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private element: ElementRef\n ) {}\n\n ngOnInit() {\n this.isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this.type = this.isSingleSelector ? 'radio' : 'checkbox';\n\n if (this.buttonToggleGroup && this.buttonToggleGroup.isPrechecked(this)) {\n this.checked = true;\n }\n\n this.focusMonitor.monitor(this.element.nativeElement, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this.focusMonitor.stopMonitoring(this.element.nativeElement);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group.isSelected(this)) {\n Promise.resolve().then(() => group.syncButtonToggle(this, false));\n }\n }\n\n /** Focuses the button. */\n focus(): void {\n this.element.nativeElement.focus();\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n onToggleClick() {\n if (this.disabled) { return; }\n\n const newChecked = this.isSingleSelector ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup.syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup.onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new McButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McButtonToggle, McButtonToggleGroup } from './button-toggle.component';\n\n\n@NgModule({\n imports: [McCommonModule, McButtonModule],\n exports: [McCommonModule, McButtonToggleGroup, McButtonToggle],\n declarations: [McButtonToggleGroup, McButtonToggle]\n})\nexport class McButtonToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { takeUntil, distinctUntilChanged, delay } from 'rxjs/operators';
17
17
  import * as i1$1 from '@angular/cdk/a11y';
18
18
  import { ComponentPortal } from '@angular/cdk/portal';
19
19
 
20
- const VERSION = new Version('14.3.1+sha-180ad1c');
20
+ const VERSION = new Version('14.2.6+sha-9dfb9002');
21
21
 
22
22
  function isBoolean(val) { return typeof val === 'boolean'; }
23
23
  function toBoolean(value) {
@@ -1184,190 +1184,228 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
1184
1184
  } });
1185
1185
 
1186
1186
  class AbsoluteDateFormatterPipe {
1187
- constructor(formatter) {
1187
+ constructor(adapter, formatter) {
1188
+ this.adapter = adapter;
1188
1189
  this.formatter = formatter;
1189
1190
  }
1190
1191
  transform(value, currYear) {
1191
- return this.formatter.absoluteLongDate(value, currYear);
1192
+ const date = this.adapter.deserialize(value);
1193
+ return date ? this.formatter.absoluteLongDate(date, currYear) : '';
1192
1194
  }
1193
1195
  }
1194
- /** @nocollapse */ AbsoluteDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1196
+ /** @nocollapse */ AbsoluteDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1195
1197
  /** @nocollapse */ AbsoluteDateFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateFormatterPipe, name: "absoluteLongDate" });
1196
1198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateFormatterPipe, decorators: [{
1197
1199
  type: Pipe,
1198
1200
  args: [{ name: 'absoluteLongDate' }]
1199
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1201
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1200
1202
  class AbsoluteDateTimeFormatterPipe {
1201
- constructor(formatter) {
1203
+ constructor(adapter, formatter) {
1204
+ this.adapter = adapter;
1202
1205
  this.formatter = formatter;
1203
1206
  }
1204
1207
  transform(value, options) {
1205
- return this.formatter.absoluteLongDateTime(value, options);
1208
+ const date = this.adapter.deserialize(value);
1209
+ return date ? this.formatter.absoluteLongDateTime(date, options) : '';
1206
1210
  }
1207
1211
  }
1208
- /** @nocollapse */ AbsoluteDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1212
+ /** @nocollapse */ AbsoluteDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1209
1213
  /** @nocollapse */ AbsoluteDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, name: "absoluteLongDateTime" });
1210
1214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, decorators: [{
1211
1215
  type: Pipe,
1212
1216
  args: [{ name: 'absoluteLongDateTime' }]
1213
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1217
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1214
1218
  class AbsoluteDateShortFormatterPipe {
1215
- constructor(formatter) {
1219
+ constructor(adapter, formatter) {
1220
+ this.adapter = adapter;
1216
1221
  this.formatter = formatter;
1217
1222
  }
1218
1223
  transform(value, currYear) {
1219
- return this.formatter.absoluteShortDate(value, currYear);
1224
+ const date = this.adapter.deserialize(value);
1225
+ return date ? this.formatter.absoluteShortDate(date, currYear) : '';
1220
1226
  }
1221
1227
  }
1222
- /** @nocollapse */ AbsoluteDateShortFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1228
+ /** @nocollapse */ AbsoluteDateShortFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1223
1229
  /** @nocollapse */ AbsoluteDateShortFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateShortFormatterPipe, name: "absoluteShortDate" });
1224
1230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteDateShortFormatterPipe, decorators: [{
1225
1231
  type: Pipe,
1226
1232
  args: [{ name: 'absoluteShortDate' }]
1227
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1233
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1228
1234
  class AbsoluteShortDateTimeFormatterPipe {
1229
- constructor(formatter) {
1235
+ constructor(adapter, formatter) {
1236
+ this.adapter = adapter;
1230
1237
  this.formatter = formatter;
1231
1238
  }
1232
1239
  transform(value, options) {
1233
- return this.formatter.absoluteShortDateTime(value, options);
1240
+ const date = this.adapter.deserialize(value);
1241
+ return date ? this.formatter.absoluteShortDateTime(date, options) : '';
1234
1242
  }
1235
1243
  }
1236
- /** @nocollapse */ AbsoluteShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1244
+ /** @nocollapse */ AbsoluteShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1237
1245
  /** @nocollapse */ AbsoluteShortDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, name: "absoluteShortDateTime" });
1238
1246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, decorators: [{
1239
1247
  type: Pipe,
1240
1248
  args: [{ name: 'absoluteShortDateTime' }]
1241
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1249
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1242
1250
  class RelativeDateFormatterPipe {
1243
- constructor(formatter) {
1251
+ constructor(adapter, formatter) {
1252
+ this.adapter = adapter;
1244
1253
  this.formatter = formatter;
1245
1254
  }
1246
1255
  transform(value) {
1247
- return this.formatter.relativeLongDate(value);
1256
+ const date = this.adapter.deserialize(value);
1257
+ return date ? this.formatter.relativeLongDate(date) : '';
1248
1258
  }
1249
1259
  }
1250
- /** @nocollapse */ RelativeDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1260
+ /** @nocollapse */ RelativeDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1251
1261
  /** @nocollapse */ RelativeDateFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateFormatterPipe, name: "relativeLongDate" });
1252
1262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateFormatterPipe, decorators: [{
1253
1263
  type: Pipe,
1254
1264
  args: [{ name: 'relativeLongDate' }]
1255
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1265
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1256
1266
  class RelativeDateTimeFormatterPipe {
1257
- constructor(formatter) {
1267
+ constructor(adapter, formatter) {
1268
+ this.adapter = adapter;
1258
1269
  this.formatter = formatter;
1259
1270
  }
1260
1271
  transform(value, options) {
1261
- return this.formatter.relativeLongDateTime(value, options);
1272
+ const date = this.adapter.deserialize(value);
1273
+ return date ? this.formatter.relativeLongDateTime(date, options) : '';
1262
1274
  }
1263
1275
  }
1264
- /** @nocollapse */ RelativeDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1276
+ /** @nocollapse */ RelativeDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1265
1277
  /** @nocollapse */ RelativeDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateTimeFormatterPipe, name: "relativeLongDateTime" });
1266
1278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeDateTimeFormatterPipe, decorators: [{
1267
1279
  type: Pipe,
1268
1280
  args: [{ name: 'relativeLongDateTime' }]
1269
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1281
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1270
1282
  class RelativeShortDateFormatterPipe {
1271
- constructor(formatter) {
1283
+ constructor(adapter, formatter) {
1284
+ this.adapter = adapter;
1272
1285
  this.formatter = formatter;
1273
1286
  }
1274
1287
  transform(value) {
1275
- return this.formatter.relativeShortDate(value);
1288
+ const date = this.adapter.deserialize(value);
1289
+ return date ? this.formatter.relativeShortDate(date) : '';
1276
1290
  }
1277
1291
  }
1278
- /** @nocollapse */ RelativeShortDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1292
+ /** @nocollapse */ RelativeShortDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1279
1293
  /** @nocollapse */ RelativeShortDateFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateFormatterPipe, name: "relativeShortDate" });
1280
1294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateFormatterPipe, decorators: [{
1281
1295
  type: Pipe,
1282
1296
  args: [{ name: 'relativeShortDate' }]
1283
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1297
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1284
1298
  class RelativeShortDateTimeFormatterPipe {
1285
- constructor(formatter) {
1299
+ constructor(adapter, formatter) {
1300
+ this.adapter = adapter;
1286
1301
  this.formatter = formatter;
1287
1302
  }
1288
1303
  transform(value, options) {
1289
- return this.formatter.relativeShortDateTime(value, options);
1304
+ const date = this.adapter.deserialize(value);
1305
+ return date ? this.formatter.relativeShortDateTime(date, options) : '';
1290
1306
  }
1291
1307
  }
1292
- /** @nocollapse */ RelativeShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1308
+ /** @nocollapse */ RelativeShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1293
1309
  /** @nocollapse */ RelativeShortDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, name: "relativeShortDateTime" });
1294
1310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, decorators: [{
1295
1311
  type: Pipe,
1296
1312
  args: [{ name: 'relativeShortDateTime' }]
1297
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1313
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1298
1314
  class RangeDateFormatterPipe {
1299
- constructor(formatter) {
1315
+ constructor(adapter, formatter) {
1316
+ this.adapter = adapter;
1300
1317
  this.formatter = formatter;
1301
1318
  }
1302
1319
  transform([value1, value2]) {
1303
- return this.formatter.rangeLongDate(value1, value2);
1320
+ const date1 = this.adapter.deserialize(value1);
1321
+ const date2 = this.adapter.deserialize(value2);
1322
+ return this.formatter.rangeLongDate(date1, date2);
1304
1323
  }
1305
1324
  }
1306
- /** @nocollapse */ RangeDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1325
+ /** @nocollapse */ RangeDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1307
1326
  /** @nocollapse */ RangeDateFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RangeDateFormatterPipe, name: "rangeLongDate" });
1308
1327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateFormatterPipe, decorators: [{
1309
1328
  type: Pipe,
1310
1329
  args: [{ name: 'rangeLongDate' }]
1311
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1330
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1312
1331
  class RangeShortDateFormatterPipe {
1313
- constructor(formatter) {
1332
+ constructor(adapter, formatter) {
1333
+ this.adapter = adapter;
1314
1334
  this.formatter = formatter;
1315
1335
  }
1316
1336
  transform([value1, value2]) {
1317
- return this.formatter.rangeShortDate(value1, value2);
1337
+ const date1 = this.adapter.deserialize(value1);
1338
+ const date2 = this.adapter.deserialize(value2);
1339
+ return this.formatter.rangeShortDate(date1, date2);
1318
1340
  }
1319
1341
  }
1320
- /** @nocollapse */ RangeShortDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1342
+ /** @nocollapse */ RangeShortDateFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1321
1343
  /** @nocollapse */ RangeShortDateFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateFormatterPipe, name: "rangeShortDate" });
1322
1344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateFormatterPipe, decorators: [{
1323
1345
  type: Pipe,
1324
1346
  args: [{ name: 'rangeShortDate' }]
1325
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1347
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1326
1348
  class RangeDateTimeFormatterPipe {
1327
- constructor(formatter) {
1349
+ constructor(adapter, formatter) {
1350
+ this.adapter = adapter;
1328
1351
  this.formatter = formatter;
1329
1352
  }
1330
1353
  transform([value1, value2], options) {
1331
- return this.formatter.rangeLongDateTime(value1, value2, options);
1354
+ const date1 = this.adapter.deserialize(value1);
1355
+ const date2 = this.adapter.deserialize(value2);
1356
+ return this.formatter.rangeLongDateTime(date1, date2, options);
1332
1357
  }
1333
1358
  }
1334
- /** @nocollapse */ RangeDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1359
+ /** @nocollapse */ RangeDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1335
1360
  /** @nocollapse */ RangeDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RangeDateTimeFormatterPipe, name: "rangeLongDateTime" });
1336
1361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeDateTimeFormatterPipe, decorators: [{
1337
1362
  type: Pipe,
1338
1363
  args: [{ name: 'rangeLongDateTime' }]
1339
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1364
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1340
1365
  class RangeMiddleDateTimeFormatterPipe {
1341
- constructor(formatter) {
1366
+ constructor(adapter, formatter) {
1367
+ this.adapter = adapter;
1342
1368
  this.formatter = formatter;
1343
1369
  }
1344
1370
  transform([value1, value2], options) {
1345
- return this.formatter.rangeMiddleDateTime(value1, value2, options);
1371
+ const date1 = this.adapter.deserialize(value1);
1372
+ const date2 = this.adapter.deserialize(value2);
1373
+ return this.formatter.rangeMiddleDateTime(date1, date2, options);
1346
1374
  }
1347
1375
  }
1348
- /** @nocollapse */ RangeMiddleDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1376
+ /** @nocollapse */ RangeMiddleDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1349
1377
  /** @nocollapse */ RangeMiddleDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, name: "rangeMiddleDateTime" });
1350
1378
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, decorators: [{
1351
1379
  type: Pipe,
1352
1380
  args: [{ name: 'rangeMiddleDateTime' }]
1353
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1381
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1354
1382
  class RangeShortDateTimeFormatterPipe {
1355
- constructor(formatter) {
1383
+ constructor(adapter, formatter) {
1384
+ this.adapter = adapter;
1356
1385
  this.formatter = formatter;
1357
1386
  }
1358
1387
  transform([value1, value2], options) {
1359
- return this.formatter.rangeShortDateTime(value1, value2, options);
1388
+ const date1 = this.adapter.deserialize(value1);
1389
+ const date2 = this.adapter.deserialize(value2);
1390
+ return this.formatter.rangeShortDateTime(date1, date2, options);
1360
1391
  }
1361
1392
  }
1362
- /** @nocollapse */ RangeShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: [{ token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1393
+ /** @nocollapse */ RangeShortDateTimeFormatterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: [{ token: i1.DateAdapter }, { token: DateFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
1363
1394
  /** @nocollapse */ RangeShortDateTimeFormatterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateTimeFormatterPipe, name: "rangeShortDateTime" });
1364
1395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RangeShortDateTimeFormatterPipe, decorators: [{
1365
1396
  type: Pipe,
1366
1397
  args: [{ name: 'rangeShortDateTime' }]
1367
- }], ctorParameters: function () { return [{ type: DateFormatter }]; } });
1398
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: DateFormatter }]; } });
1368
1399
 
1369
1400
  /* tslint:disable:naming-convention */
1370
1401
  const MC_LOCALE_ID = new InjectionToken('McLocaleId');
1402
+ const MC_NUMBER_FORMATTER_OPTIONS = new InjectionToken('McNumberFormatterOptions');
1403
+ const MC_NUMBER_FORMATTER_DEFAULT_OPTIONS = {
1404
+ useGrouping: true,
1405
+ minimumIntegerDigits: 1,
1406
+ minimumFractionDigits: 0,
1407
+ maximumFractionDigits: 3
1408
+ };
1371
1409
  const DEFAULT_MC_LOCALE_ID = 'ru';
1372
1410
  function isEmpty(value) {
1373
1411
  return value == null || value === '' || value !== value;
@@ -1381,10 +1419,11 @@ function strToNumber(value) {
1381
1419
  }
1382
1420
  return value;
1383
1421
  }
1384
- const NUMBER_FORMAT_REGEXP = /^(\d+)?\.((\d+)(-(\d+))?)?$/;
1422
+ const NUMBER_FORMAT_REGEXP = /^(\d+)?\.((\d+)(-(\d+))?(-(true|false))?)?$/;
1385
1423
  const minIntGroupPosition = 1;
1386
1424
  const minFractionGroupPosition = 3;
1387
1425
  const maxFractionGroupPosition = 5;
1426
+ const useGroupingPosition = 7;
1388
1427
  class ParsedDigitsInfo {
1389
1428
  }
1390
1429
  function parseDigitsInfo(digitsInfo) {
@@ -1395,6 +1434,7 @@ function parseDigitsInfo(digitsInfo) {
1395
1434
  const minIntPart = parts[minIntGroupPosition];
1396
1435
  const minFractionPart = parts[minFractionGroupPosition];
1397
1436
  const maxFractionPart = parts[maxFractionGroupPosition];
1437
+ const useGroupingPart = parts[useGroupingPosition];
1398
1438
  const result = new ParsedDigitsInfo();
1399
1439
  if (minIntPart != null) {
1400
1440
  result.minimumIntegerDigits = parseInt(minIntPart);
@@ -1408,11 +1448,16 @@ function parseDigitsInfo(digitsInfo) {
1408
1448
  else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {
1409
1449
  result.maximumFractionDigits = result.minimumFractionDigits;
1410
1450
  }
1451
+ if (useGroupingPart != null) {
1452
+ result.useGrouping = useGroupingPart === 'true';
1453
+ }
1411
1454
  return result;
1412
1455
  }
1413
1456
  class McDecimalPipe {
1414
- constructor(_locale) {
1415
- this._locale = _locale;
1457
+ constructor(locale, options) {
1458
+ this.locale = locale;
1459
+ this.options = options;
1460
+ this.options = this.options || MC_NUMBER_FORMATTER_DEFAULT_OPTIONS;
1416
1461
  }
1417
1462
  /**
1418
1463
  * @param value The number to be formatted.
@@ -1432,12 +1477,12 @@ class McDecimalPipe {
1432
1477
  if (isEmpty(value)) {
1433
1478
  return null;
1434
1479
  }
1435
- const currentLocale = locale || this._locale || DEFAULT_MC_LOCALE_ID;
1480
+ const currentLocale = locale || this.locale || DEFAULT_MC_LOCALE_ID;
1436
1481
  let parsedDigitsInfo;
1437
1482
  if (digitsInfo) {
1438
1483
  parsedDigitsInfo = parseDigitsInfo(digitsInfo);
1439
1484
  }
1440
- const options = Object.assign({ useGrouping: true, minimumIntegerDigits: 1, minimumFractionDigits: 0, maximumFractionDigits: 3 }, parsedDigitsInfo);
1485
+ const options = Object.assign(Object.assign({}, this.options), parsedDigitsInfo);
1441
1486
  try {
1442
1487
  const num = strToNumber(value);
1443
1488
  return Intl.NumberFormat.call(this, currentLocale, options).format(num);
@@ -1447,7 +1492,7 @@ class McDecimalPipe {
1447
1492
  }
1448
1493
  }
1449
1494
  }
1450
- /** @nocollapse */ McDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: McDecimalPipe, deps: [{ token: MC_LOCALE_ID, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
1495
+ /** @nocollapse */ McDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: McDecimalPipe, deps: [{ token: MC_LOCALE_ID, optional: true }, { token: MC_NUMBER_FORMATTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
1451
1496
  /** @nocollapse */ McDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.5", ngImport: i0, type: McDecimalPipe, name: "mcNumber" });
1452
1497
  /** @nocollapse */ McDecimalPipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: McDecimalPipe, providedIn: 'root' });
1453
1498
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: McDecimalPipe, decorators: [{
@@ -1462,6 +1507,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
1462
1507
  }, {
1463
1508
  type: Inject,
1464
1509
  args: [MC_LOCALE_ID]
1510
+ }] }, { type: ParsedDigitsInfo, decorators: [{
1511
+ type: Optional
1512
+ }, {
1513
+ type: Inject,
1514
+ args: [MC_NUMBER_FORMATTER_OPTIONS]
1465
1515
  }] }];
1466
1516
  } });
1467
1517
 
@@ -2887,5 +2937,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
2887
2937
  * Generated bundle index. Do not edit.
2888
2938
  */
2889
2939
 
2890
- export { AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterPipe, AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, DEFAULT_MC_LOCALE_ID, DateFormatter, EXTENDED_OVERLAY_POSITIONS, ErrorStateMatcher, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MC_LABEL_GLOBAL_OPTIONS, MC_LOCALE_ID, MC_OPTION_ACTION_PARENT, MC_OPTION_PARENT_COMPONENT, MC_SANITY_CHECKS, MC_SELECT_SCROLL_STRATEGY, MC_SELECT_SCROLL_STRATEGY_PROVIDER, MC_VALIDATION, McCommonModule, McDecimalPipe, McForm, McFormElement, McFormattersModule, McFormsModule, McHighlightModule, McHighlightPipe, McLine, McLineModule, McLineSetter, McMeasureScrollbarService, McOptgroup, McOptgroupBase, McOptgroupMixinBase, McOption, McOptionActionBase, McOptionActionComponent, McOptionActionMixinBase, McOptionModule, McOptionSelectionChange, McPopUp, McPopUpTrigger, McPseudoCheckbox, McPseudoCheckboxBase, McPseudoCheckboxMixinBase, McPseudoCheckboxModule, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterPipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterPipe, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, ShowOnDirtyErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, VERSION, countGroupLabelsBeforeOption, fadeAnimation, getMcSelectDynamicMultipleError, getMcSelectNonArrayValueError, getMcSelectNonFunctionValueError, getOptionScrollPosition, isBoolean, mcSelectAnimations, mcSelectScrollStrategyProviderFactory, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, selectEvents, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay };
2940
+ export { AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterPipe, AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, DEFAULT_MC_LOCALE_ID, DateFormatter, EXTENDED_OVERLAY_POSITIONS, ErrorStateMatcher, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MC_LABEL_GLOBAL_OPTIONS, MC_LOCALE_ID, MC_NUMBER_FORMATTER_DEFAULT_OPTIONS, MC_NUMBER_FORMATTER_OPTIONS, MC_OPTION_ACTION_PARENT, MC_OPTION_PARENT_COMPONENT, MC_SANITY_CHECKS, MC_SELECT_SCROLL_STRATEGY, MC_SELECT_SCROLL_STRATEGY_PROVIDER, MC_VALIDATION, McCommonModule, McDecimalPipe, McForm, McFormElement, McFormattersModule, McFormsModule, McHighlightModule, McHighlightPipe, McLine, McLineModule, McLineSetter, McMeasureScrollbarService, McOptgroup, McOptgroupBase, McOptgroupMixinBase, McOption, McOptionActionBase, McOptionActionComponent, McOptionActionMixinBase, McOptionModule, McOptionSelectionChange, McPopUp, McPopUpTrigger, McPseudoCheckbox, McPseudoCheckboxBase, McPseudoCheckboxMixinBase, McPseudoCheckboxModule, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterPipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterPipe, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, ShowOnDirtyErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, VERSION, countGroupLabelsBeforeOption, fadeAnimation, getMcSelectDynamicMultipleError, getMcSelectNonArrayValueError, getMcSelectNonFunctionValueError, getOptionScrollPosition, isBoolean, mcSelectAnimations, mcSelectScrollStrategyProviderFactory, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, selectEvents, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay };
2891
2941
  //# sourceMappingURL=ptsecurity-mosaic-core.mjs.map