@ptsecurity/mosaic 15.7.2 → 15.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/_theming.scss +124 -7
  2. package/checkbox/_checkbox-theme.scss +1 -1
  3. package/checkbox/checkbox.scss +4 -7
  4. package/core/forms/_forms-theme.scss +112 -0
  5. package/core/locales/index.d.ts +0 -2
  6. package/core/pop-up/pop-up.d.ts +9 -0
  7. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +3 -5
  8. package/core/styles/_core.scss +0 -1
  9. package/core/styles/_variables.scss +1 -1
  10. package/core/styles/theming/_scrollbars.scss +9 -3
  11. package/esm2020/button/button.component.mjs +6 -3
  12. package/esm2020/checkbox/checkbox.mjs +2 -2
  13. package/esm2020/code-block/actionbar.component.mjs +1 -1
  14. package/esm2020/core/formatters/index.mjs +4 -3
  15. package/esm2020/core/locales/index.mjs +1 -3
  16. package/esm2020/core/pop-up/pop-up-trigger.mjs +2 -2
  17. package/esm2020/core/pop-up/pop-up.mjs +7 -1
  18. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  19. package/esm2020/core/version.mjs +2 -2
  20. package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -2
  21. package/esm2020/file-upload/file-drop.mjs +40 -3
  22. package/esm2020/file-upload/file-upload.mjs +1 -1
  23. package/esm2020/file-upload/multiple-file-upload.component.mjs +3 -3
  24. package/esm2020/file-upload/single-file-upload.component.mjs +1 -1
  25. package/esm2020/form-field/form-field.mjs +9 -3
  26. package/esm2020/form-field/validate.directive.mjs +9 -3
  27. package/esm2020/icon/icon.component.mjs +11 -3
  28. package/esm2020/loader-overlay/loader-overlay.component.mjs +2 -2
  29. package/esm2020/modal/modal.component.mjs +4 -9
  30. package/esm2020/navbar/navbar-item.component.mjs +15 -8
  31. package/esm2020/navbar/navbar.component.mjs +18 -7
  32. package/esm2020/navbar/vertical-navbar.animation.mjs +2 -2
  33. package/esm2020/navbar/vertical-navbar.component.mjs +5 -4
  34. package/esm2020/popover/popover.component.mjs +7 -2
  35. package/esm2020/select/select-option.directive.mjs +15 -3
  36. package/esm2020/select/select.component.mjs +29 -16
  37. package/esm2020/tabs/tab-group.component.mjs +1 -1
  38. package/esm2020/tags/tag-list.component.mjs +5 -4
  39. package/esm2020/timezone/timezone-select.component.mjs +3 -3
  40. package/esm2020/toast/toast-animations.mjs +2 -1
  41. package/esm2020/toast/toast-container.component.mjs +21 -7
  42. package/esm2020/toast/toast.component.mjs +7 -2
  43. package/esm2020/toast/toast.service.mjs +2 -1
  44. package/esm2020/toggle/toggle.component.mjs +3 -3
  45. package/esm2020/tooltip/tooltip.component.mjs +16 -4
  46. package/esm2020/tree/control/base-tree-control.mjs +1 -1
  47. package/esm2020/tree/control/flat-tree-control.filters.mjs +46 -0
  48. package/esm2020/tree/control/flat-tree-control.mjs +26 -44
  49. package/esm2020/tree/control/tree-control.mjs +1 -1
  50. package/esm2020/tree/padding.directive.mjs +2 -2
  51. package/esm2020/tree/public-api.mjs +2 -1
  52. package/esm2020/tree/toggle.mjs +2 -4
  53. package/esm2020/tree/tree-option.component.mjs +4 -1
  54. package/esm2020/tree-select/tree-select.component.mjs +26 -10
  55. package/esm2020/tree-select/tree-select.module.mjs +6 -6
  56. package/fesm2015/ptsecurity-mosaic-button.mjs +5 -2
  57. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  58. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +2 -2
  59. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  60. package/fesm2015/ptsecurity-mosaic-code-block.mjs +1 -1
  61. package/fesm2015/ptsecurity-mosaic-code-block.mjs.map +1 -1
  62. package/fesm2015/ptsecurity-mosaic-core.mjs +15 -11
  63. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  64. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +2 -1
  65. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  66. package/fesm2015/ptsecurity-mosaic-file-upload.mjs +42 -4
  67. package/fesm2015/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  68. package/fesm2015/ptsecurity-mosaic-form-field.mjs +16 -3
  69. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  70. package/fesm2015/ptsecurity-mosaic-icon.mjs +11 -2
  71. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  72. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  73. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  74. package/fesm2015/ptsecurity-mosaic-modal.mjs +4 -9
  75. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  76. package/fesm2015/ptsecurity-mosaic-navbar.mjs +36 -17
  77. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  78. package/fesm2015/ptsecurity-mosaic-popover.mjs +6 -1
  79. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  80. package/fesm2015/ptsecurity-mosaic-select.mjs +43 -18
  81. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  82. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1 -1
  83. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  84. package/fesm2015/ptsecurity-mosaic-tags.mjs +4 -3
  85. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  86. package/fesm2015/ptsecurity-mosaic-timezone.mjs +2 -2
  87. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
  88. package/fesm2015/ptsecurity-mosaic-toast.mjs +27 -8
  89. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  90. package/fesm2015/ptsecurity-mosaic-toggle.mjs +2 -2
  91. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  92. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +15 -3
  93. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  94. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +31 -14
  95. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  96. package/fesm2015/ptsecurity-mosaic-tree.mjs +77 -48
  97. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  98. package/fesm2020/ptsecurity-mosaic-button.mjs +5 -2
  99. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  100. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +2 -2
  101. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  102. package/fesm2020/ptsecurity-mosaic-code-block.mjs +1 -1
  103. package/fesm2020/ptsecurity-mosaic-code-block.mjs.map +1 -1
  104. package/fesm2020/ptsecurity-mosaic-core.mjs +15 -11
  105. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  106. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +2 -1
  107. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  108. package/fesm2020/ptsecurity-mosaic-file-upload.mjs +41 -4
  109. package/fesm2020/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  110. package/fesm2020/ptsecurity-mosaic-form-field.mjs +16 -4
  111. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  112. package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -2
  113. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  114. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  115. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  116. package/fesm2020/ptsecurity-mosaic-modal.mjs +3 -8
  117. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  118. package/fesm2020/ptsecurity-mosaic-navbar.mjs +36 -17
  119. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  120. package/fesm2020/ptsecurity-mosaic-popover.mjs +6 -1
  121. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  122. package/fesm2020/ptsecurity-mosaic-select.mjs +42 -17
  123. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  124. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1 -1
  125. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  126. package/fesm2020/ptsecurity-mosaic-tags.mjs +4 -3
  127. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  128. package/fesm2020/ptsecurity-mosaic-timezone.mjs +2 -2
  129. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
  130. package/fesm2020/ptsecurity-mosaic-toast.mjs +25 -8
  131. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  132. package/fesm2020/ptsecurity-mosaic-toggle.mjs +2 -2
  133. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  134. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +15 -3
  135. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  136. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +30 -14
  137. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  138. package/fesm2020/ptsecurity-mosaic-tree.mjs +77 -48
  139. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  140. package/file-upload/file-drop.d.ts +2 -1
  141. package/file-upload/file-upload.d.ts +4 -1
  142. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  143. package/file-upload/single-file-upload.component.d.ts +2 -2
  144. package/form-field/form-field.d.ts +2 -0
  145. package/form-field/form-field.scss +0 -2
  146. package/icon/icon.component.d.ts +2 -0
  147. package/navbar/_navbar-theme.scss +2 -2
  148. package/navbar/navbar-item.component.d.ts +4 -1
  149. package/navbar/navbar-item.scss +6 -2
  150. package/navbar/navbar.component.d.ts +3 -0
  151. package/package.json +5 -5
  152. package/popover/popover.component.d.ts +5 -0
  153. package/prebuilt-themes/dark-theme.css +1 -1
  154. package/prebuilt-themes/default-theme.css +1 -1
  155. package/select/select-option.directive.d.ts +2 -0
  156. package/select/select.component.d.ts +4 -3
  157. package/select/select.scss +4 -0
  158. package/tags/tag-list.scss +4 -0
  159. package/toast/toast-animations.d.ts +1 -0
  160. package/toast/toast-container.component.d.ts +7 -3
  161. package/toast/toast.component.d.ts +2 -0
  162. package/toast/toast.service.d.ts +2 -0
  163. package/toggle/_toggle-theme.scss +13 -1
  164. package/toggle/toggle.scss +6 -2
  165. package/tooltip/tooltip.component.d.ts +4 -1
  166. package/tree/control/base-tree-control.d.ts +1 -1
  167. package/tree/control/flat-tree-control.d.ts +5 -3
  168. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  169. package/tree/control/tree-control.d.ts +1 -1
  170. package/tree/public-api.d.ts +1 -0
  171. package/tree-select/tree-select.component.d.ts +9 -3
  172. package/tree-select/tree-select.module.d.ts +1 -1
  173. package/core/forms/_forms.scss +0 -109
