@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
@@ -21,7 +21,7 @@ import { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';
21
21
  import { ESCAPE, SPACE, HOME, END, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, TAB, PAGE_UP, PAGE_DOWN, A } from '@ptsecurity/cdk/keycodes';
22
22
  import { McInput } from '@ptsecurity/mosaic/input';
23
23
  import { Subscription, Subject, defer, merge, BehaviorSubject } from 'rxjs';
24
- import { take, switchMap, filter, map, distinctUntilChanged, takeUntil, startWith } from 'rxjs/operators';
24
+ import { switchMap, take, filter, map, distinctUntilChanged, takeUntil, startWith, tap } from 'rxjs/operators';
25
25
  import * as i4 from '@angular/forms';
26
26
 
27
27
  class McOptionTooltip extends McTooltipTrigger {
@@ -61,16 +61,28 @@ class McOptionTooltip extends McTooltipTrigger {
61
61
  this.resizeObserver.unobserve(this.textElement);
62
62
  this.disabled = true;
63
63
  }
64
+ onFocus() {
65
+ this.disabled = !this.isOverflown;
66
+ if (!this.disabled) {
67
+ this.show();
68
+ }
69
+ }
70
+ onBlur() {
71
+ this.disabled = true;
72
+ this.hide();
73
+ }
64
74
  }
65
75
  /** @nocollapse */ McOptionTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McOptionTooltip, deps: [{ token: i2.McOption }, { token: i2$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i3.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
66
- /** @nocollapse */ McOptionTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: McOptionTooltip, selector: "mc-option", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, usesInheritance: true, ngImport: i0 });
76
+ /** @nocollapse */ McOptionTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: McOptionTooltip, selector: "mc-option", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" } }, usesInheritance: true, ngImport: i0 });
67
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McOptionTooltip, decorators: [{
68
78
  type: Directive,
69
79
  args: [{
70
80
  selector: 'mc-option',
71
81
  host: {
72
82
  '(mouseenter)': 'onMouseEnter()',
73
- '(mouseleave)': 'onMouseLeave()'
83
+ '(mouseleave)': 'onMouseLeave()',
84
+ '(focus)': 'onFocus()',
85
+ '(blur)': 'onBlur()'
74
86
  }
75
87
  }]
76
88
  }], ctorParameters: function () {
@@ -93,10 +105,13 @@ class McSelectChange {
93
105
  class McSelectFooter {
94
106
  }
95
107
  /** @nocollapse */ McSelectFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McSelectFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
96
- /** @nocollapse */ McSelectFooter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: McSelectFooter, selector: "mc-select-footer", host: { classAttribute: "mc-select__footer" }, ngImport: i0 });
108
+ /** @nocollapse */ McSelectFooter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: McSelectFooter, selector: "mc-select-footer, [mc-select-footer]", host: { classAttribute: "mc-select__footer" }, ngImport: i0 });
97
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McSelectFooter, decorators: [{
98
110
  type: Directive,
99
- args: [{ selector: 'mc-select-footer', host: { class: 'mc-select__footer' } }]
111
+ args: [{
112
+ selector: 'mc-select-footer, [mc-select-footer]',
113
+ host: { class: 'mc-select__footer' }
114
+ }]
100
115
  }] });
