cmat 0.0.86 → 0.0.88

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 (228) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +98 -80
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +26 -34
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +467 -556
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +270 -259
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +200 -116
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +85 -38
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-color-picker.mjs +841 -0
  16. package/fesm2022/cmat-components-color-picker.mjs.map +1 -0
  17. package/fesm2022/cmat-components-custom-formly.mjs +1395 -838
  18. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  19. package/fesm2022/cmat-components-data-picker.mjs +996 -0
  20. package/fesm2022/cmat-components-data-picker.mjs.map +1 -0
  21. package/fesm2022/cmat-components-date-range.mjs +310 -264
  22. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  23. package/fesm2022/cmat-components-date-time-display.mjs +16 -20
  24. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  25. package/fesm2022/cmat-components-drawer.mjs +120 -137
  26. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  27. package/fesm2022/cmat-components-empty-state.mjs +17 -24
  28. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  29. package/fesm2022/cmat-components-file-preview.mjs +18 -24
  30. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  31. package/fesm2022/cmat-components-filter-toolbar.mjs +30 -39
  32. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  33. package/fesm2022/cmat-components-form-actions.mjs +12 -12
  34. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  35. package/fesm2022/cmat-components-fullscreen.mjs +10 -10
  36. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  37. package/fesm2022/cmat-components-highlight.mjs +48 -41
  38. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  39. package/fesm2022/cmat-components-image-viewer.mjs +104 -107
  40. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  41. package/fesm2022/cmat-components-inline-loading.mjs +12 -15
  42. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  43. package/fesm2022/cmat-components-json-editor.mjs +118 -75
  44. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  45. package/fesm2022/cmat-components-knob-input.mjs +196 -178
  46. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  47. package/fesm2022/cmat-components-masonry.mjs +26 -41
  48. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  49. package/fesm2022/cmat-components-material-color-picker.mjs +81 -80
  50. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  51. package/fesm2022/cmat-components-material-datetimepicker.mjs +1212 -1287
  52. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  53. package/fesm2022/cmat-components-navigation.mjs +467 -450
  54. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  55. package/fesm2022/cmat-components-opt-input.mjs +143 -132
  56. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  57. package/fesm2022/cmat-components-org-chart.mjs +68 -83
  58. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  59. package/fesm2022/cmat-components-page-header.mjs +18 -24
  60. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  61. package/fesm2022/cmat-components-pagination.mjs +220 -136
  62. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  63. package/fesm2022/cmat-components-password-strength.mjs +262 -215
  64. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  65. package/fesm2022/cmat-components-popover.mjs +227 -195
  66. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  67. package/fesm2022/cmat-components-progress-bar.mjs +15 -34
  68. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  69. package/fesm2022/cmat-components-qrcode.mjs +95 -88
  70. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  71. package/fesm2022/cmat-components-rating.mjs +70 -67
  72. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  73. package/fesm2022/cmat-components-rich-text-editor.mjs +23 -26
  74. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-search.mjs +190 -159
  76. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  77. package/fesm2022/cmat-components-select-table.mjs +276 -213
  78. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  79. package/fesm2022/cmat-components-select-tree.mjs +178 -128
  80. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  81. package/fesm2022/cmat-components-skeleton.mjs +44 -28
  82. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  83. package/fesm2022/cmat-components-speed-dial.mjs +107 -163
  84. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  85. package/fesm2022/cmat-components-status-tag.mjs +29 -36
  86. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  87. package/fesm2022/cmat-components-table-toolbar.mjs +14 -18
  88. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  89. package/fesm2022/cmat-components-timeline.mjs +111 -118
  90. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  91. package/fesm2022/cmat-components-toast.mjs +65 -66
  92. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  93. package/fesm2022/cmat-components-transfer-picker.mjs +130 -160
  94. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  95. package/fesm2022/cmat-components-treetable.mjs +32 -39
  96. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  97. package/fesm2022/cmat-components-upload.mjs +186 -176
  98. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  99. package/fesm2022/cmat-directives-animate-on-scroll.mjs +25 -28
  100. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  101. package/fesm2022/cmat-directives-arrow-cursor.mjs +85 -92
  102. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  103. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  104. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  105. package/fesm2022/cmat-directives-data-exporter.mjs +49 -50
  106. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  107. package/fesm2022/cmat-directives-debounce.mjs +16 -19
  108. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  109. package/fesm2022/cmat-directives-digit-only.mjs +60 -69
  110. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  111. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  112. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  113. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +31 -30
  114. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  115. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  116. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  117. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  118. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  119. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  120. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  121. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  122. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  123. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  124. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  125. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  126. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  127. package/fesm2022/cmat-pipes-secure.mjs +7 -13
  128. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  129. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  130. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  131. package/fesm2022/cmat-services-alert.mjs +26 -27
  132. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  133. package/fesm2022/cmat-services-config.mjs +14 -23
  134. package/fesm2022/cmat-services-config.mjs.map +1 -1
  135. package/fesm2022/cmat-services-confirmation.mjs +8 -8
  136. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  137. package/fesm2022/cmat-services-data.mjs +6 -10
  138. package/fesm2022/cmat-services-data.mjs.map +1 -1
  139. package/fesm2022/cmat-services-export-as.mjs +3 -3
  140. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  141. package/fesm2022/cmat-services-loading.mjs +30 -47
  142. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  143. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  144. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  145. package/fesm2022/cmat-services-media-watcher.mjs +43 -34
  146. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  147. package/fesm2022/cmat-services-platform.mjs +3 -3
  148. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  149. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  150. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  151. package/fesm2022/cmat-services-title.mjs +3 -3
  152. package/fesm2022/cmat-services-title.mjs.map +1 -1
  153. package/fesm2022/cmat-services-translation.mjs +11 -11
  154. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  155. package/fesm2022/cmat-services-utils.mjs +4 -4
  156. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  157. package/fesm2022/cmat.mjs +9229 -7508
  158. package/fesm2022/cmat.mjs.map +1 -1
  159. package/icons/material-icons/heroicons-outline.svg +3 -0
  160. package/icons/material-icons/heroicons-solid.svg +3 -0
  161. package/package.json +10 -1
  162. package/styles/components/bundle.scss +21 -0
  163. package/styles/overrides/angular-material.scss +22 -1
  164. package/tailwind/plugins/theming.js +183 -183
  165. package/types/cmat-components-breadcrumb.d.ts +40 -37
  166. package/types/cmat-components-card.d.ts +11 -13
  167. package/types/cmat-components-carousel.d.ts +87 -113
  168. package/types/cmat-components-cascade.d.ts +84 -65
  169. package/types/cmat-components-chip-input.d.ts +29 -24
  170. package/types/cmat-components-code-editor.d.ts +28 -12
  171. package/types/cmat-components-color-picker.d.ts +236 -0
  172. package/types/cmat-components-custom-formly.d.ts +316 -184
  173. package/types/cmat-components-data-picker.d.ts +372 -0
  174. package/types/cmat-components-date-range.d.ts +31 -36
  175. package/types/cmat-components-date-time-display.d.ts +8 -8
  176. package/types/cmat-components-drawer.d.ts +30 -32
  177. package/types/cmat-components-empty-state.d.ts +9 -10
  178. package/types/cmat-components-file-preview.d.ts +9 -9
  179. package/types/cmat-components-filter-toolbar.d.ts +15 -15
  180. package/types/cmat-components-form-actions.d.ts +5 -5
  181. package/types/cmat-components-fullscreen.d.ts +5 -5
  182. package/types/cmat-components-highlight.d.ts +13 -14
  183. package/types/cmat-components-image-viewer.d.ts +29 -33
  184. package/types/cmat-components-inline-loading.d.ts +6 -6
  185. package/types/cmat-components-json-editor.d.ts +15 -17
  186. package/types/cmat-components-knob-input.d.ts +58 -55
  187. package/types/cmat-components-masonry.d.ts +9 -12
  188. package/types/cmat-components-material-color-picker.d.ts +16 -21
  189. package/types/cmat-components-material-datetimepicker.d.ts +174 -216
  190. package/types/cmat-components-navigation.d.ts +34 -39
  191. package/types/cmat-components-opt-input.d.ts +35 -33
  192. package/types/cmat-components-org-chart.d.ts +8 -9
  193. package/types/cmat-components-page-header.d.ts +9 -9
  194. package/types/cmat-components-pagination.d.ts +36 -40
  195. package/types/cmat-components-password-strength.d.ts +58 -64
  196. package/types/cmat-components-popover.d.ts +22 -32
  197. package/types/cmat-components-progress-bar.d.ts +7 -10
  198. package/types/cmat-components-qrcode.d.ts +22 -22
  199. package/types/cmat-components-rating.d.ts +17 -19
  200. package/types/cmat-components-rich-text-editor.d.ts +11 -12
  201. package/types/cmat-components-select-search.d.ts +48 -36
  202. package/types/cmat-components-select-table.d.ts +38 -34
  203. package/types/cmat-components-select-tree.d.ts +17 -15
  204. package/types/cmat-components-skeleton.d.ts +27 -10
  205. package/types/cmat-components-speed-dial.d.ts +24 -33
  206. package/types/cmat-components-status-tag.d.ts +19 -9
  207. package/types/cmat-components-table-toolbar.d.ts +7 -7
  208. package/types/cmat-components-timeline.d.ts +33 -34
  209. package/types/cmat-components-toast.d.ts +26 -30
  210. package/types/cmat-components-transfer-picker.d.ts +51 -56
  211. package/types/cmat-components-treetable.d.ts +12 -13
  212. package/types/cmat-components-upload.d.ts +33 -38
  213. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  214. package/types/cmat-directives-animate-on-scroll.d.ts +7 -7
  215. package/types/cmat-directives-arrow-cursor.d.ts +18 -20
  216. package/types/cmat-directives-data-exporter.d.ts +10 -10
  217. package/types/cmat-directives-debounce.d.ts +5 -5
  218. package/types/cmat-directives-digit-only.d.ts +13 -13
  219. package/types/cmat-directives-seamless-auto-scroll.d.ts +7 -7
  220. package/types/cmat-pipes-secure.d.ts +1 -3
  221. package/types/cmat-services-alert.d.ts +11 -12
  222. package/types/cmat-services-config.d.ts +2 -7
  223. package/types/cmat-services-confirmation.d.ts +2 -2
  224. package/types/cmat-services-data.d.ts +0 -1
  225. package/types/cmat-services-loading.d.ts +14 -22
  226. package/types/cmat-services-media-watcher.d.ts +5 -5
  227. package/types/cmat-services-translation.d.ts +4 -5
  228. package/types/cmat.d.ts +2167 -1746