package/_theming.scss CHANGED
@@ -6796,7 +6796,9 @@ $dark-warning: mc-palette($dark-color-scheme-warning-palette, $dark-color-scheme
6796
6796
 
6797
6797
  .mc-scrollbar {
6798
6798
  //firefox
6799
- scrollbar-width: auto;
6799
+ @supports not selector(::-webkit-scrollbar) {
6800
+ scrollbar-width: thin;
6801
+ }
6800
6802
 
6801
6803
  // webkit
6802
6804
  &::-webkit-scrollbar,
@@ -6809,6 +6811,7 @@ $dark-warning: mc-palette($dark-color-scheme-warning-palette, $dark-color-scheme
6809
6811
  width: var(--mc-scrollbar-size-thumb-width, $scrollbar-size-thumb-width);
6810
6812
  border-width: var(--mc-scrollbar-size-thumb-inset-border-width, $scrollbar-size-thumb-border-width);
6811
6813
  border-radius: var(--mc-scrollbar-size-thumb-inset-border-radius, $scrollbar-size-thumb-border-radius);
6814
+ min-height: 20px;
6812
6815
  }
6813
6816
 
6814
6817
  &::-webkit-scrollbar-button,
@@ -6826,9 +6829,10 @@ $dark-warning: mc-palette($dark-color-scheme-warning-palette, $dark-color-scheme
6826
6829
  $arrow: map-get($scrollbar, arrow);
6827
6830
 
6828
6831
  .mc-scrollbar {
6829
-
6830
6832
  // firefox
6831
- scrollbar-color: map-get($thumb, normal) map-get($scrollbar, track);
6833
+ @supports not selector(::-webkit-scrollbar) {
6834
+ scrollbar-color: map-get($thumb, normal) map-get($scrollbar, track);
6835
+ }
6832
6836
 
6833
6837
  // webkit
6834
6838
  &::-webkit-scrollbar,
@@ -7360,7 +7364,7 @@ $dark-warning: mc-palette($dark-color-scheme-warning-palette, $dark-color-scheme
7360
7364
  &.mc-disabled,
7361
7365
  &.mc-primary.mc-disabled,
7362
7366
  &.mc-error.mc-disabled {
7363
- color: map-get($foreground, text-disabled);
7367
+ color: map-get($foreground, text-disabled) !important;
7364
7368
 
7365
7369
  .mc-checkbox-frame {
7366
7370
  border-color: map-get($foreground, border);
@@ -8795,7 +8799,7 @@ $mc-datepicker-today-fade-amount: 0.2;
8795
8799
  background: map-get($navbar-item, state-selected);
8796
8800
  }
8797
8801
 
8798
- &:hover:not(.mc-navbar-item_button) {
8802
+ &:hover:not(.mc-navbar-item_has-nested) {
8799
8803
  cursor: pointer;
8800
8804
 
8801
8805
  & .mc-navbar-item__overlay {
@@ -8803,7 +8807,7 @@ $mc-datepicker-today-fade-amount: 0.2;
8803
8807
  }
8804
8808
  }
8805
8809
 
8806
- &:active:not(.mc-navbar-item_button) {
8810
+ &:active:not(.mc-navbar-item_has-nested) {
8807
8811
  & .mc-navbar-item__overlay {
8808
8812
  background: map-get($navbar-item, state-active);
8809
8813
  }
@@ -9815,7 +9819,11 @@ button {
9815
9819
  color: map-get($foreground, text-disabled);
9816
9820
 
9817
9821
  & .mc-toggle__overlay {
9818
- background: mc-color($background, overlay-disabled);
9822
+ background: rgba(255, 255, 255, 0.3);
9823
+ }
9824
+
9825
+ &.mc-active .mc-toggle__circle {
9826
+ background: white;
9819
9827
  }
9820
9828
  }
9821
9829
  }
@@ -9824,10 +9832,18 @@ button {
9824
9832
  @mixin mc-toggle-typography($config) {
9825
9833
  .mc-toggle:not(.mc-toggle_small) {
9826
9834
  @include mc-typography-level-to-styles($config, $toggle-font-default);
9835
+
9836
+ .mc-toggle-bar-outer-container {
9837
+ height: mc-line-height($config, $toggle-font-default);
9838
+ }
9827
9839
  }
9828
9840
 
9829
9841
  .mc-toggle.mc-toggle_small {
9830
9842
  @include mc-typography-level-to-styles($config, $toggle-small-font-default);
9843
+
9844
+ .mc-toggle-bar-outer-container {
9845
+ height: mc-line-height($config, $toggle-small-font-default);
9846
+ }
9831
9847
  }
9832
9848
  }
9833
9849
 
@@ -10236,8 +10252,109 @@ button {
10236
10252
 
10237
10253
 
10238
10254
 
10255
+ @mixin mc-form-geometry() {
10256
+ .mc-form {
10257
+ display: flex;
10258
+ flex-direction: column;
10259
+ }
10260
+
10261
+ .mc-form__row {
10262
+ display: flex;
10263
+ flex-direction: row;
10264
+ }
10265
+
10266
+ .mc-form-horizontal {
10267
+ $config: mc-typography-config();
10268
+
10269
+ $line-height: mc-line-height($config, body);
10270
+
10271
+ $label-padding-top: calc(($form-field-size-height - $line-height) / 2);
10272
+
10273
+ & .mc-form-row_margin {
10274
+ margin-bottom: var(
10275
+ --mc-forms-size-horizontal-row-margin-bottom, $forms-size-horizontal-row-margin-bottom
10276
+ );
10277
+ }
10278
+
10279
+ & .mc-form__label {
10280
+ padding-top: var(--mc-forms-size-horizontal-label-padding-top, $label-padding-top);
10281
+
10282
+ text-align: start;
10283
+ }
10284
+
10285
+ & .mc-form__control {
10286
+ padding-left: var(
10287
+ --mc-forms-size-horizontal-control-padding-left,
10288
+ $forms-size-horizontal-control-padding-left
10289
+ );
10290
+ }
10291
+
10292
+ & .mc-form__legend {
10293
+ margin-top: var(
10294
+ --mc-forms-size-horizontal-legend-margin-top, $forms-size-horizontal-legend-margin-top
10295
+ );
10296
+ margin-bottom: var(
10297
+ --mc-forms-size-horizontal-legend-margin-bottom,
10298
+ $forms-size-horizontal-legend-margin-bottom
10299
+ );
10300
+ }
10301
+ }
10302
+
10303
+ .mc-form-vertical {
10304
+ & .mc-form__row {
10305
+ flex-direction: column;
10306
+ }
10307
+
10308
+ & .mc-form-row_margin {
10309
+ margin-bottom: var(
10310
+ --mc-forms-size-vertical-row-margin-bottom, $forms-size-vertical-row-margin-bottom
10311
+ );
10312
+ }
10313
+
10314
+ & .mc-form__label {
10315
+ padding-top: var(
10316
+ --mc-forms-size-vertical-label-padding-top, $forms-size-vertical-label-padding-top
10317
+ );
10318
+ padding-bottom: var(
10319
+ --mc-forms-size-vertical-label-padding-bottom, $forms-size-vertical-label-padding-bottom
10320
+ );
10321
+
10322
+ text-align: start;
10323
+ }
10324
+
10325
+ & .mc-form__control {
10326
+ padding-left: 0;
10327
+ }
10328
+
10329
+ & .mc-form__legend {
10330
+ margin-top: var(
10331
+ --mc-forms-size-vertical-legend-margin-top, $forms-size-vertical-legend-margin-top
10332
+ );
10333
+ margin-bottom: var(
10334
+ --mc-forms-size-vertical-legend-margin-bottom, $forms-size-vertical-legend-margin-bottom
10335
+ );
10336
+ }
10337
+ }
10338
+
10339
+ .mc-form__fieldset {
10340
+ display: flex;
10341
+ flex-direction: column;
10342
+ }
10343
+
10344
+ .mc-form__fieldset.mc-horizontal {
10345
+ flex-direction: row;
10346
+
10347
+ & .mc-form__row:not(:first-child) {
10348
+ padding-left: var(
10349
+ --mc-forms-size-vertical-control-padding-left, $forms-size-vertical-control-padding-left
10350
+ );
10351
+ }
10352
+ }
10353
+ }
10239
10354
 
10240
10355
  @mixin mc-forms-theme($theme) {
10356
+ @include mc-form-geometry();
10357
+
10241
10358
  $foreground: map-get($theme, foreground);
10242
10359
 
10243
10360
  $forms: map-get(map-get($theme, components), forms);
@@ -81,7 +81,7 @@
81
81
  &.mc-disabled,
82
82
  &.mc-primary.mc-disabled,
83
83
  &.mc-error.mc-disabled {
84
- color: map.get($foreground, text-disabled);
84
+ color: map.get($foreground, text-disabled) !important;
85
85
 
86
86
  .mc-checkbox-frame {
87
87
  border-color: map.get($foreground, border);
@@ -22,18 +22,15 @@ $tokens: meta.module-variables(tokens) !default;
22
22
  .mc-checkbox-checkmark,
23
23
  .mc-checkbox-mixedmark {
24
24
  display: none;
25
-
26
- position: absolute;
27
-
28
- top: -1px;
29
- left: -1px;
30
- right: 0;
31
- bottom: 0;
32
25
  }
33
26
 
34
27
  .mc-checkbox-frame {
35
28
  @extend %mc-checkbox-outer-box;
36
29
 
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+
37
34
  background-color: transparent;
38
35
  border: {
39
36
  width: var(--mc-checkbox-size-border-width, map.get($tokens, checkbox-size-border-width));
@@ -3,7 +3,119 @@
3
3
 
4
4
  @use '../styles/typography' as *;
5
5
 
6
+ @mixin mc-form-geometry($tokens) {
7
+ .mc-form {
8
+ display: flex;
9
+ flex-direction: column;
10
+ }
11
+
12
+ .mc-form__row {
13
+ display: flex;
14
+ flex-direction: row;
15
+ }
16
+
17
+ .mc-form-horizontal {
18
+ $config: mc-typography-config($tokens);
19
+
20
+ $line-height: mc-line-height($config, body);
21
+
22
+ $form-field-size-height: map.get($tokens, form-field-size-height);
23
+
24
+ $label-padding-top: calc(($form-field-size-height - $line-height) / 2);
25
+
26
+ & .mc-form-row_margin {
27
+ margin-bottom: var(
28
+ --mc-forms-size-horizontal-row-margin-bottom,
29
+ #{map.get($tokens, forms-size-horizontal-row-margin-bottom)}
30
+ );
31
+ }
32
+
33
+ & .mc-form__label {
34
+ padding-top: var(--mc-forms-size-horizontal-label-padding-top, #{$label-padding-top});
35
+
36
+ text-align: start;
37
+ }
38
+
39
+ & .mc-form__control {
40
+ padding-left: var(
41
+ --mc-forms-size-horizontal-control-padding-left,
42
+ #{map.get($tokens, forms-size-horizontal-control-padding-left)}
43
+ );
44
+ }
45
+
46
+ & .mc-form__legend {
47
+ margin-top: var(
48
+ --mc-forms-size-horizontal-legend-margin-top,
49
+ #{map.get($tokens, forms-size-horizontal-legend-margin-top)}
50
+ );
51
+ margin-bottom: var(
52
+ --mc-forms-size-horizontal-legend-margin-bottom,
53
+ #{map.get($tokens, forms-size-horizontal-legend-margin-bottom)}
54
+ );
55
+ }
56
+ }
57
+
58
+ .mc-form-vertical {
59
+ & .mc-form__row {
60
+ flex-direction: column;
61
+ }
62
+
63
+ & .mc-form-row_margin {
64
+ margin-bottom: var(
65
+ --mc-forms-size-vertical-row-margin-bottom,
66
+ #{map.get($tokens, forms-size-vertical-row-margin-bottom)}
67
+ );
68
+ }
69
+
70
+ & .mc-form__label {
71
+ padding-top: var(
72
+ --mc-forms-size-vertical-label-padding-top,
73
+ #{map.get($tokens, forms-size-vertical-label-padding-top)}
74
+ );
75
+ padding-bottom: var(
76
+ --mc-forms-size-vertical-label-padding-bottom,
77
+ #{map.get($tokens, forms-size-vertical-label-padding-bottom)}
78
+ );
79
+
80
+ text-align: start;
81
+ }
82
+
83
+ & .mc-form__control {
84
+ padding-left: 0;
85
+ }
86
+
87
+ & .mc-form__legend {
88
+ margin-top: var(
89
+ --mc-forms-size-vertical-legend-margin-top,
90
+ #{map.get($tokens, forms-size-vertical-legend-margin-top)}
91
+ );
92
+ margin-bottom: var(
93
+ --mc-forms-size-vertical-legend-margin-bottom,
94
+ #{map.get($tokens, forms-size-vertical-legend-margin-bottom)}
95
+ );
96
+ }
97
+ }
98
+
99
+ .mc-form__fieldset {
100
+ display: flex;
101
+ flex-direction: column;
102
+ }
103
+
104
+ .mc-form__fieldset.mc-horizontal {
105
+ flex-direction: row;
106
+
107
+ & .mc-form__row:not(:first-child) {
108
+ padding-left: var(
109
+ --mc-forms-size-vertical-control-padding-left,
110
+ #{map.get($tokens, forms-size-vertical-control-padding-left)}
111
+ );
112
+ }
113
+ }
114
+ }
115
+
6
116
  @mixin mc-forms-theme($theme) {
117
+ @include mc-form-geometry(map.get($theme, tokens));
118
+
7
119
  $foreground: map.get($theme, foreground);
8
120
 
9
121
  $forms: map.get(map.get($theme, components), forms);
@@ -1,4 +1,2 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  export * from './locale-service';
3
2
  export * from './locale-service.module';
4
- export declare const MC_LOCALE_ID: InjectionToken<string>;
@@ -7,6 +7,9 @@ export declare abstract class McPopUp implements OnDestroy {
7
7
  private changeDetectorRef;
8
8
  header: string | TemplateRef<any>;
9
9
  content: string | TemplateRef<any>;
10
+ context: {
11
+ $implicit: any;
12
+ } | null;
10
13
  classMap: {};
11
14
  warning: boolean;
12
15
  visibility: PopUpVisibility;
@@ -21,6 +24,12 @@ export declare abstract class McPopUp implements OnDestroy {
21
24
  ngOnDestroy(): void;
22
25
  isTemplateRef(value: any): boolean;
23
26
  show(delay: number): void;
27
+ /**
28
+ * Hides the popup after a specified delay.
29
+ * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.
30
+ * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.
31
+ * @param delay - The delay in milliseconds before hiding the popup.
32
+ */
24
33
  hide(delay: number): void;
25
34
  isVisible(): boolean;
26
35
  updateClassMap(placement: string, customClass: string, classMap?: any): void;
@@ -8,7 +8,7 @@ $tokens: meta.module-variables(tokens) !default;
8
8
 
9
9
  .mc-pseudo-checkbox {
10
10
  position: relative;
11
- display: inline-block;
11
+ display: inline-flex;
12
12
  box-sizing: border-box;
13
13
 
14
14
  width: var(--mc-checkbox-size-width, map.get($tokens, checkbox-size-width));
@@ -24,14 +24,12 @@ $tokens: meta.module-variables(tokens) !default;
24
24
 
25
25
  vertical-align: middle;
26
26
  flex-shrink: 0;
27
+ align-items: center;
28
+ justify-content: center;
27
29
 
28
30
  & .mc-checkbox-checkmark,
29
31
  & .mc-checkbox-mixedmark {
30
32
  display: none;
31
-
32
- position: absolute;
33
- top: calc(-1 * var(--mc-checkbox-size-border-width, #{map.get($tokens, checkbox-size-border-width)}));
34
- left: calc(-1 * var(--mc-checkbox-size-border-width, #{map.get($tokens, checkbox-size-border-width)}));
35
33
  }
36
34
 
37
35
  &.mc-pseudo-checkbox-checked,
@@ -3,7 +3,6 @@
3
3
  @use 'common/overlay' as *;
4
4
  @use 'common/visually-hidden' as *;
5
5
 
6
-
7
6
  // Mixin that renders all of the core styles that are not theme-dependent.
8
7
  @mixin mc-core() {
9
8
  @include a11y-visually-hidden();
@@ -7,4 +7,4 @@ $z-index-picker: 1050;
7
7
  $z-index-dropdown: 1050;
8
8
  $z-index-tooltip: 1060;
9
9
  $z-index-toast: 1070;
10
- $z-index-loader-overlay: 1000;
10
+ $z-index-loader-overlay: 10;
@@ -5,7 +5,9 @@
5
5
 
6
6
  .mc-scrollbar {
7
7
  //firefox
8
- scrollbar-width: auto;
8
+ @supports not selector(::-webkit-scrollbar) {
9
+ scrollbar-width: thin;
10
+ }
9
11
  }
10
12
 
11
13
  @mixin mc-scrollbar-theme($theme) {
@@ -14,8 +16,12 @@
14
16
  $arrow: map.get($scrollbar, arrow);
15
17
 
16
18
  .mc-scrollbar {
19
+ @include mc-scrollbar-geometry(map.get($theme, tokens));
20
+
17
21
  // firefox
18
- scrollbar-color: map.get($thumb, normal) map.get($scrollbar, track);
22
+ @supports not selector(::-webkit-scrollbar) {
23
+ scrollbar-color: map-get($thumb, normal) map-get($scrollbar, track);
24
+ }
19
25
 
20
26
  // webkit
21
27
  &::-webkit-scrollbar,
@@ -84,7 +90,6 @@
84
90
  }
85
91
  }
86
92
  /* stylelint-enable */
87
- @include mc-scrollbar-geometry(map.get($theme, tokens));
88
93
  }
89
94
  }
90
95
 
@@ -106,6 +111,7 @@
106
111
  --mc-scrollbar-size-thumb-inset-border-radius,
107
112
  map.get($tokens, scrollbar-size-thumb-border-radius)
108
113
  );
114
+ min-height: 20px;
109
115
  }
110
116
 
111
117
  &::-webkit-scrollbar-button,
@@ -27,6 +27,11 @@ export class McButtonCssStyler {
27
27
  updateClassModifierForIcons() {
28
28
  this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);
29
29
  this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);
30
+ this.icons.map((item) => item.getHostElement())
31
+ .forEach((iconHostElement) => {
32
+ this.renderer.removeClass(iconHostElement, leftIconClassName);
33
+ this.renderer.removeClass(iconHostElement, rightIconClassName);
34
+ });
30
35
  const twoIcons = 2;
31
36
  const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.querySelector('.mc-button-wrapper').childNodes);
32
37
  const currentIsIconButtonValue = !!this.icons.length &&
@@ -38,8 +43,6 @@ export class McButtonCssStyler {
38
43
  if (this.icons.length && filteredNodesWithoutComments.length > 1) {
39
44
  this.icons.map((item) => item.getHostElement())
40
45
  .forEach((iconHostElement) => {
41
- this.renderer.removeClass(iconHostElement, leftIconClassName);
42
- this.renderer.removeClass(iconHostElement, rightIconClassName);
43
46
  const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === iconHostElement);
44
47
  if (iconIndex === 0) {
45
48
  this.renderer.addClass(iconHostElement, leftIconClassName);
@@ -145,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
145
148
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: McButtonCssStyler }]; }, propDecorators: { disabled: [{
146
149
  type: Input
147
150
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFFVixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxlQUFlLEVBRWYsUUFBUSxFQUNSLEtBQUssRUFBRSxVQUFVLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsYUFBYSxFQUtoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUdqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHFCQUFxQixDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHNCQUFzQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBZSxFQUFVLEVBQUU7SUFDL0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLENBQUM7QUFDOUUsQ0FBQyxDQUFDO0FBU0YsTUFBTSxPQUFPLGlCQUFpQjtJQU8xQixZQUFZLFVBQXNCLEVBQVUsUUFBbUIsRUFBc0IsR0FBc0I7UUFBL0QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUYzRyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUcxQixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwyQkFBMkI7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUV4RSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUUsQ0FBQyxVQUFzQixDQUNqRixDQUFDO1FBRUYsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLDRCQUE0QixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUM7UUFFL0YsSUFBSSx3QkFBd0IsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsd0JBQXdCLENBQUM7WUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksNEJBQTRCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUUvRCxNQUFNLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxTQUFTLENBQ3BELENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUNyQyxDQUFDO2dCQUVGLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtvQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztpQkFDdkU7Z0JBRUQsSUFBSSxTQUFTLEtBQUssNEJBQTRCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7b0JBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztpQkFDeEU7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNWO0lBRUwsQ0FBQzs7aUlBdERRLGlCQUFpQjtxSEFBakIsaUJBQWlCLGtOQUNTLE1BQU07MkZBRGhDLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLG1CQUFtQixFQUFFLGVBQWU7d0JBQ3BDLHdCQUF3QixFQUFFLGNBQWM7cUJBQzNDO2lCQUNKOzswQkFRcUUsUUFBUTs0Q0FON0IsS0FBSztzQkFBakQsZUFBZTt1QkFBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7QUF3RC9DLG9CQUFvQjtBQUNwQixNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztDQUNoRDtBQUVELG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FDSixhQUFhLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFrQmxFLE1BQU0sT0FBTyxRQUFTLFNBQVEsaUJBQWlCO0lBZ0IzQyxZQUFZLFVBQXNCLEVBQVUsWUFBMEIsRUFBVSxNQUF5QjtRQUNyRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFEc0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQWZ6RyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBYWxCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFLL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFqQkQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBVUQsV0FBVztRQUNQLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBTTtRQUNWLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFZO1FBQzNCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7d0hBdEVRLFFBQVE7NEdBQVIsUUFBUSw2U0NqSXJCLDRNQUlBOzJGRDZIYSxRQUFRO2tCQWZwQixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxVQUM3QixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFDdkI7d0JBQ0YsaUJBQWlCLEVBQUUsa0JBQWtCO3dCQUNyQyxpQkFBaUIsRUFBRSxVQUFVO3dCQUU3QixTQUFTLEVBQUUsaUJBQWlCO3dCQUM1QixRQUFRLEVBQUUsVUFBVTtxQkFDdkI7eUpBTUcsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBSZW5kZXJlcjIsXG4gICAgUXVlcnlMaXN0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIFNraXBTZWxmLFxuICAgIElucHV0LCBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBtaXhpbkNvbG9yLFxuICAgIG1peGluVGFiSW5kZXgsXG4gICAgQ2FuQ29sb3IsXG4gICAgQ2FuRGlzYWJsZSxcbiAgICBDYW5Db2xvckN0b3IsXG4gICAgSGFzVGFiSW5kZXhDdG9yXG59IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcbmltcG9ydCB7IE1jSWNvbiB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9pY29uJztcblxuXG5leHBvcnQgY29uc3QgbGVmdEljb25DbGFzc05hbWUgPSAnbWMtaWNvbl9sZWZ0JztcbmV4cG9ydCBjb25zdCByaWdodEljb25DbGFzc05hbWUgPSAnbWMtaWNvbl9yaWdodCc7XG5cbmV4cG9ydCBjb25zdCBidXR0b25MZWZ0SWNvbkNsYXNzTmFtZSA9ICdtYy1pY29uLWJ1dHRvbl9sZWZ0JztcbmV4cG9ydCBjb25zdCBidXR0b25SaWdodEljb25DbGFzc05hbWUgPSAnbWMtaWNvbi1idXR0b25fcmlnaHQnO1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMgPSAobm9kZXM6IE5vZGVMaXN0KTogTm9kZVtdID0+IHtcbiAgICBjb25zdCBDT01NRU5UX05PREUgPSA4O1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20obm9kZXMpLmZpbHRlcigobm9kZSkgPT4gbm9kZS5ub2RlVHlwZSAhPT0gQ09NTUVOVF9OT0RFKTtcbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21jLWJ1dHRvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5tYy1idXR0b25dJzogJyFpc0ljb25CdXR0b24nLFxuICAgICAgICAnW2NsYXNzLm1jLWljb24tYnV0dG9uXSc6ICdpc0ljb25CdXR0b24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNY0J1dHRvbkNzc1N0eWxlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oKGZvcndhcmRSZWYoKCkgPT4gTWNJY29uKSkpIGljb25zOiBRdWVyeUxpc3Q8TWNJY29uPjtcblxuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgaXNJY29uQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIEBTa2lwU2VsZigpIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvblJpZ2h0SWNvbkNsYXNzTmFtZSk7XG5cbiAgICAgICAgY29uc3QgdHdvSWNvbnMgPSAyO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzID0gZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1jLWJ1dHRvbi13cmFwcGVyJykhLmNoaWxkTm9kZXMgYXMgTm9kZUxpc3RcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgPSAhIXRoaXMuaWNvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLmljb25zLmxlbmd0aCA9PT0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggJiYgdGhpcy5pY29ucy5sZW5ndGggPD0gdHdvSWNvbnM7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZSAhPT0gdGhpcy5pc0ljb25CdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuaXNJY29uQnV0dG9uID0gY3VycmVudElzSWNvbkJ1dHRvblZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaWNvbnMubGVuZ3RoICYmIGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5pY29ucy5tYXAoKGl0ZW0pID0+IGl0ZW0uZ2V0SG9zdEVsZW1lbnQoKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaWNvbkhvc3RFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCBsZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCByaWdodEljb25DbGFzc05hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25JbmRleCA9IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUpID0+IG5vZGUgPT09IGljb25Ib3N0RWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCBsZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uTGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25JbmRleCA9PT0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb25Ib3N0RWxlbWVudCwgcmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBidXR0b25SaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjbGFzcyBNY0J1dHRvbkJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IE1jQnV0dG9uTWl4aW5CYXNlOiBIYXNUYWJJbmRleEN0b3IgJiBDYW5Db2xvckN0b3IgJlxuICAgIHR5cGVvZiBNY0J1dHRvbkJhc2UgPSBtaXhpblRhYkluZGV4KG1peGluQ29sb3IoTWNCdXR0b25CYXNlKSk7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbbWMtYnV0dG9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGlucHV0czogWydjb2xvcicsICd0YWJJbmRleCddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAgICAgJ1thdHRyLnRhYkluZGV4XSc6ICd0YWJJbmRleCcsXG5cbiAgICAgICAgJyhmb2N1cyknOiAnb25Gb2N1cygkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdvbkJsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jQnV0dG9uIGV4dGVuZHMgTWNCdXR0b25NaXhpbkJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIENhbkRpc2FibGUsIENhbkNvbG9yIHtcbiAgICBoYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnN0b3BGb2N1c01vbml0b3IoKSA6IHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsIHByaXZhdGUgc3R5bGVyOiBNY0J1dHRvbkNzc1N0eWxlcikge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcblxuICAgICAgICB0aGlzLnJ1bkZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKCRldmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNWaWFLZXlib2FyZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5nZXRIb3N0RWxlbWVudCgpLCAna2V5Ym9hcmQnKTtcbiAgICB9XG5cbiAgICBoYWx0RGlzYWJsZWRFdmVudHMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2plY3RDb250ZW50Q2hhbmdlZCgpIHtcbiAgICAgICAgdGhpcy5zdHlsZXIudXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cIm1jLWJ1dHRvbi13cmFwcGVyXCIgKGNka09ic2VydmVDb250ZW50KT1cInByb2plY3RDb250ZW50Q2hhbmdlZCgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWMtYnV0dG9uLW92ZXJsYXlcIiAoY2xpY2spPVwiaGFsdERpc2FibGVkRXZlbnRzKCRldmVudClcIj48L2Rpdj5cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFFVixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFDVCxlQUFlLEVBRWYsUUFBUSxFQUNSLEtBQUssRUFBRSxVQUFVLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsYUFBYSxFQUtoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUdqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHFCQUFxQixDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHNCQUFzQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBZSxFQUFVLEVBQUU7SUFDL0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElB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O0lBQ25FLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDOzt3SEF0RVEsUUFBUTs0R0FBUixRQUFRLDZTQ2xJckIsNE1BSUE7MkZEOEhhLFFBQVE7a0JBZnBCLFNBQVM7K0JBQ0ksYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxRQUN2Qjt3QkFDRixpQkFBaUIsRUFBRSxrQkFBa0I7d0JBQ3JDLGlCQUFpQixFQUFFLFVBQVU7d0JBRTdCLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLFFBQVEsRUFBRSxVQUFVO3FCQUN2Qjt5SkFNRyxRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFJlbmRlcmVyMixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgU2tpcFNlbGYsXG4gICAgSW5wdXQsIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIG1peGluQ29sb3IsXG4gICAgbWl4aW5UYWJJbmRleCxcbiAgICBDYW5Db2xvcixcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkNvbG9yQ3RvcixcbiAgICBIYXNUYWJJbmRleEN0b3Jcbn0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2NvcmUnO1xuaW1wb3J0IHsgTWNJY29uIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2ljb24nO1xuXG5cbmV4cG9ydCBjb25zdCBsZWZ0SWNvbkNsYXNzTmFtZSA9ICdtYy1pY29uX2xlZnQnO1xuZXhwb3J0IGNvbnN0IHJpZ2h0SWNvbkNsYXNzTmFtZSA9ICdtYy1pY29uX3JpZ2h0JztcblxuZXhwb3J0IGNvbnN0IGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lID0gJ21jLWljb24tYnV0dG9uX2xlZnQnO1xuZXhwb3J0IGNvbnN0IGJ1dHRvblJpZ2h0SWNvbkNsYXNzTmFtZSA9ICdtYy1pY29uLWJ1dHRvbl9yaWdodCc7XG5cbmV4cG9ydCBjb25zdCBnZXROb2Rlc1dpdGhvdXRDb21tZW50cyA9IChub2RlczogTm9kZUxpc3QpOiBOb2RlW10gPT4ge1xuICAgIGNvbnN0IENPTU1FTlRfTk9ERSA9IDg7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShub2RlcykuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vZGVUeXBlICE9PSBDT01NRU5UX05PREUpO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbWMtYnV0dG9uXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLm1jLWJ1dHRvbl0nOiAnIWlzSWNvbkJ1dHRvbicsXG4gICAgICAgICdbY2xhc3MubWMtaWNvbi1idXR0b25dJzogJ2lzSWNvbkJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jQnV0dG9uQ3NzU3R5bGVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQENvbnRlbnRDaGlsZHJlbigoZm9yd2FyZFJlZigoKSA9PiBNY0ljb24pKSkgaWNvbnM6IFF1ZXJ5TGlzdDxNY0ljb24+O1xuXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBpc0ljb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQFNraXBTZWxmKCkgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uTGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5pY29ucy5tYXAoKGl0ZW0pID0+IGl0ZW0uZ2V0SG9zdEVsZW1lbnQoKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChpY29uSG9zdEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCByaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdHdvSWNvbnMgPSAyO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzID0gZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1jLWJ1dHRvbi13cmFwcGVyJykhLmNoaWxkTm9kZXMgYXMgTm9kZUxpc3RcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgPSAhIXRoaXMuaWNvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLmljb25zLmxlbmd0aCA9PT0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggJiYgdGhpcy5pY29ucy5sZW5ndGggPD0gdHdvSWNvbnM7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZSAhPT0gdGhpcy5pc0ljb25CdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuaXNJY29uQnV0dG9uID0gY3VycmVudElzSWNvbkJ1dHRvblZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaWNvbnMubGVuZ3RoICYmIGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5pY29ucy5tYXAoKGl0ZW0pID0+IGl0ZW0uZ2V0SG9zdEVsZW1lbnQoKSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoaWNvbkhvc3RFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25JbmRleCA9IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGUpID0+IG5vZGUgPT09IGljb25Ib3N0RWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCBsZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uTGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25JbmRleCA9PT0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb25Ib3N0RWxlbWVudCwgcmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBidXR0b25SaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY2xhc3MgTWNCdXR0b25CYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBNY0J1dHRvbk1peGluQmFzZTogSGFzVGFiSW5kZXhDdG9yICYgQ2FuQ29sb3JDdG9yICZcbiAgICB0eXBlb2YgTWNCdXR0b25CYXNlID0gbWl4aW5UYWJJbmRleChtaXhpbkNvbG9yKE1jQnV0dG9uQmFzZSkpO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW21jLWJ1dHRvbl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbnB1dHM6IFsnY29sb3InLCAndGFiSW5kZXgnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgICAgICdbYXR0ci50YWJJbmRleF0nOiAndGFiSW5kZXgnLFxuXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXMoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnb25CbHVyKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBNY0J1dHRvbiBleHRlbmRzIE1jQnV0dG9uTWl4aW5CYXNlIGltcGxlbWVudHMgT25EZXN0cm95LCBDYW5EaXNhYmxlLCBDYW5Db2xvciB7XG4gICAgaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zdG9wRm9jdXNNb25pdG9yKCkgOiB0aGlzLnJ1bkZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLCBwcml2YXRlIHN0eWxlcjogTWNCdXR0b25Dc3NTdHlsZXIpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZik7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1cygkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldEhvc3RFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzVmlhS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSwgJ2tleWJvYXJkJyk7XG4gICAgfVxuXG4gICAgaGFsdERpc2FibGVkRXZlbnRzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9qZWN0Q29udGVudENoYW5nZWQoKSB7XG4gICAgICAgIHRoaXMuc3R5bGVyLnVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJtYy1idXR0b24td3JhcHBlclwiIChjZGtPYnNlcnZlQ29udGVudCk9XCJwcm9qZWN0Q29udGVudENoYW5nZWQoKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1jLWJ1dHRvbi1vdmVybGF5XCIgKGNsaWNrKT1cImhhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpXCI+PC9kaXY+XG4iXX0=
@@ -255,7 +255,7 @@ export class McCheckbox extends McCheckboxMixinBase {
255
255
  }
256
256
  }
257
257
  /** @nocollapse */ McCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCheckbox, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: MC_CHECKBOX_CLICK_ACTION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
258
- /** @nocollapse */ McCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCheckbox, selector: "mc-checkbox", inputs: { color: "color", tabIndex: "tabIndex", id: "id", labelPosition: "labelPosition", name: "name", value: "value", required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.mc-indeterminate": "indeterminate", "class.mc-checked": "checked", "class.mc-disabled": "disabled", "class.mc-checkbox-label-before": "labelPosition == \"before\"" }, classAttribute: "mc-checkbox" }, providers: [MC_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcCheckbox"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"mc-checkbox-layout\" #label>\n <div class=\"mc-checkbox-inner-container\"\n [class.mc-checkbox-inner-container-no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"mc-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"mc-checkbox-frame\">\n <i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n <div class=\"mc-checkbox-overlay\"></div>\n </div>\n\n <div class=\"mc-checkbox__text-container\">\n <span class=\"mc-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n</label>\n", styles: [".mc-checkbox-frame{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);box-sizing:border-box;pointer-events:none}.mc-checkbox-checkmark,.mc-checkbox-mixedmark{display:none;position:absolute;inset:-1px 0 0 -1px}.mc-checkbox-frame{background-color:transparent;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;box-shadow:var(--mc-checkbox-size-toggle-box-shadow, inset 0 0 1px 0 rgba(0, 0, 0, .2))}.mc-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.mc-checkbox.mc-checked .mc-checkbox-checkmark{display:block}.mc-checkbox.mc-checked .mc-checkbox-mixedmark,.mc-checkbox.mc-indeterminate .mc-checkbox-checkmark{display:none}.mc-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:block}.mc-checkbox.mc-disabled{cursor:default}.mc-checkbox.mc-disabled .mc-checkbox-frame{box-shadow:none}.mc-checkbox-layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px));vertical-align:top}.mc-checkbox-inner-container{display:inline-block;position:absolute;top:2px;left:0;height:var(--mc-checkbox-size-width, 16px);width:var(--mc-checkbox-size-width, 16px)}.mc-checkbox-overlay{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);background:transparent}.mc-checkbox__text-container{display:flex;flex-direction:column}.mc-checkbox__text-container .mc-hint{margin-top:2px}.mc-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mc-checkbox-label-before .mc-checkbox-layout{padding-left:0;padding-right:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px))}.mc-checkbox-label-before .mc-checkbox-inner-container{right:0;left:unset}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
258
+ /** @nocollapse */ McCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCheckbox, selector: "mc-checkbox", inputs: { color: "color", tabIndex: "tabIndex", id: "id", labelPosition: "labelPosition", name: "name", value: "value", required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.mc-indeterminate": "indeterminate", "class.mc-checked": "checked", "class.mc-disabled": "disabled", "class.mc-checkbox-label-before": "labelPosition == \"before\"" }, classAttribute: "mc-checkbox" }, providers: [MC_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcCheckbox"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"mc-checkbox-layout\" #label>\n <div class=\"mc-checkbox-inner-container\"\n [class.mc-checkbox-inner-container-no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"mc-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"mc-checkbox-frame\">\n <i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n <div class=\"mc-checkbox-overlay\"></div>\n </div>\n\n <div class=\"mc-checkbox__text-container\">\n <span class=\"mc-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n</label>\n", styles: [".mc-checkbox-frame{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);box-sizing:border-box;pointer-events:none}.mc-checkbox-checkmark,.mc-checkbox-mixedmark{display:none}.mc-checkbox-frame{display:flex;align-items:center;justify-content:center;background-color:transparent;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;box-shadow:var(--mc-checkbox-size-toggle-box-shadow, inset 0 0 1px 0 rgba(0, 0, 0, .2))}.mc-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.mc-checkbox.mc-checked .mc-checkbox-checkmark{display:block}.mc-checkbox.mc-checked .mc-checkbox-mixedmark,.mc-checkbox.mc-indeterminate .mc-checkbox-checkmark{display:none}.mc-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:block}.mc-checkbox.mc-disabled{cursor:default}.mc-checkbox.mc-disabled .mc-checkbox-frame{box-shadow:none}.mc-checkbox-layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px));vertical-align:top}.mc-checkbox-inner-container{display:inline-block;position:absolute;top:2px;left:0;height:var(--mc-checkbox-size-width, 16px);width:var(--mc-checkbox-size-width, 16px)}.mc-checkbox-overlay{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);background:transparent}.mc-checkbox__text-container{display:flex;flex-direction:column}.mc-checkbox__text-container .mc-hint{margin-top:2px}.mc-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mc-checkbox-label-before .mc-checkbox-layout{padding-left:0;padding-right:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px))}.mc-checkbox-label-before .mc-checkbox-inner-container{right:0;left:unset}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
259
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCheckbox, decorators: [{
260
260
  type: Component,
261
261
  args: [{ selector: 'mc-checkbox', exportAs: 'mcCheckbox', host: {
@@ -267,7 +267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
267
267
  '[class.mc-checked]': 'checked',
268
268
  '[class.mc-disabled]': 'disabled',
269
269
  '[class.mc-checkbox-label-before]': 'labelPosition == "before"'
270
- }, providers: [MC_CHECKBOX_CONTROL_VALUE_ACCESSOR], inputs: ['color', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"inputId\" class=\"mc-checkbox-layout\" #label>\n <div class=\"mc-checkbox-inner-container\"\n [class.mc-checkbox-inner-container-no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"mc-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"mc-checkbox-frame\">\n <i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n <div class=\"mc-checkbox-overlay\"></div>\n </div>\n\n <div class=\"mc-checkbox__text-container\">\n <span class=\"mc-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n</label>\n", styles: [".mc-checkbox-frame{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);box-sizing:border-box;pointer-events:none}.mc-checkbox-checkmark,.mc-checkbox-mixedmark{display:none;position:absolute;inset:-1px 0 0 -1px}.mc-checkbox-frame{background-color:transparent;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;box-shadow:var(--mc-checkbox-size-toggle-box-shadow, inset 0 0 1px 0 rgba(0, 0, 0, .2))}.mc-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.mc-checkbox.mc-checked .mc-checkbox-checkmark{display:block}.mc-checkbox.mc-checked .mc-checkbox-mixedmark,.mc-checkbox.mc-indeterminate .mc-checkbox-checkmark{display:none}.mc-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:block}.mc-checkbox.mc-disabled{cursor:default}.mc-checkbox.mc-disabled .mc-checkbox-frame{box-shadow:none}.mc-checkbox-layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px));vertical-align:top}.mc-checkbox-inner-container{display:inline-block;position:absolute;top:2px;left:0;height:var(--mc-checkbox-size-width, 16px);width:var(--mc-checkbox-size-width, 16px)}.mc-checkbox-overlay{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);background:transparent}.mc-checkbox__text-container{display:flex;flex-direction:column}.mc-checkbox__text-container .mc-hint{margin-top:2px}.mc-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mc-checkbox-label-before .mc-checkbox-layout{padding-left:0;padding-right:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px))}.mc-checkbox-label-before .mc-checkbox-inner-container{right:0;left:unset}\n"] }]
270
+ }, providers: [MC_CHECKBOX_CONTROL_VALUE_ACCESSOR], inputs: ['color', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"inputId\" class=\"mc-checkbox-layout\" #label>\n <div class=\"mc-checkbox-inner-container\"\n [class.mc-checkbox-inner-container-no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"mc-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"mc-checkbox-frame\">\n <i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n <div class=\"mc-checkbox-overlay\"></div>\n </div>\n\n <div class=\"mc-checkbox__text-container\">\n <span class=\"mc-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n</label>\n", styles: [".mc-checkbox-frame{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);box-sizing:border-box;pointer-events:none}.mc-checkbox-checkmark,.mc-checkbox-mixedmark{display:none}.mc-checkbox-frame{display:flex;align-items:center;justify-content:center;background-color:transparent;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;box-shadow:var(--mc-checkbox-size-toggle-box-shadow, inset 0 0 1px 0 rgba(0, 0, 0, .2))}.mc-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.mc-checkbox.mc-checked .mc-checkbox-checkmark{display:block}.mc-checkbox.mc-checked .mc-checkbox-mixedmark,.mc-checkbox.mc-indeterminate .mc-checkbox-checkmark{display:none}.mc-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:block}.mc-checkbox.mc-disabled{cursor:default}.mc-checkbox.mc-disabled .mc-checkbox-frame{box-shadow:none}.mc-checkbox-layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px));vertical-align:top}.mc-checkbox-inner-container{display:inline-block;position:absolute;top:2px;left:0;height:var(--mc-checkbox-size-width, 16px);width:var(--mc-checkbox-size-width, 16px)}.mc-checkbox-overlay{inset:0;position:absolute;border-radius:var(--mc-checkbox-size-border-radius, 4px);background:transparent}.mc-checkbox__text-container{display:flex;flex-direction:column}.mc-checkbox__text-container .mc-hint{margin-top:2px}.mc-checkbox-inner-container-no-side-margin{margin-left:0;margin-right:0}.mc-checkbox-label-before .mc-checkbox-layout{padding-left:0;padding-right:calc(var(--mc-checkbox-size-width, 16px) + var(--mc-checkbox-size-label-margin, 8px))}.mc-checkbox-label-before .mc-checkbox-inner-container{right:0;left:unset}\n"] }]
271
271
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
272
272
  type: Optional
273
273
  }, {
@@ -33,7 +33,7 @@ export class McActionBarComponent {
33
33
  }
34
34
  }
35
35
  /** @nocollapse */ McActionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- /** @nocollapse */ McActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McActionBarComponent, selector: "mc-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.mc-code-block-actionbar_less-contrast": "lessContrast" }, classAttribute: "mc-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<button mc-button\n class=\"mc-icon-button mc-button_transparent\"\n *ngIf=\"multiLine\"\n [mcTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" mc-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" mc-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n [mcTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i mc-icon=\"mc-download_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n #copyTooltip=\"mcTooltip\"\n [mcTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i mc-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [mcTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i mc-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".mc-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:4px;right:8px;gap:0;border-radius:4px}.mc-code-block-actionbar.mc-actionbar-block_floating{top:6px;right:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i2.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i3.McTooltipTrigger, selector: "[mcTooltip]", inputs: ["mcVisible", "mcPlacement", "mcPlacementPriority", "mcTooltip", "mcTooltipDisabled", "mcEnterDelay", "mcLeaveDelay", "mcTrigger", "mcTooltipClass"], outputs: ["mcPlacementChange", "mcVisibleChange"], exportAs: ["mcTooltip"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
36
+ /** @nocollapse */ McActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McActionBarComponent, selector: "mc-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.mc-code-block-actionbar_less-contrast": "lessContrast" }, classAttribute: "mc-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<button mc-button\n class=\"mc-icon-button mc-button_transparent\"\n *ngIf=\"multiLine\"\n [mcTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" mc-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" mc-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n [mcTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i mc-icon=\"mc-download_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n #copyTooltip=\"mcTooltip\"\n [mcTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i mc-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button mc-button\n class=\"mc-button_transparent\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [mcTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i mc-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".mc-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:4px;right:8px;gap:0;border-radius:4px}.mc-code-block-actionbar.mc-actionbar-block_floating{top:6px;right:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i2.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i3.McTooltipTrigger, selector: "[mcTooltip]", inputs: ["mcVisible", "mcPlacement", "mcPlacementPriority", "mcTooltip", "mcTooltipDisabled", "mcEnterDelay", "mcLeaveDelay", "mcTrigger", "mcTooltipClass", "mcTooltipContext"], outputs: ["mcPlacementChange", "mcVisibleChange"], exportAs: ["mcTooltip"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McActionBarComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'mc-actionbar-block', host: {