@ojiepermana/angular 22.1.14 → 22.2.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 (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-DYuysKVf.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-COiTaw34.mjs +812 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-COQ-60DS.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-YIz0IsIb.mjs} +392 -207
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-D2vwEwBY.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-B5D7yXfb.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-CUb68MZH.mjs +1219 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-CrK16trj.mjs +327 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +544 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +139 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3256 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1125 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1928 -553
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -496
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +69 -18
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +166 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +708 -375
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +120 -86
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +446 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -113
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-Be3IqzG4.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-Bc7DWK3R.mjs +0 -522
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-DA8VPEn7.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-U2TJTzlW.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-CIUhmytH.mjs +0 -2668
@@ -1,158 +1,232 @@
1
- import { Overlay } from '@angular/cdk/overlay';
2
- import { TemplatePortal } from '@angular/cdk/portal';
3
- import * as i0 from '@angular/core';
4
- import { inject, ViewContainerRef, DestroyRef, input, model, signal, computed, viewChild, forwardRef, Component } from '@angular/core';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { merge } from 'rxjs';
8
- import { filter } from 'rxjs/operators';
9
- import { injectUniqueId, cn } from '@ojiepermana/angular/component/utils/core';
10
- import { overlayDismissals } from '@ojiepermana/angular/component/utils/overlay';
11
- import { buttonVariants } from '@ojiepermana/angular/component/button';
12
- import { CommandComponent, CommandInputComponent, CommandListComponent, CommandEmptyComponent, CommandGroupComponent, CommandItemComponent } from '@ojiepermana/angular/component/command';
13
-
14
- /**
15
- * Combobox with searchable option list. Options passed via `[options]`.
16
- * Emits two-way `value` and supports forms via ControlValueAccessor.
17
- */
18
- class ComboboxComponent {
19
- overlay = inject(Overlay);
20
- vcr = inject(ViewContainerRef);
21
- destroyRef = inject(DestroyRef);
22
- instanceId = injectUniqueId('Combobox');
23
- options = input([], /* @ts-ignore */
24
- ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
25
- value = model(null, /* @ts-ignore */
26
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
27
- placeholder = input('Select…', /* @ts-ignore */
28
- ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
29
- /** Accessible name for the combobox trigger (its text content is the value, not a name). */
30
- ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
31
- ariaLabelledby = input(null, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
32
- searchPlaceholder = input('Search…', /* @ts-ignore */
33
- ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
34
- emptyText = input('No results found.', /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
36
- disabled = model(false, /* @ts-ignore */
37
- ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
38
- class = input('', /* @ts-ignore */
39
- ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
40
- /** Disabled state pushed by the Forms API; kept separate so it never clobbers the `disabled` binding. */
41
- cvaDisabled = signal(false, /* @ts-ignore */
42
- ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []));
43
- isDisabled = computed(() => this.disabled() || this.cvaDisabled(), /* @ts-ignore */
44
- ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
45
- trigger = viewChild.required('trigger', /* @ts-ignore */
46
- ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
47
- panel = viewChild.required('panel', /* @ts-ignore */
48
- ...(ngDevMode ? [{ debugName: "panel" }] : /* istanbul ignore next */ []));
49
- overlayRef = null;
50
- isOpen = signal(false, /* @ts-ignore */
51
- ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
52
- triggerId = `${this.instanceId}-trigger`;
53
- panelId = `${this.instanceId}-panel`;
54
- classes = computed(() => cn('inline-block min-w-50', this.class()), /* @ts-ignore */
55
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
56
- triggerClasses = computed(() => cn(buttonVariants({ variant: 'outline', size: 'default' }), 'w-full justify-between'), /* @ts-ignore */
57
- ...(ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []));
58
- selectedLabel = computed(() => {
59
- const v = this.value();
60
- return this.options().find((o) => o.value === v)?.label ?? '';
61
- }, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "selectedLabel" }] : /* istanbul ignore next */ []));
63
- onChangeFn = () => { };
64
- onTouchedFn = () => { };
65
- constructor() {
66
- this.destroyRef.onDestroy(() => this.close({ restoreFocus: false, notifyTouched: false }));
67
- }
68
- isSelected(opt) {
69
- return opt.value === this.value();
70
- }
71
- toggle() {
72
- if (this.isDisabled())
73
- return;
74
- if (this.isOpen()) {
75
- this.close();
76
- }
77
- else {
78
- this.open();
79
- }
80
- }
81
- open() {
82
- if (this.isOpen())
83
- return;
84
- const triggerEl = this.trigger().nativeElement;
85
- triggerEl.style.setProperty('--combobox-trigger-width', triggerEl.offsetWidth + 'px');
86
- this.overlayRef = this.overlay.create({
87
- positionStrategy: this.overlay
88
- .position()
89
- .flexibleConnectedTo(triggerEl)
90
- .withPositions([
91
- { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
92
- { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
93
- ]),
94
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
95
- hasBackdrop: false,
96
- panelClass: 'combobox-panel',
97
- minWidth: triggerEl.offsetWidth,
98
- });
99
- const portal = new TemplatePortal(this.panel(), this.vcr);
100
- this.overlayRef.attach(portal);
101
- // Tab closes the listbox and hands focus back to the trigger WITHOUT
102
- // preventing the default, so the browser carries on with the tab sequence
103
- // from the trigger. That is the ARIA combobox contract: tabbing away leaves
104
- // the popup, rather than leaving it open behind the moving focus.
105
- merge(overlayDismissals(this.overlayRef, triggerEl), this.overlayRef.keydownEvents().pipe(filter((event) => event.key === 'Tab')))
106
- .pipe(takeUntilDestroyed(this.destroyRef))
107
- .subscribe((dismissal) => {
108
- // A pointer press outside is already handing focus to whatever was
109
- // pressed; pulling it back to the trigger would steal it. Escape, Tab
110
- // and detachment have no such destination, so they do restore.
111
- this.close({ restoreFocus: !(dismissal instanceof MouseEvent) });
112
- });
113
- this.isOpen.set(true);
114
- // Focus search input after attach tick
115
- queueMicrotask(() => this.overlayRef?.overlayElement.querySelector('input')?.focus());
116
- }
117
- close(options = {}) {
118
- const { restoreFocus = true, notifyTouched = true } = options;
119
- if (!this.isOpen())
120
- return;
121
- const overlayRef = this.overlayRef;
122
- this.overlayRef = null;
123
- this.isOpen.set(false);
124
- overlayRef?.dispose();
125
- if (restoreFocus) {
126
- this.trigger().nativeElement.focus();
127
- }
128
- if (notifyTouched) {
129
- this.onTouchedFn();
130
- }
131
- }
132
- pick(opt) {
133
- if (opt.disabled)
134
- return;
135
- const next = opt.value === this.value() ? null : opt.value;
136
- this.value.set(next);
137
- this.onChangeFn(next);
138
- this.close();
139
- }
140
- writeValue(v) {
141
- this.value.set(v);
142
- }
143
- registerOnChange(fn) {
144
- this.onChangeFn = fn;
145
- }
146
- registerOnTouched(fn) {
147
- this.onTouchedFn = fn;
148
- }
149
- setDisabledState(state) {
150
- this.cvaDisabled.set(state);
151
- }
152
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
153
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: ComboboxComponent, isStandalone: true, selector: "Combobox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange" }, host: { properties: { "class": "classes()" } }, providers: [
154
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ComboboxComponent), multi: true },
155
- ], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], ngImport: i0, template: `
1
+ import { Overlay } from "@angular/cdk/overlay";
2
+ import { TemplatePortal } from "@angular/cdk/portal";
3
+ import * as i0 from "@angular/core";
4
+ import { Component, DestroyRef, ViewContainerRef, computed, forwardRef, inject, input, model, signal, viewChild } from "@angular/core";
5
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
6
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
7
+ import { merge } from "rxjs";
8
+ import { filter } from "rxjs/operators";
9
+ import { cn, injectUniqueId } from "@ojiepermana/angular/component/utils/core";
10
+ import { overlayDismissals } from "@ojiepermana/angular/component/utils/overlay";
11
+ import { buttonVariants } from "@ojiepermana/angular/component/button";
12
+ import { CommandComponent, CommandEmptyComponent, CommandGroupComponent, CommandInputComponent, CommandItemComponent, CommandListComponent } from "@ojiepermana/angular/component/command";
13
+ var ComboboxComponent = class ComboboxComponent {
14
+ overlay = inject(Overlay);
15
+ vcr = inject(ViewContainerRef);
16
+ destroyRef = inject(DestroyRef);
17
+ instanceId = injectUniqueId("Combobox");
18
+ options = input([], ...ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []);
19
+ value = model(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
20
+ placeholder = input("Select…", ...ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []);
21
+ ariaLabel = input(null, {
22
+ ...ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {},
23
+ alias: "aria-label"
24
+ });
25
+ ariaLabelledby = input(null, {
26
+ ...ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {},
27
+ alias: "aria-labelledby"
28
+ });
29
+ searchPlaceholder = input("Search…", ...ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []);
30
+ emptyText = input("No results found.", ...ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []);
31
+ disabled = model(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
32
+ class = input("", ...ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []);
33
+ cvaDisabled = signal(false, ...ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []);
34
+ isDisabled = computed(() => this.disabled() || this.cvaDisabled(), ...ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []);
35
+ trigger = viewChild.required("trigger", ...ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []);
36
+ panel = viewChild.required("panel", ...ngDevMode ? [{ debugName: "panel" }] : /* istanbul ignore next */ []);
37
+ overlayRef = null;
38
+ isOpen = signal(false, ...ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []);
39
+ triggerId = `${this.instanceId}-trigger`;
40
+ panelId = `${this.instanceId}-panel`;
41
+ classes = computed(() => cn("inline-block min-w-50", this.class()), ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
42
+ triggerClasses = computed(() => cn(buttonVariants({
43
+ variant: "outline",
44
+ size: "default"
45
+ }), "w-full justify-between"), ...ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []);
46
+ selectedLabel = computed(() => {
47
+ const v = this.value();
48
+ return this.options().find((o) => o.value === v)?.label ?? "";
49
+ }, ...ngDevMode ? [{ debugName: "selectedLabel" }] : /* istanbul ignore next */ []);
50
+ onChangeFn = () => {};
51
+ onTouchedFn = () => {};
52
+ constructor() {
53
+ this.destroyRef.onDestroy(() => this.close({
54
+ restoreFocus: false,
55
+ notifyTouched: false
56
+ }));
57
+ }
58
+ isSelected(opt) {
59
+ return opt.value === this.value();
60
+ }
61
+ toggle() {
62
+ if (this.isDisabled()) return;
63
+ if (this.isOpen()) this.close();
64
+ else this.open();
65
+ }
66
+ open() {
67
+ if (this.isOpen()) return;
68
+ const triggerEl = this.trigger().nativeElement;
69
+ triggerEl.style.setProperty("--combobox-trigger-width", triggerEl.offsetWidth + "px");
70
+ this.overlayRef = this.overlay.create({
71
+ positionStrategy: this.overlay.position().flexibleConnectedTo(triggerEl).withPositions([{
72
+ originX: "start",
73
+ originY: "bottom",
74
+ overlayX: "start",
75
+ overlayY: "top",
76
+ offsetY: 4
77
+ }, {
78
+ originX: "start",
79
+ originY: "top",
80
+ overlayX: "start",
81
+ overlayY: "bottom",
82
+ offsetY: -4
83
+ }]),
84
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
85
+ hasBackdrop: false,
86
+ panelClass: "combobox-panel",
87
+ minWidth: triggerEl.offsetWidth
88
+ });
89
+ const portal = new TemplatePortal(this.panel(), this.vcr);
90
+ this.overlayRef.attach(portal);
91
+ merge(overlayDismissals(this.overlayRef, triggerEl), this.overlayRef.keydownEvents().pipe(filter((event) => event.key === "Tab"))).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((dismissal) => {
92
+ this.close({ restoreFocus: !(dismissal instanceof MouseEvent) });
93
+ });
94
+ this.isOpen.set(true);
95
+ queueMicrotask(() => this.overlayRef?.overlayElement.querySelector("input")?.focus());
96
+ }
97
+ close(options = {}) {
98
+ const { restoreFocus = true, notifyTouched = true } = options;
99
+ if (!this.isOpen()) return;
100
+ const overlayRef = this.overlayRef;
101
+ this.overlayRef = null;
102
+ this.isOpen.set(false);
103
+ overlayRef?.dispose();
104
+ if (restoreFocus) this.trigger().nativeElement.focus();
105
+ if (notifyTouched) this.onTouchedFn();
106
+ }
107
+ pick(opt) {
108
+ if (opt.disabled) return;
109
+ const next = opt.value === this.value() ? null : opt.value;
110
+ this.value.set(next);
111
+ this.onChangeFn(next);
112
+ this.close();
113
+ }
114
+ writeValue(v) {
115
+ this.value.set(v);
116
+ }
117
+ registerOnChange(fn) {
118
+ this.onChangeFn = fn;
119
+ }
120
+ registerOnTouched(fn) {
121
+ this.onTouchedFn = fn;
122
+ }
123
+ setDisabledState(state) {
124
+ this.cvaDisabled.set(state);
125
+ }
126
+ static ɵfac = i0.ɵɵngDeclareFactory({
127
+ minVersion: "12.0.0",
128
+ version: "22.2.2",
129
+ ngImport: i0,
130
+ type: ComboboxComponent,
131
+ deps: [],
132
+ target: i0.ɵɵFactoryTarget.Component
133
+ });
134
+ static ɵcmp = i0.ɵɵngDeclareComponent({
135
+ minVersion: "17.0.0",
136
+ version: "22.2.2",
137
+ type: ComboboxComponent,
138
+ isStandalone: true,
139
+ selector: "Combobox",
140
+ inputs: {
141
+ options: {
142
+ classPropertyName: "options",
143
+ publicName: "options",
144
+ isSignal: true,
145
+ isRequired: false,
146
+ transformFunction: null
147
+ },
148
+ value: {
149
+ classPropertyName: "value",
150
+ publicName: "value",
151
+ isSignal: true,
152
+ isRequired: false,
153
+ transformFunction: null
154
+ },
155
+ placeholder: {
156
+ classPropertyName: "placeholder",
157
+ publicName: "placeholder",
158
+ isSignal: true,
159
+ isRequired: false,
160
+ transformFunction: null
161
+ },
162
+ ariaLabel: {
163
+ classPropertyName: "ariaLabel",
164
+ publicName: "aria-label",
165
+ isSignal: true,
166
+ isRequired: false,
167
+ transformFunction: null
168
+ },
169
+ ariaLabelledby: {
170
+ classPropertyName: "ariaLabelledby",
171
+ publicName: "aria-labelledby",
172
+ isSignal: true,
173
+ isRequired: false,
174
+ transformFunction: null
175
+ },
176
+ searchPlaceholder: {
177
+ classPropertyName: "searchPlaceholder",
178
+ publicName: "searchPlaceholder",
179
+ isSignal: true,
180
+ isRequired: false,
181
+ transformFunction: null
182
+ },
183
+ emptyText: {
184
+ classPropertyName: "emptyText",
185
+ publicName: "emptyText",
186
+ isSignal: true,
187
+ isRequired: false,
188
+ transformFunction: null
189
+ },
190
+ disabled: {
191
+ classPropertyName: "disabled",
192
+ publicName: "disabled",
193
+ isSignal: true,
194
+ isRequired: false,
195
+ transformFunction: null
196
+ },
197
+ class: {
198
+ classPropertyName: "class",
199
+ publicName: "class",
200
+ isSignal: true,
201
+ isRequired: false,
202
+ transformFunction: null
203
+ }
204
+ },
205
+ outputs: {
206
+ value: "valueChange",
207
+ disabled: "disabledChange"
208
+ },
209
+ host: { properties: { "class": "classes()" } },
210
+ providers: [{
211
+ provide: NG_VALUE_ACCESSOR,
212
+ useExisting: forwardRef(() => ComboboxComponent),
213
+ multi: true
214
+ }],
215
+ viewQueries: [{
216
+ propertyName: "trigger",
217
+ first: true,
218
+ predicate: ["trigger"],
219
+ descendants: true,
220
+ isSignal: true
221
+ }, {
222
+ propertyName: "panel",
223
+ first: true,
224
+ predicate: ["panel"],
225
+ descendants: true,
226
+ isSignal: true
227
+ }],
228
+ ngImport: i0,
229
+ template: `
156
230
  <button
157
231
  #trigger
158
232
  type="button"
@@ -227,25 +301,79 @@ class ComboboxComponent {
227
301
  </Command>
228
302
  </div>
229
303
  </ng-template>
230
- `, isInline: true, dependencies: [{ kind: "component", type: CommandComponent, selector: "Command", inputs: ["query", "class"], outputs: ["queryChange", "dismissed"] }, { kind: "component", type: CommandInputComponent, selector: "input[CommandInput]", inputs: ["placeholder", "class"] }, { kind: "component", type: CommandListComponent, selector: "CommandList", inputs: ["class", "aria-label"] }, { kind: "component", type: CommandEmptyComponent, selector: "CommandEmpty", inputs: ["class"] }, { kind: "component", type: CommandGroupComponent, selector: "CommandGroup", inputs: ["heading", "class"] }, { kind: "component", type: CommandItemComponent, selector: "CommandItem, button[CommandItem]", inputs: ["value", "disabled", "class", "selectedState"], outputs: ["selected"] }] });
231
- }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ComboboxComponent, decorators: [{
233
- type: Component,
234
- args: [{
235
- selector: 'Combobox',
236
- imports: [
237
- CommandComponent,
238
- CommandInputComponent,
239
- CommandListComponent,
240
- CommandEmptyComponent,
241
- CommandGroupComponent,
242
- CommandItemComponent,
243
- ],
244
- providers: [
245
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ComboboxComponent), multi: true },
246
- ],
247
- host: { '[class]': 'classes()' },
248
- template: `
304
+ `,
305
+ isInline: true,
306
+ dependencies: [
307
+ {
308
+ kind: "component",
309
+ type: CommandComponent,
310
+ selector: "Command",
311
+ inputs: ["query", "class"],
312
+ outputs: ["queryChange", "dismissed"]
313
+ },
314
+ {
315
+ kind: "component",
316
+ type: CommandInputComponent,
317
+ selector: "input[CommandInput]",
318
+ inputs: ["placeholder", "class"]
319
+ },
320
+ {
321
+ kind: "component",
322
+ type: CommandListComponent,
323
+ selector: "CommandList",
324
+ inputs: ["class", "aria-label"]
325
+ },
326
+ {
327
+ kind: "component",
328
+ type: CommandEmptyComponent,
329
+ selector: "CommandEmpty",
330
+ inputs: ["class"]
331
+ },
332
+ {
333
+ kind: "component",
334
+ type: CommandGroupComponent,
335
+ selector: "CommandGroup",
336
+ inputs: ["heading", "class"]
337
+ },
338
+ {
339
+ kind: "component",
340
+ type: CommandItemComponent,
341
+ selector: "CommandItem, button[CommandItem]",
342
+ inputs: [
343
+ "value",
344
+ "disabled",
345
+ "class",
346
+ "selectedState"
347
+ ],
348
+ outputs: ["selected"]
349
+ }
350
+ ]
351
+ });
352
+ };
353
+ i0.ɵɵngDeclareClassMetadata({
354
+ minVersion: "12.0.0",
355
+ version: "22.2.2",
356
+ ngImport: i0,
357
+ type: ComboboxComponent,
358
+ decorators: [{
359
+ type: Component,
360
+ args: [{
361
+ selector: "Combobox",
362
+ imports: [
363
+ CommandComponent,
364
+ CommandInputComponent,
365
+ CommandListComponent,
366
+ CommandEmptyComponent,
367
+ CommandGroupComponent,
368
+ CommandItemComponent
369
+ ],
370
+ providers: [{
371
+ provide: NG_VALUE_ACCESSOR,
372
+ useExisting: forwardRef(() => ComboboxComponent),
373
+ multi: true
374
+ }],
375
+ host: { "[class]": "classes()" },
376
+ template: `
249
377
  <button
250
378
  #trigger
251
379
  type="button"
@@ -320,12 +448,97 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
320
448
  </Command>
321
449
  </div>
322
450
  </ng-template>
323
- `,
324
- }]
325
- }], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }] } });
326
-
327
- /**
328
- * Generated bundle index. Do not edit.
329
- */
330
-
331
- export { ComboboxComponent };
451
+ `
452
+ }]
453
+ }],
454
+ ctorParameters: () => [],
455
+ propDecorators: {
456
+ options: [{
457
+ type: i0.Input,
458
+ args: [{
459
+ isSignal: true,
460
+ alias: "options",
461
+ required: false
462
+ }]
463
+ }],
464
+ value: [{
465
+ type: i0.Input,
466
+ args: [{
467
+ isSignal: true,
468
+ alias: "value",
469
+ required: false
470
+ }]
471
+ }, {
472
+ type: i0.Output,
473
+ args: ["valueChange"]
474
+ }],
475
+ placeholder: [{
476
+ type: i0.Input,
477
+ args: [{
478
+ isSignal: true,
479
+ alias: "placeholder",
480
+ required: false
481
+ }]
482
+ }],
483
+ ariaLabel: [{
484
+ type: i0.Input,
485
+ args: [{
486
+ isSignal: true,
487
+ alias: "aria-label",
488
+ required: false
489
+ }]
490
+ }],
491
+ ariaLabelledby: [{
492
+ type: i0.Input,
493
+ args: [{
494
+ isSignal: true,
495
+ alias: "aria-labelledby",
496
+ required: false
497
+ }]
498
+ }],
499
+ searchPlaceholder: [{
500
+ type: i0.Input,
501
+ args: [{
502
+ isSignal: true,
503
+ alias: "searchPlaceholder",
504
+ required: false
505
+ }]
506
+ }],
507
+ emptyText: [{
508
+ type: i0.Input,
509
+ args: [{
510
+ isSignal: true,
511
+ alias: "emptyText",
512
+ required: false
513
+ }]
514
+ }],
515
+ disabled: [{
516
+ type: i0.Input,
517
+ args: [{
518
+ isSignal: true,
519
+ alias: "disabled",
520
+ required: false
521
+ }]
522
+ }, {
523
+ type: i0.Output,
524
+ args: ["disabledChange"]
525
+ }],
526
+ class: [{
527
+ type: i0.Input,
528
+ args: [{
529
+ isSignal: true,
530
+ alias: "class",
531
+ required: false
532
+ }]
533
+ }],
534
+ trigger: [{
535
+ type: i0.ViewChild,
536
+ args: ["trigger", { isSignal: true }]
537
+ }],
538
+ panel: [{
539
+ type: i0.ViewChild,
540
+ args: ["panel", { isSignal: true }]
541
+ }]
542
+ }
543
+ });
544
+ export { ComboboxComponent };