101
116
  class McSelectSearch {
102
117
  constructor(formField) {
@@ -254,7 +269,7 @@ class McSelect extends McSelectMixinBase {
254
269
  /** Combined stream of all of the child options' change events. */
255
270
  this.optionSelectionChanges = defer(() => {
256
271
  if (this.options) {
257
- return merge(...this.options.map((option) => option.onSelectionChange), ...this.selectionModel.selected.map((option) => option.onSelectionChange));
272
+ return merge(...this.options.map((option) => option.onSelectionChange), ...this.selectionModel.selected.map((option) => option.onSelectionChange), this.options.changes.pipe(switchMap((list) => merge(...list.map((option) => option.onSelectionChange)))));
258
273
  }
259
274
  return this._ngZone.onStable
260
275
  .asObservable()
@@ -362,8 +377,11 @@ class McSelect extends McSelectMixinBase {
362
377
  }
363
378
  set value(newValue) {
364
379
  if (newValue !== this._value) {
365
- this.writeValue(newValue);
380
+ if (this.options) {
381
+ this.setSelectionByValue(newValue);
382
+ }
366
383
  this._value = newValue;
384
+ this.valueChange.emit(this.value);
367
385
  }
368
386
  }
369
387
  get id() {
@@ -514,8 +532,11 @@ class McSelect extends McSelectMixinBase {
514
532
  }
515
533
  /** Opens the overlay panel. */
516
534
  open() {
517
- var _a;
518
- if (this.disabled || !((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) || this.panelOpen) {
535
+ var _a, _b;
536
+ if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) && !this.footer) {
537
+ console.warn(`this.options.length: 0 and no footer, nothing to show.`);
538
+ }
539
+ if (this.disabled || (!((_b = this.options) === null || _b === void 0 ? void 0 : _b.length) && !this.footer) || this.panelOpen) {
519
540
  return;
520
541
  }
521
542
  this.triggerRect = this.trigger.nativeElement.getBoundingClientRect();
@@ -555,9 +576,8 @@ class McSelect extends McSelectMixinBase {
555
576
  * @param value New value to be written to the model.
556
577
  */
557
578
  writeValue(value) {
558
- if (this.options) {
559
- this.setSelectionByValue(value);
560
- }
579
+ this.value = value;
580
+ this._changeDetectorRef.markForCheck();
561
581
  }
562
582
  /**
563
583
  * Saves a callback function to be invoked when the select's value
@@ -698,7 +718,9 @@ class McSelect extends McSelectMixinBase {
698
718
  }
699
719
  closingActions() {
700
720
  return merge(this.overlayDir.overlayRef.outsidePointerEvents()
701
- .pipe(filter((event) => !this.elementRef.nativeElement.contains(event.target))), this.overlayDir.overlayRef.detachments());
721
+ .pipe(filter((event) => !this.elementRef.nativeElement.contains(event.target)),
722
+ // used for calling toggle on select from outside of component
723
+ tap((event) => event.stopPropagation())), this.overlayDir.overlayRef.detachments());
702
724
  }
703
725
  getHeightOfOptionsContainer() {
704
726
  return this.optionsContainer.nativeElement.getClientRects()[0].height;
@@ -805,7 +827,7 @@ class McSelect extends McSelectMixinBase {
805
827
  });
806
828
  }
807
829
  /**
808
- * Sets the selected option based on a value. If no option can be
830
+ * Sets the selected option based on a value and updates triggerValue(s). If no option can be
809
831
  * found with the designated value, the select trigger is cleared.
810
832
  */
811
833
  setSelectionByValue(value) {
@@ -1097,22 +1119,22 @@ class McSelect extends McSelectMixinBase {
1097
1119
  }
1098
1120
  }
1099
1121
  /** @nocollapse */ McSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.ErrorStateMatcher }, { token: i0.ElementRef }, { token: i3.Directionality, optional: true }, { token: i4.NgForm, optional: true }, { token: i4.FormGroupDirective, optional: true }, { token: i1.McFormField, optional: true }, { token: i4.NgControl, optional: true, self: true }, { token: MC_SELECT_SCROLL_STRATEGY }, { token: MC_LOCALE_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1100
- /** @nocollapse */ McSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McSelect, selector: "mc-select", inputs: { disabled: "disabled", tabIndex: "tabIndex", hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", hasBackdrop: "hasBackdrop", placeholder: "placeholder", required: "required", multiple: "multiple", compareWith: "compareWith", value: "value", id: "id", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()", "window:resize": "calculateHiddenItems()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.mc-disabled": "disabled", "class.mc-invalid": "errorState" }, classAttribute: "mc-select" }, providers: [
1122
+ /** @nocollapse */ McSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McSelect, selector: "mc-select", inputs: { disabled: "disabled", tabIndex: "tabIndex", hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", hasBackdrop: "hasBackdrop", placeholder: "placeholder", required: "required", multiple: "multiple", compareWith: "compareWith", value: "value", id: "id", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "click": "toggle()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()", "window:resize": "calculateHiddenItems()" }, properties: { "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.mc-disabled": "disabled", "class.mc-invalid": "errorState" }, classAttribute: "mc-select" }, providers: [
1101
1123
  { provide: McFormFieldControl, useExisting: McSelect },
1102
1124
  { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }
1103
- ], queries: [{ propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true }, { propertyName: "customTrigger", first: true, predicate: McSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: McSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["mcSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }, { propertyName: "options", predicate: McOption, descendants: true }, { propertyName: "optionGroups", predicate: McOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <div class=\"mc-select__matcher\" *ngSwitchCase=\"false\">\n <span class=\"mc-select__placeholder\" *ngIf=\"empty\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngIf=\"!empty\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"customTagTemplateRef\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger, [mc-select-trigger]\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-select-matcher, [mc-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"mc-select-footer,[mc-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.mc-select__matcher>span{flex:1;overflow:hidden}.mc-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer}.mc-select .mc-select__trigger .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-select__match-container{display:flex}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px);border:var(--mc-option-size-border-width, 2px) solid transparent}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:calc(var(--mc-form-field-size-height, 32px) - 4px);height:calc(var(--mc-form-field-size-height, 32px) - 4px)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-select__panel .mc-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:4px 12px;border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:hidden auto}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px);max-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px)}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i7.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i7.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i8.McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["mcTag"] }, { kind: "directive", type: i8.McTagRemove, selector: "[mcTagRemove]" }], animations: [
1125
+ ], queries: [{ propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true }, { propertyName: "customTrigger", first: true, predicate: McSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: McSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["mcSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: McSelectFooter, descendants: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }, { propertyName: "options", predicate: McOption, descendants: true }, { propertyName: "optionGroups", predicate: McOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-select__matcher\" *ngSwitchCase=\"false\">\n <span class=\"mc-select__placeholder\" *ngIf=\"empty\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngIf=\"!empty\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"customTagTemplateRef\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger, [mc-select-trigger]\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-select-matcher, [mc-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"mc-select-footer,[mc-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.mc-select__matcher>span{flex:1;overflow:hidden}.mc-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer}.mc-select .mc-select__trigger .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-select__match-container{display:flex}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px);border:var(--mc-option-size-border-width, 2px) solid transparent}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:calc(var(--mc-form-field-size-height, 32px) - 4px);height:calc(var(--mc-form-field-size-height, 32px) - 4px)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-select__panel .mc-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:4px 12px;border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:hidden auto}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px);max-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px)}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i7.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i7.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i8.McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["mcTag"] }, { kind: "directive", type: i8.McTagRemove, selector: "[mcTagRemove]" }], animations: [
1104
1126
  mcSelectAnimations.transformPanel,
1105
1127
  mcSelectAnimations.fadeInContent
1106
1128
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1107
1129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McSelect, decorators: [{
1108
1130
  type: Component,
1109
1131
  args: [{ selector: 'mc-select', exportAs: 'mcSelect', inputs: ['disabled', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
1110
- '[attr.id]': 'id',
1111
1132
  '[attr.tabindex]': 'tabIndex',
1112
1133
  '[attr.disabled]': 'disabled || null',
1113
1134
  class: 'mc-select',
1114
1135
  '[class.mc-disabled]': 'disabled',
1115
1136
  '[class.mc-invalid]': 'errorState',
1137
+ '(click)': 'toggle()',
1116
1138
  '(keydown)': 'handleKeydown($event)',
1117
1139
  '(focus)': 'onFocus()',
1118
1140
  '(blur)': 'onBlur()',
@@ -1123,7 +1145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1123
1145
  ], providers: [
1124
1146
  { provide: McFormFieldControl, useExisting: McSelect },
1125
1147
  { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }
1126
- ], template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <div class=\"mc-select__matcher\" *ngSwitchCase=\"false\">\n <span class=\"mc-select__placeholder\" *ngIf=\"empty\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngIf=\"!empty\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"customTagTemplateRef\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger, [mc-select-trigger]\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-select-matcher, [mc-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"mc-select-footer,[mc-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.mc-select__matcher>span{flex:1;overflow:hidden}.mc-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer}.mc-select .mc-select__trigger .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-select__match-container{display:flex}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px);border:var(--mc-option-size-border-width, 2px) solid transparent}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:calc(var(--mc-form-field-size-height, 32px) - 4px);height:calc(var(--mc-form-field-size-height, 32px) - 4px)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-select__panel .mc-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:4px 12px;border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:hidden auto}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px);max-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px)}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
1148
+ ], template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger\n [ngSwitch]=\"!!customMatcher\">\n\n <select class=\"cdk-visually-hidden\" [id]=\"id\"></select>\n\n <div class=\"mc-select__matcher\" *ngSwitchCase=\"false\">\n <span class=\"mc-select__placeholder\" *ngIf=\"empty\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngIf=\"!empty\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <ng-container *ngIf=\"!customTagTemplateRef\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\" mcTagRemove\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </ng-container>\n <ng-container *ngIf=\"customTagTemplateRef\">\n <ng-container *ngFor=\"let option of triggerValues\"\n [ngTemplateOutlet]=\"customTagTemplateRef\"\n [ngTemplateOutletContext]=\"{$implicit: option, select: this}\">\n </ng-container>\n </ng-container>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger, [mc-select-trigger]\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-S_16\"></i>\n </div>\n </div>\n\n <ng-content select=\"mc-select-matcher, [mc-select-matcher]\" *ngSwitchCase=\"true\"></ng-content>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content mc-scrollbar\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"mc-select-footer,[mc-select-footer]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;white-space:nowrap}.mc-select__matcher>span{flex:1;overflow:hidden}.mc-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);cursor:pointer}.mc-select .mc-select__trigger .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding, 12px) - var(--mc-form-field-size-border-width, 1px));padding-right:calc(var(--mc-select-size-right-padding, 6px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher{padding-left:calc(var(--mc-select-size-left-padding-multiple, 12px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-select__match-container{display:flex}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-select__matcher .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height, 32px);cursor:default;outline:none;padding-left:var(--mc-option-size-horizontal-padding, 10px);padding-right:var(--mc-option-size-horizontal-padding, 10px);border:var(--mc-option-size-border-width, 2px) solid transparent}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:calc(var(--mc-form-field-size-height, 32px) - 4px);height:calc(var(--mc-form-field-size-height, 32px) - 4px)}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__arrow-wrapper{display:flex;align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 4px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 4px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:var(--mc-option-size-height, 32px);height:var(--mc-option-size-height, 32px)}.mc-select__panel .mc-select__footer{display:flex;align-items:center;box-sizing:border-box;padding:4px 12px;border-top-width:1px;border-top-style:solid;min-height:var(--mc-list-size-footer-min-height, 48px)}.mc-select__content{max-height:var(--mc-select-panel-size-max-height, 232px);padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:hidden auto}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px);max-height:calc(var(--mc-select-panel-size-max-height, 232px) - 8px)}.mc-select__content:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
1127
1149
  }], ctorParameters: function () {
1128
1150
  return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i2.ErrorStateMatcher }, { type: i0.ElementRef }, { type: i3.Directionality, decorators: [{
1129
1151
  type: Optional
@@ -1176,6 +1198,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1176
1198
  }], cleaner: [{
1177
1199
  type: ContentChild,
1178
1200
  args: ['mcSelectCleaner', { static: true }]
1201
+ }], footer: [{
1202
+ type: ContentChild,
1203
+ args: [McSelectFooter, { static: false }]
1179
1204
  }], options: [{
1180
1205
  type: ContentChildren,
1181
1206
  args: [McOption, { descendants: true }]