@@ -1,8 +1,8 @@
1
1
  import { ViewportRuler } from '@angular/cdk/scrolling';
2
2
  import { NgClass, AsyncPipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Directive, EventEmitter, inject, DestroyRef, signal, ElementRef, forwardRef, HostBinding, ContentChild, ViewChild, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
5
- import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { InjectionToken, Directive, output, viewChild, contentChild, input, inject, DestroyRef, signal, computed, effect, forwardRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
6
  import * as i5 from '@angular/forms';
7
7
  import { FormControl, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
8
8
  import * as i7 from '@angular/material/button';
@@ -20,8 +20,7 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
20
20
  import { MatSelect } from '@angular/material/select';
21
21
  import * as i3 from '@angular/material/tooltip';
22
22
  import { MatTooltipModule } from '@angular/material/tooltip';
23
- import { of, combineLatest } from 'rxjs';
24
- import { switchMap, map, startWith, tap, delay, take, filter } from 'rxjs/operators';
23
+ import { startWith, debounceTime, delay, take, filter, tap } from 'rxjs/operators';
25
24
 
26
25
  const configurableDefaultOptions = [
27
26
  'ariaLabel',
@@ -38,10 +37,10 @@ const configurableDefaultOptions = [
38
37
  const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken('mat-selectsearch-default-options');
39
38
 
40
39
  class CmatSelectNoEntriesFoundDirective {
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.10", type: CmatSelectNoEntriesFoundDirective, isStandalone: true, selector: "[cmatSelectNoEntriesFound]", ngImport: i0 }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatSelectNoEntriesFoundDirective, isStandalone: true, selector: "[cmatSelectNoEntriesFound]", ngImport: i0 }); }
43
42
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, decorators: [{
45
44
  type: Directive,
46
45
  args: [{
47
46
  selector: '[cmatSelectNoEntriesFound]'
@@ -49,10 +48,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
49
48
  }] });
50
49
 
51
50
  class CmatSelectSearchClearDirective {
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectSearchClearDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.10", type: CmatSelectSearchClearDirective, isStandalone: true, selector: "[cmatSelectSearchClear]", ngImport: i0 }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectSearchClearDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
52
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatSelectSearchClearDirective, isStandalone: true, selector: "[cmatSelectSearchClear]", ngImport: i0 }); }
54
53
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectSearchClearDirective, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectSearchClearDirective, decorators: [{
56
55
  type: Directive,
57
56
  args: [{
58
57
  selector: '[cmatSelectSearchClear]'
@@ -62,53 +61,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
62
61
  const SELECT_PANEL_MAX_HEIGHT = 256;
63
62
  class CmatSelectSearchComponent {
64
63
  constructor() {
65
- this.placeholderLabel = '搜索';
66
- this.type = 'text';
67
- this.noEntriesFoundLabel = '无结果';
68
- this.showNoFoundLabel = true;
69
- this.clearSearchInput = true;
70
- this.searching = false;
71
- this.disableInitialFocus = false;
72
- this.enableClearOnEscapePressed = false;
73
- this.preventHomeEndKeyPropagation = false;
74
- this.disableScrollToActiveOnOptionsChanged = false;
75
- this.ariaLabel = '下拉搜索';
76
- this.showToggleAllCheckbox = false;
77
- this.toggleAllCheckboxChecked = false;
78
- this.toggleAllCheckboxIndeterminate = false;
79
- this.toggleAllCheckboxTooltipMessage = '';
80
- this.toggleAllCheckboxTooltipPosition = 'below';
81
- this.hideClearSearchButton = false;
82
- this.alwaysRestoreSelectedOptionsMulti = false;
83
- this.toggleAll = new EventEmitter();
64
+ this.toggleAll = output();
65
+ this.searchSelectInput = viewChild.required('searchSelectInput');
66
+ this.innerSelectSearch = viewChild.required('innerSelectSearch');
67
+ this.clearIcon = contentChild(CmatSelectSearchClearDirective, /* @ts-ignore */
68
+ ...(ngDevMode ? [{ debugName: "clearIcon" }] : /* istanbul ignore next */ []));
69
+ this.noEntriesFound = contentChild(CmatSelectNoEntriesFoundDirective, /* @ts-ignore */
70
+ ...(ngDevMode ? [{ debugName: "noEntriesFound" }] : /* istanbul ignore next */ []));
84
71
  this.formControl = new FormControl('');
72
+ this.placeholderLabel = input('搜索', /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "placeholderLabel" }] : /* istanbul ignore next */ []));
74
+ this.type = input('text', /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
76
+ this.noEntriesFoundLabel = input('无结果', /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "noEntriesFoundLabel" }] : /* istanbul ignore next */ []));
78
+ this.showNoFoundLabel = input(true, /* @ts-ignore */
79
+ ...(ngDevMode ? [{ debugName: "showNoFoundLabel" }] : /* istanbul ignore next */ []));
80
+ this.clearSearchInput = input(true, /* @ts-ignore */
81
+ ...(ngDevMode ? [{ debugName: "clearSearchInput" }] : /* istanbul ignore next */ []));
82
+ this.searching = input(false, /* @ts-ignore */
83
+ ...(ngDevMode ? [{ debugName: "searching" }] : /* istanbul ignore next */ []));
84
+ this.disableInitialFocus = input(false, /* @ts-ignore */
85
+ ...(ngDevMode ? [{ debugName: "disableInitialFocus" }] : /* istanbul ignore next */ []));
86
+ this.enableClearOnEscapePressed = input(false, /* @ts-ignore */
87
+ ...(ngDevMode ? [{ debugName: "enableClearOnEscapePressed" }] : /* istanbul ignore next */ []));
88
+ this.preventHomeEndKeyPropagation = input(false, /* @ts-ignore */
89
+ ...(ngDevMode ? [{ debugName: "preventHomeEndKeyPropagation" }] : /* istanbul ignore next */ []));
90
+ this.disableScrollToActiveOnOptionsChanged = input(false, /* @ts-ignore */
91
+ ...(ngDevMode ? [{ debugName: "disableScrollToActiveOnOptionsChanged" }] : /* istanbul ignore next */ []));
92
+ this.ariaLabel = input('下拉搜索', /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
94
+ this.showToggleAllCheckbox = input(false, /* @ts-ignore */
95
+ ...(ngDevMode ? [{ debugName: "showToggleAllCheckbox" }] : /* istanbul ignore next */ []));
96
+ this.toggleAllCheckboxChecked = input(false, /* @ts-ignore */
97
+ ...(ngDevMode ? [{ debugName: "toggleAllCheckboxChecked" }] : /* istanbul ignore next */ []));
98
+ this.toggleAllCheckboxIndeterminate = input(false, /* @ts-ignore */
99
+ ...(ngDevMode ? [{ debugName: "toggleAllCheckboxIndeterminate" }] : /* istanbul ignore next */ []));
100
+ this.toggleAllCheckboxTooltipMessage = input('', /* @ts-ignore */
101
+ ...(ngDevMode ? [{ debugName: "toggleAllCheckboxTooltipMessage" }] : /* istanbul ignore next */ []));
102
+ this.toggleAllCheckboxTooltipPosition = input('below', /* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "toggleAllCheckboxTooltipPosition" }] : /* istanbul ignore next */ []));
104
+ this.hideClearSearchButton = input(false, /* @ts-ignore */
105
+ ...(ngDevMode ? [{ debugName: "hideClearSearchButton" }] : /* istanbul ignore next */ []));
106
+ this.alwaysRestoreSelectedOptionsMulti = input(false, /* @ts-ignore */
107
+ ...(ngDevMode ? [{ debugName: "alwaysRestoreSelectedOptionsMulti" }] : /* istanbul ignore next */ []));
108
+ /**
109
+ * 输入框防抖时间(毫秒),默认 300ms
110
+ * 设置为 0 可禁用防抖
111
+ */
112
+ this.debounceTime = input(300, /* @ts-ignore */
113
+ ...(ngDevMode ? [{ debugName: "debounceTime" }] : /* istanbul ignore next */ []));
114
+ /**
115
+ * 可选条目数量(由父组件提供)
116
+ * 用于判断是否显示"无结果"提示
117
+ * 如果未提供,则尝试从 matSelect.options.length 自动获取
118
+ */
119
+ this.optionsCount = input(null, /* @ts-ignore */
120
+ ...(ngDevMode ? [{ debugName: "optionsCount" }] : /* istanbul ignore next */ []));
85
121
  this.matSelect = inject(MatSelect);
86
122
  this.matFormField = inject(MatFormField, { optional: true }) ?? null;
87
123
  this._viewportRuler = inject(ViewportRuler);
88
124
  this._matOption = inject(MatOption, { optional: true }) ?? null;
89
125
  this._defaultOptions = inject(MAT_SELECTSEARCH_DEFAULT_OPTIONS, { optional: true });
90
126
  this._destroyRef = inject(DestroyRef);
91
- this._options$ = signal(null, ...(ngDevMode ? [{ debugName: "_options$" }] : /* istanbul ignore next */ []));
92
- this._optionsList$ = toObservable(this._options$).pipe(switchMap((_options) => _options ?
93
- _options.changes.pipe(map((options) => options.toArray()), startWith(_options.toArray())) : of(null)));
94
- this._optionsLength$ = this._optionsList$.pipe(map((options) => options ? options.length : 0));
127
+ this._options$ = signal(null, /* @ts-ignore */
128
+ ...(ngDevMode ? [{ debugName: "_options$" }] : /* istanbul ignore next */ []));
95
129
  this._previousSelectedValues = [];
96
- // eslint-disable-next-line @typescript-eslint/member-ordering
97
- this.showNoEntriesFound = signal(false, ...(ngDevMode ? [{ debugName: "showNoEntriesFound" }] : /* istanbul ignore next */ []));
98
- // eslint-disable-next-line @typescript-eslint/member-ordering
99
- this.showNoEntriesFound$ = combineLatest([
100
- this.formControl.valueChanges,
101
- this._optionsLength$
102
- ]).pipe(map(([value, optionsLength]) => !!this.noEntriesFoundLabel && !!value
103
- && optionsLength === this._getOptionsLengthOffset()), tap((showNoEntriesFound) => this.showNoEntriesFound.set(!!showNoEntriesFound)));
104
- this.onTouched = () => { };
130
+ this._valueSignal = signal('', /* @ts-ignore */
131
+ ...(ngDevMode ? [{ debugName: "_valueSignal" }] : /* istanbul ignore next */ []));
132
+ this.onTouched = () => {
133
+ /* empty */
134
+ };
105
135
  this._applyDefaultOptions(this._defaultOptions);
136
+ this.showNoEntriesFound = computed(() => {
137
+ // 优先使用父组件传递的 optionsCount(适用于 mat-table 等特殊情况)
138
+ const providedCount = this.optionsCount();
139
+ const optionsCount = providedCount ?? (this.matSelect?.options?.length ?? 0);
140
+ const offset = this._getOptionsLengthOffset();
141
+ const hasSearchValue = !!this._valueSignal();
142
+ return !!this.noEntriesFoundLabel() && hasSearchValue && optionsCount <= offset;
143
+ }, /* @ts-ignore */
144
+ ...(ngDevMode ? [{ debugName: "showNoEntriesFound" }] : /* istanbul ignore next */ []));
145
+ // 根据 debounceTime 动态构建 observable
146
+ let valueChanges$ = this.formControl.valueChanges.pipe(startWith(this.formControl.value));
147
+ // 如果 debounceTime > 0,添加防抖
148
+ if (this.debounceTime() > 0) {
149
+ valueChanges$ = valueChanges$.pipe(debounceTime(this.debounceTime()));
150
+ }
151
+ valueChanges$
152
+ .pipe(takeUntilDestroyed(this._destroyRef))
153
+ .subscribe((value) => {
154
+ this._valueSignal.set(value ?? '');
155
+ });
156
+ effect(() => {
157
+ const show = this.showNoEntriesFound();
158
+ if (this._matOption) {
159
+ const el = this._matOption._getHostElement();
160
+ if (show) {
161
+ el.classList.add('cmat-select-search-no-entries-found');
162
+ }
163
+ else {
164
+ el.classList.remove('cmat-select-search-no-entries-found');
165
+ }
166
+ }
167
+ });
106
168
  }
107
169
  get isInsideMatOption() {
108
170
  return !!this._matOption;
109
171
  }
110
172
  get value() {
111
- return this.formControl.value ?? '';
173
+ return this._valueSignal();
112
174
  }
113
175
  get _options() {
114
176
  return this._options$();
@@ -126,7 +188,8 @@ class CmatSelectSearchComponent {
126
188
  this.matSelect.panelClass = [this.matSelect.panelClass, panelClass];
127
189
  }
128
190
  else if (typeof this.matSelect.panelClass === 'object') {
129
- this.matSelect.panelClass[panelClass] = true;
191
+ this.matSelect.panelClass[panelClass] =
192
+ true;
130
193
  }
131
194
  }
132
195
  else {
@@ -134,7 +197,9 @@ class CmatSelectSearchComponent {
134
197
  }
135
198
  if (this._matOption) {
136
199
  this._matOption.disabled = true;
137
- this._matOption._getHostElement().classList.add('contains-cmat-select-search');
200
+ this._matOption
201
+ ._getHostElement()
202
+ .classList.add('contains-cmat-select-search');
138
203
  this._matOption._getHostElement().setAttribute('aria-hidden', 'true');
139
204
  }
140
205
  else {
@@ -145,12 +210,12 @@ class CmatSelectSearchComponent {
145
210
  .subscribe((opened) => {
146
211
  if (opened) {
147
212
  this.updateInputWidth();
148
- if (!this.disableInitialFocus) {
213
+ if (!this.disableInitialFocus()) {
149
214
  this.focus();
150
215
  }
151
216
  }
152
217
  else {
153
- if (this.clearSearchInput) {
218
+ if (this.clearSearchInput()) {
154
219
  this.reset();
155
220
  }
156
221
  }
@@ -160,7 +225,8 @@ class CmatSelectSearchComponent {
160
225
  .pipe(takeUntilDestroyed(this._destroyRef))
161
226
  .subscribe(() => {
162
227
  if (this.matSelect._keyManager) {
163
- this.matSelect._keyManager.change.pipe(takeUntilDestroyed(this._destroyRef))
228
+ this.matSelect._keyManager.change
229
+ .pipe(takeUntilDestroyed(this._destroyRef))
164
230
  .subscribe(() => this._adjustScrollTopToFitActiveOptionIntoView());
165
231
  }
166
232
  else {
@@ -178,15 +244,15 @@ class CmatSelectSearchComponent {
178
244
  const keyManager = this.matSelect._keyManager;
179
245
  if (keyManager && this.matSelect.panelOpen) {
180
246
  const firstOptionIsChanged = !this.matSelect.compareWith(previousFirstOption, currentFirstOption);
181
- if (firstOptionIsChanged
182
- || !keyManager.activeItem
183
- || !options.find((option) => this.matSelect.compareWith(option, keyManager.activeItem))) {
247
+ if (firstOptionIsChanged ||
248
+ !keyManager.activeItem ||
249
+ !options.find((option) => this.matSelect.compareWith(option, keyManager.activeItem))) {
184
250
  keyManager.setFirstItemActive();
185
251
  }
186
252
  setTimeout(() => {
187
253
  this.updateInputWidth();
188
254
  });
189
- if (!this.disableScrollToActiveOnOptionsChanged) {
255
+ if (!this.disableScrollToActiveOnOptionsChanged()) {
190
256
  this._adjustScrollTopToFitActiveOptionIntoView();
191
257
  }
192
258
  }
@@ -195,17 +261,8 @@ class CmatSelectSearchComponent {
195
261
  });
196
262
  });
197
263
  });
198
- this.showNoEntriesFound$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((showNoEntriesFound) => {
199
- if (this._matOption) {
200
- if (showNoEntriesFound) {
201
- this._matOption._getHostElement().classList.add('cmat-select-search-no-entries-found');
202
- }
203
- else {
204
- this._matOption._getHostElement().classList.remove('cmat-select-search-no-entries-found');
205
- }
206
- }
207
- });
208
- this._viewportRuler.change()
264
+ this._viewportRuler
265
+ .change()
209
266
  .pipe(takeUntilDestroyed(this._destroyRef))
210
267
  .subscribe(() => {
211
268
  if (this.matSelect.panelOpen) {
@@ -215,22 +272,23 @@ class CmatSelectSearchComponent {
215
272
  this._initMultipleHandling();
216
273
  }
217
274
  emitSelectAllBooleanToParent(state) {
218
- // 通知父组件切换全选状态
219
275
  this.toggleAll.emit(state);
220
276
  }
221
277
  isToggleAllCheckboxVisible() {
222
- // 仅在多选模式下显示全选复选框
223
- return this.matSelect.multiple && this.showToggleAllCheckbox;
278
+ return this.matSelect.multiple && this.showToggleAllCheckbox();
224
279
  }
225
280
  handleKeydown(event) {
226
- if (event.key?.length === 1
227
- || (this.preventHomeEndKeyPropagation && (event.code === 'Home' || event.code === 'End'))) {
281
+ if (event.key?.length === 1 ||
282
+ (this.preventHomeEndKeyPropagation() &&
283
+ (event.code === 'Home' || event.code === 'End'))) {
228
284
  event.stopPropagation();
229
285
  }
230
286
  if (this.matSelect.multiple && event.key && event.code === 'Enter') {
231
287
  setTimeout(() => this.focus());
232
288
  }
233
- if (this.enableClearOnEscapePressed === true && event.code === 'Escape' && this.value) {
289
+ if (this.enableClearOnEscapePressed() === true &&
290
+ event.code === 'Escape' &&
291
+ this.value) {
234
292
  this.reset(true);
235
293
  event.stopPropagation();
236
294
  }
@@ -239,22 +297,25 @@ class CmatSelectSearchComponent {
239
297
  // 方向键切换时同步当前高亮项
240
298
  if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {
241
299
  const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();
242
- const index = this._options?.toArray().findIndex((item) => item.id === ariaActiveDescendantId) ?? -1;
300
+ const index = this._options
301
+ ?.toArray()
302
+ .findIndex((item) => item.id === ariaActiveDescendantId) ??
303
+ -1;
243
304
  if (index >= 0) {
244
305
  this._unselectActiveDescendant();
245
- this._activeDescendant = this._options?.toArray()[index]._getHostElement();
306
+ this._activeDescendant = this._options
307
+ ?.toArray()[index]._getHostElement();
246
308
  this._activeDescendant?.setAttribute('aria-selected', 'true');
247
309
  if (ariaActiveDescendantId) {
248
- this.searchSelectInput.nativeElement.setAttribute('aria-activedescendant', ariaActiveDescendantId);
310
+ this.searchSelectInput().nativeElement.setAttribute('aria-activedescendant', ariaActiveDescendantId);
249
311
  }
250
312
  else {
251
- this.searchSelectInput.nativeElement.removeAttribute('aria-activedescendant');
313
+ this.searchSelectInput().nativeElement.removeAttribute('aria-activedescendant');
252
314
  }
253
315
  }
254
316
  }
255
317
  }
256
318
  writeValue(value) {
257
- // 外部写入时同步输入框值
258
319
  this._lastExternalInputValue = value;
259
320
  this.formControl.setValue(value);
260
321
  }
@@ -264,34 +325,35 @@ class CmatSelectSearchComponent {
264
325
  this.onTouched();
265
326
  }
266
327
  registerOnChange(fn) {
267
- this.formControl.valueChanges.pipe(filter((value) => value !== this._lastExternalInputValue), tap(() => this._lastExternalInputValue = undefined), takeUntilDestroyed(this._destroyRef)).subscribe(fn);
328
+ this.formControl.valueChanges
329
+ .pipe(filter((value) => value !== this._lastExternalInputValue), tap(() => (this._lastExternalInputValue = undefined)), takeUntilDestroyed(this._destroyRef))
330
+ .subscribe(fn);
268
331
  }
269
332
  registerOnTouched(fn) {
270
333
  this.onTouched = fn;
271
334
  }
272
335
  focus() {
273
336
  // 聚焦并保持面板滚动位置
274
- if (!this.searchSelectInput || !this.matSelect.panel) {
337
+ if (!this.searchSelectInput() || !this.matSelect.panel) {
275
338
  return;
276
339
  }
277
340
  const panel = this.matSelect.panel.nativeElement;
278
341
  const scrollTop = panel.scrollTop;
279
- this.searchSelectInput.nativeElement.focus();
342
+ this.searchSelectInput().nativeElement.focus();
280
343
  panel.scrollTop = scrollTop;
281
344
  }
282
345
  reset(focus) {
283
- // 重置搜索内容
284
346
  this.formControl.setValue('');
285
347
  if (focus) {
286
348
  this.focus();
287
349
  }
288
350
  }
289
351
  updateInputWidth() {
290
- // 根据面板宽度同步搜索输入宽度
291
- if (!this.innerSelectSearch?.nativeElement) {
352
+ const innerEl = this.innerSelectSearch();
353
+ if (!innerEl?.nativeElement) {
292
354
  return;
293
355
  }
294
- let currentElement = this.innerSelectSearch.nativeElement;
356
+ let currentElement = innerEl.nativeElement;
295
357
  let panelElement = null;
296
358
  while (currentElement?.parentElement) {
297
359
  currentElement = currentElement.parentElement;
@@ -301,13 +363,15 @@ class CmatSelectSearchComponent {
301
363
  }
302
364
  }
303
365
  if (panelElement) {
304
- this.innerSelectSearch.nativeElement.style.width = panelElement.clientWidth + 'px';
366
+ innerEl.nativeElement.style.width =
367
+ panelElement.clientWidth + 'px';
305
368
  }
306
369
  }
307
370
  _getMatOptionHeight() {
308
- // 获取首个选项高度,用于滚动计算
309
371
  if (this.matSelect.options.length > 0) {
310
- return this.matSelect.options.first._getHostElement().getBoundingClientRect().height;
372
+ return this.matSelect.options.first
373
+ ._getHostElement()
374
+ .getBoundingClientRect().height;
311
375
  }
312
376
  return 0;
313
377
  }
@@ -323,7 +387,7 @@ class CmatSelectSearchComponent {
323
387
  _unselectActiveDescendant() {
324
388
  // 清理当前高亮项的 aria 状态
325
389
  this._activeDescendant?.removeAttribute('aria-selected');
326
- this.searchSelectInput.nativeElement.removeAttribute('aria-activedescendant');
390
+ this.searchSelectInput().nativeElement.removeAttribute('aria-activedescendant');
327
391
  }
328
392
  _applyDefaultOptions(defaultOptions) {
329
393
  // 应用默认配置
@@ -334,8 +398,6 @@ class CmatSelectSearchComponent {
334
398
  Object.assign(this, options);
335
399
  }
336
400
  _initMultipleHandling() {
337
- // 初始化多选场景下的已选值保留逻辑
338
- // 处理多选场景下的已选值保留
339
401
  if (!this.matSelect.ngControl) {
340
402
  if (this.matSelect.multiple) {
341
403
  console.error('the mat-select containing cmat-select-search must have a ngModel or formControl directive when multiple=true');
@@ -343,17 +405,20 @@ class CmatSelectSearchComponent {
343
405
  return;
344
406
  }
345
407
  this._previousSelectedValues = this.matSelect.ngControl.value;
346
- this.matSelect.ngControl.valueChanges?.pipe(takeUntilDestroyed(this._destroyRef))
408
+ this.matSelect.ngControl.valueChanges
409
+ ?.pipe(takeUntilDestroyed(this._destroyRef))
347
410
  .subscribe((values) => {
348
411
  let restoreSelectedValues = false;
349
412
  let currentValues = Array.isArray(values) ? values : [];
350
413
  if (this.matSelect.multiple) {
351
- if ((this.alwaysRestoreSelectedOptionsMulti || (this.formControl.value?.length))
352
- && this._previousSelectedValues && Array.isArray(this._previousSelectedValues)) {
414
+ if ((this.alwaysRestoreSelectedOptionsMulti() ||
415
+ this._valueSignal().length) &&
416
+ this._previousSelectedValues &&
417
+ Array.isArray(this._previousSelectedValues)) {
353
418
  const optionValues = this.matSelect.options.map((option) => option.value);
354
419
  this._previousSelectedValues.forEach((previousValue) => {
355
- if (!currentValues.some((v) => this.matSelect.compareWith(v, previousValue))
356
- && !optionValues.some((v) => this.matSelect.compareWith(v, previousValue))) {
420
+ if (!currentValues.some((v) => this.matSelect.compareWith(v, previousValue)) &&
421
+ !optionValues.some((v) => this.matSelect.compareWith(v, previousValue))) {
357
422
  currentValues.push(previousValue);
358
423
  restoreSelectedValues = true;
359
424
  }
@@ -374,88 +439,54 @@ class CmatSelectSearchComponent {
374
439
  const labelCount = _countGroupLabelsBeforeOption(activeOptionIndex, this.matSelect.options, this.matSelect.optionGroups);
375
440
  const indexOfOptionToFitIntoView = (this._matOption ? -1 : 0) + labelCount + activeOptionIndex;
376
441
  const currentScrollTop = this.matSelect.panel.nativeElement.scrollTop;
377
- const searchInputHeight = this.innerSelectSearch.nativeElement.offsetHeight;
442
+ const innerEl = this.innerSelectSearch();
443
+ const searchInputHeight = innerEl.nativeElement.offsetHeight;
378
444
  const amountOfVisibleOptions = Math.floor((SELECT_PANEL_MAX_HEIGHT - searchInputHeight) / matOptionHeight);
379
- const indexOfFirstVisibleOption = Math.round((currentScrollTop + searchInputHeight) / matOptionHeight) - 1;
445
+ const indexOfFirstVisibleOption = Math.round((currentScrollTop + searchInputHeight) / matOptionHeight) -
446
+ 1;
380
447
  if (indexOfFirstVisibleOption >= indexOfOptionToFitIntoView) {
381
- this.matSelect.panel.nativeElement.scrollTop = indexOfOptionToFitIntoView * matOptionHeight;
448
+ this.matSelect.panel.nativeElement.scrollTop =
449
+ indexOfOptionToFitIntoView * matOptionHeight;
382
450
  }
383
- else if (indexOfFirstVisibleOption + amountOfVisibleOptions <= indexOfOptionToFitIntoView) {
384
- this.matSelect.panel.nativeElement.scrollTop = (indexOfOptionToFitIntoView + 1) * matOptionHeight
385
- - (SELECT_PANEL_MAX_HEIGHT - searchInputHeight);
451
+ else if (indexOfFirstVisibleOption + amountOfVisibleOptions <=
452
+ indexOfOptionToFitIntoView) {
453
+ this.matSelect.panel.nativeElement.scrollTop =
454
+ (indexOfOptionToFitIntoView + 1) * matOptionHeight -
455
+ (SELECT_PANEL_MAX_HEIGHT - searchInputHeight);
386
456
  }
387
457
  }
388
458
  }
389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
390
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: CmatSelectSearchComponent, isStandalone: true, selector: "cmat-select-search", inputs: { placeholderLabel: "placeholderLabel", type: "type", noEntriesFoundLabel: "noEntriesFoundLabel", showNoFoundLabel: "showNoFoundLabel", clearSearchInput: "clearSearchInput", searching: "searching", disableInitialFocus: "disableInitialFocus", enableClearOnEscapePressed: "enableClearOnEscapePressed", preventHomeEndKeyPropagation: "preventHomeEndKeyPropagation", disableScrollToActiveOnOptionsChanged: "disableScrollToActiveOnOptionsChanged", ariaLabel: "ariaLabel", showToggleAllCheckbox: "showToggleAllCheckbox", toggleAllCheckboxChecked: "toggleAllCheckboxChecked", toggleAllCheckboxIndeterminate: "toggleAllCheckboxIndeterminate", toggleAllCheckboxTooltipMessage: "toggleAllCheckboxTooltipMessage", toggleAllCheckboxTooltipPosition: "toggleAllCheckboxTooltipPosition", hideClearSearchButton: "hideClearSearchButton", alwaysRestoreSelectedOptionsMulti: "alwaysRestoreSelectedOptionsMulti" }, outputs: { toggleAll: "toggleAll" }, host: { properties: { "class.cmat-select-search-inside-mat-option": "this.isInsideMatOption" } }, providers: [
459
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: CmatSelectSearchComponent, isStandalone: true, selector: "cmat-select-search", inputs: { placeholderLabel: { classPropertyName: "placeholderLabel", publicName: "placeholderLabel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, noEntriesFoundLabel: { classPropertyName: "noEntriesFoundLabel", publicName: "noEntriesFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, showNoFoundLabel: { classPropertyName: "showNoFoundLabel", publicName: "showNoFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, clearSearchInput: { classPropertyName: "clearSearchInput", publicName: "clearSearchInput", isSignal: true, isRequired: false, transformFunction: null }, searching: { classPropertyName: "searching", publicName: "searching", isSignal: true, isRequired: false, transformFunction: null }, disableInitialFocus: { classPropertyName: "disableInitialFocus", publicName: "disableInitialFocus", isSignal: true, isRequired: false, transformFunction: null }, enableClearOnEscapePressed: { classPropertyName: "enableClearOnEscapePressed", publicName: "enableClearOnEscapePressed", isSignal: true, isRequired: false, transformFunction: null }, preventHomeEndKeyPropagation: { classPropertyName: "preventHomeEndKeyPropagation", publicName: "preventHomeEndKeyPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableScrollToActiveOnOptionsChanged: { classPropertyName: "disableScrollToActiveOnOptionsChanged", publicName: "disableScrollToActiveOnOptionsChanged", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showToggleAllCheckbox: { classPropertyName: "showToggleAllCheckbox", publicName: "showToggleAllCheckbox", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxChecked: { classPropertyName: "toggleAllCheckboxChecked", publicName: "toggleAllCheckboxChecked", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxIndeterminate: { classPropertyName: "toggleAllCheckboxIndeterminate", publicName: "toggleAllCheckboxIndeterminate", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxTooltipMessage: { classPropertyName: "toggleAllCheckboxTooltipMessage", publicName: "toggleAllCheckboxTooltipMessage", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxTooltipPosition: { classPropertyName: "toggleAllCheckboxTooltipPosition", publicName: "toggleAllCheckboxTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, hideClearSearchButton: { classPropertyName: "hideClearSearchButton", publicName: "hideClearSearchButton", isSignal: true, isRequired: false, transformFunction: null }, alwaysRestoreSelectedOptionsMulti: { classPropertyName: "alwaysRestoreSelectedOptionsMulti", publicName: "alwaysRestoreSelectedOptionsMulti", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, optionsCount: { classPropertyName: "optionsCount", publicName: "optionsCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleAll: "toggleAll" }, host: { properties: { "class.cmat-select-search-inside-mat-option": "this.isInsideMatOption" } }, providers: [
391
461
  {
392
462
  provide: NG_VALUE_ACCESSOR,
393
463
  useExisting: forwardRef(() => CmatSelectSearchComponent),
394
- multi: true
395
- }
396
- ], queries: [{ propertyName: "clearIcon", first: true, predicate: CmatSelectSearchClearDirective, descendants: true }, { propertyName: "noEntriesFound", first: true, predicate: CmatSelectNoEntriesFoundDirective, descendants: true }], viewQueries: [{ propertyName: "searchSelectInput", first: true, predicate: ["searchSelectInput"], descendants: true, read: ElementRef, static: true }, { propertyName: "innerSelectSearch", first: true, predicate: ["innerSelectSearch"], descendants: true, read: ElementRef, static: true }], exportAs: ["cmatSelectSearch"], ngImport: i0, template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div #innerSelectSearch class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{'cmat-select-search-inner-multiple': matSelect.multiple, 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible() }\">\r\n\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\" [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked\" [indeterminate]=\"toggleAllCheckboxIndeterminate\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\" [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\">\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon class=\"cmat-select-search-icon\" color=\"primary\" svgIcon=\"heroicons_outline:magnifying-glass\"></mat-icon>\r\n </span>\r\n <input #searchSelectInput matInput class=\"cmat-select-search-input cmat-input-element\" autocomplete=\"off\"\r\n [type]=\"type\" [formControl]=\"formControl\" [placeholder]=\"placeholderLabel\" [attr.aria-label]=\"ariaLabel\"\r\n (keydown)=\"handleKeydown($event)\" (keyup)=\"handleKeyup($event)\" (blur)=\"onBlur()\" />\r\n @if (searching) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton && value && !searching) {\r\n <button type=\"button\" matIconButton aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\" (click)=\"reset(true)\">\r\n @if (clearIcon) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n </div>\r\n\r\n @if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{noEntriesFoundLabel}}\r\n }\r\n </div>\r\n }\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
464
+ multi: true,
465
+ },
466
+ ], queries: [{ propertyName: "clearIcon", first: true, predicate: CmatSelectSearchClearDirective, descendants: true, isSignal: true }, { propertyName: "noEntriesFound", first: true, predicate: CmatSelectNoEntriesFoundDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "searchSelectInput", first: true, predicate: ["searchSelectInput"], descendants: true, isSignal: true }, { propertyName: "innerSelectSearch", first: true, predicate: ["innerSelectSearch"], descendants: true, isSignal: true }], exportAs: ["cmatSelectSearch"], ngImport: i0, template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
397
467
  }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatSelectSearchComponent, decorators: [{
468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatSelectSearchComponent, decorators: [{
399
469
  type: Component,
400
470
  args: [{ selector: 'cmat-select-search', providers: [
401
471
  {
402
472
  provide: NG_VALUE_ACCESSOR,
403
473
  useExisting: forwardRef(() => CmatSelectSearchComponent),
404
- multi: true
405
- }
406
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatSelectSearch', imports: [MatInputModule, NgClass, MatCheckboxModule, MatTooltipModule, MatFormFieldModule, MatIconModule,
407
- FormsModule, ReactiveFormsModule, MatProgressSpinnerModule, MatButtonModule, AsyncPipe], template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div #innerSelectSearch class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{'cmat-select-search-inner-multiple': matSelect.multiple, 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible() }\">\r\n\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\" [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked\" [indeterminate]=\"toggleAllCheckboxIndeterminate\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage\" [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\">\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon class=\"cmat-select-search-icon\" color=\"primary\" svgIcon=\"heroicons_outline:magnifying-glass\"></mat-icon>\r\n </span>\r\n <input #searchSelectInput matInput class=\"cmat-select-search-input cmat-input-element\" autocomplete=\"off\"\r\n [type]=\"type\" [formControl]=\"formControl\" [placeholder]=\"placeholderLabel\" [attr.aria-label]=\"ariaLabel\"\r\n (keydown)=\"handleKeydown($event)\" (keyup)=\"handleKeyup($event)\" (blur)=\"onBlur()\" />\r\n @if (searching) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton && value && !searching) {\r\n <button type=\"button\" matIconButton aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\" (click)=\"reset(true)\">\r\n @if (clearIcon) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n </div>\r\n\r\n @if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{noEntriesFoundLabel}}\r\n }\r\n </div>\r\n }\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"] }]
408
- }], ctorParameters: () => [], propDecorators: { placeholderLabel: [{
409
- type: Input
410
- }], type: [{
411
- type: Input
412
- }], noEntriesFoundLabel: [{
413
- type: Input
414
- }], showNoFoundLabel: [{
415
- type: Input
416
- }], clearSearchInput: [{
417
- type: Input
418
- }], searching: [{
419
- type: Input
420
- }], disableInitialFocus: [{
421
- type: Input
422
- }], enableClearOnEscapePressed: [{
423
- type: Input
424
- }], preventHomeEndKeyPropagation: [{
425
- type: Input
426
- }], disableScrollToActiveOnOptionsChanged: [{
427
- type: Input
428
- }], ariaLabel: [{
429
- type: Input
430
- }], showToggleAllCheckbox: [{
431
- type: Input
432
- }], toggleAllCheckboxChecked: [{
433
- type: Input
434
- }], toggleAllCheckboxIndeterminate: [{
435
- type: Input
436
- }], toggleAllCheckboxTooltipMessage: [{
437
- type: Input
438
- }], toggleAllCheckboxTooltipPosition: [{
439
- type: Input
440
- }], hideClearSearchButton: [{
441
- type: Input
442
- }], alwaysRestoreSelectedOptionsMulti: [{
443
- type: Input
444
- }], toggleAll: [{
445
- type: Output
446
- }], searchSelectInput: [{
447
- type: ViewChild,
448
- args: ['searchSelectInput', { read: ElementRef, static: true }]
449
- }], innerSelectSearch: [{
450
- type: ViewChild,
451
- args: ['innerSelectSearch', { read: ElementRef, static: true }]
452
- }], clearIcon: [{
453
- type: ContentChild,
454
- args: [CmatSelectSearchClearDirective, { static: false }]
455
- }], noEntriesFound: [{
456
- type: ContentChild,
457
- args: [CmatSelectNoEntriesFoundDirective]
458
- }], isInsideMatOption: [{
474
+ multi: true,
475
+ },
476
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatSelectSearch', imports: [
477
+ MatInputModule,
478
+ NgClass,
479
+ MatCheckboxModule,
480
+ MatTooltipModule,
481
+ MatFormFieldModule,
482
+ MatIconModule,
483
+ FormsModule,
484
+ ReactiveFormsModule,
485
+ MatProgressSpinnerModule,
486
+ MatButtonModule,
487
+ AsyncPipe,
488
+ ], template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"] }]
489
+ }], ctorParameters: () => [], propDecorators: { toggleAll: [{ type: i0.Output, args: ["toggleAll"] }], searchSelectInput: [{ type: i0.ViewChild, args: ['searchSelectInput', { isSignal: true }] }], innerSelectSearch: [{ type: i0.ViewChild, args: ['innerSelectSearch', { isSignal: true }] }], clearIcon: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatSelectSearchClearDirective), { isSignal: true }] }], noEntriesFound: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatSelectNoEntriesFoundDirective), { isSignal: true }] }], placeholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderLabel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], noEntriesFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noEntriesFoundLabel", required: false }] }], showNoFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNoFoundLabel", required: false }] }], clearSearchInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearSearchInput", required: false }] }], searching: [{ type: i0.Input, args: [{ isSignal: true, alias: "searching", required: false }] }], disableInitialFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableInitialFocus", required: false }] }], enableClearOnEscapePressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableClearOnEscapePressed", required: false }] }], preventHomeEndKeyPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventHomeEndKeyPropagation", required: false }] }], disableScrollToActiveOnOptionsChanged: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollToActiveOnOptionsChanged", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], showToggleAllCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showToggleAllCheckbox", required: false }] }], toggleAllCheckboxChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxChecked", required: false }] }], toggleAllCheckboxIndeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxIndeterminate", required: false }] }], toggleAllCheckboxTooltipMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxTooltipMessage", required: false }] }], toggleAllCheckboxTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxTooltipPosition", required: false }] }], hideClearSearchButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideClearSearchButton", required: false }] }], alwaysRestoreSelectedOptionsMulti: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysRestoreSelectedOptionsMulti", required: false }] }], debounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounceTime", required: false }] }], optionsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsCount", required: false }] }], isInsideMatOption: [{
459
490
  type: HostBinding,
460
491
  args: ['class.cmat-select-search-inside-mat-option']
461
492
  }] } });