@ojiepermana/angular 22.1.14 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +2 -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-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-COQ-60DS.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -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 +1719 -552
  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 +1 -1
  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 +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  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 +399 -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,205 +1,292 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, InjectionToken, ViewContainerRef, ElementRef, DestroyRef, input, output, signal } from '@angular/core';
3
- import * as i1 from '@ojiepermana/angular/component/utils/scale';
4
- import { ComponentScaleDirective } from '@ojiepermana/angular/component/utils/scale';
5
- import { Overlay } from '@angular/cdk/overlay';
6
- import { TemplatePortal } from '@angular/cdk/portal';
7
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import { UI_ID_GENERATOR } from '@ojiepermana/angular/component/utils/core';
9
- import { connectedPositionFor, oppositeSide, overlayDismissals } from '@ojiepermana/angular/component/utils/overlay';
10
-
11
- class PopoverContentDirective {
12
- componentScale = inject(ComponentScaleDirective);
13
- radius = this.componentScale.radius;
14
- density = this.componentScale.density;
15
- template = inject(TemplateRef);
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PopoverContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: PopoverContentDirective, isStandalone: true, selector: "ng-template[PopoverContent]", exportAs: ["PopoverContent"], hostDirectives: [{ directive: i1.ComponentScaleDirective, inputs: ["radius", "radius", "density", "density"] }], ngImport: i0 });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PopoverContentDirective, decorators: [{
20
- type: Directive,
21
- args: [{
22
- selector: 'ng-template[PopoverContent]',
23
- hostDirectives: [
24
- {
25
- directive: ComponentScaleDirective,
26
- inputs: ['radius', 'density'],
27
- },
28
- ],
29
- exportAs: 'PopoverContent',
30
- host: {},
31
- }]
32
- }] });
33
-
34
- const POPOVER_TRIGGER_DEFAULTS = new InjectionToken('POPOVER_TRIGGER_DEFAULTS');
35
- /**
36
- * Where initial focus lands inside an opened pane. Deliberately the plain
37
- * tabbable set rather than a CDK focus trap: the pane is a NON-modal dialog, so
38
- * focus has to be able to walk straight out of it again.
39
- */
1
+ import * as i0 from "@angular/core";
2
+ import { DestroyRef, Directive, ElementRef, InjectionToken, TemplateRef, ViewContainerRef, inject, input, output, signal } from "@angular/core";
3
+ import * as i1 from "@ojiepermana/angular/component/utils/scale";
4
+ import { ComponentScaleDirective } from "@ojiepermana/angular/component/utils/scale";
5
+ import { Overlay } from "@angular/cdk/overlay";
6
+ import { TemplatePortal } from "@angular/cdk/portal";
7
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
8
+ import { UI_ID_GENERATOR } from "@ojiepermana/angular/component/utils/core";
9
+ import { connectedPositionFor, oppositeSide, overlayDismissals } from "@ojiepermana/angular/component/utils/overlay";
10
+ var PopoverContentDirective = class PopoverContentDirective {
11
+ componentScale = inject(ComponentScaleDirective);
12
+ radius = this.componentScale.radius;
13
+ density = this.componentScale.density;
14
+ template = inject(TemplateRef);
15
+ static ɵfac = i0.ɵɵngDeclareFactory({
16
+ minVersion: "12.0.0",
17
+ version: "22.2.0",
18
+ ngImport: i0,
19
+ type: PopoverContentDirective,
20
+ deps: [],
21
+ target: i0.ɵɵFactoryTarget.Directive
22
+ });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({
24
+ minVersion: "14.0.0",
25
+ version: "22.2.0",
26
+ type: PopoverContentDirective,
27
+ isStandalone: true,
28
+ selector: "ng-template[PopoverContent]",
29
+ exportAs: ["PopoverContent"],
30
+ hostDirectives: [{
31
+ directive: i1.ComponentScaleDirective,
32
+ inputs: [
33
+ "radius",
34
+ "radius",
35
+ "density",
36
+ "density"
37
+ ]
38
+ }],
39
+ ngImport: i0
40
+ });
41
+ };
42
+ i0.ɵɵngDeclareClassMetadata({
43
+ minVersion: "12.0.0",
44
+ version: "22.2.0",
45
+ ngImport: i0,
46
+ type: PopoverContentDirective,
47
+ decorators: [{
48
+ type: Directive,
49
+ args: [{
50
+ selector: "ng-template[PopoverContent]",
51
+ hostDirectives: [{
52
+ directive: ComponentScaleDirective,
53
+ inputs: ["radius", "density"]
54
+ }],
55
+ exportAs: "PopoverContent",
56
+ host: {}
57
+ }]
58
+ }]
59
+ });
60
+ const POPOVER_TRIGGER_DEFAULTS = new InjectionToken("POPOVER_TRIGGER_DEFAULTS");
40
61
  const PANE_FOCUSABLE_SELECTOR = [
41
- 'a[href]',
42
- 'button:not([disabled])',
43
- 'input:not([disabled])',
44
- 'select:not([disabled])',
45
- 'textarea:not([disabled])',
46
- '[tabindex]:not([tabindex="-1"])',
47
- ].join(',');
48
- class PopoverTriggerDirective {
49
- overlay = inject(Overlay);
50
- vcr = inject(ViewContainerRef);
51
- el = inject(ElementRef);
52
- destroyRef = inject(DestroyRef);
53
- defaults = inject(POPOVER_TRIGGER_DEFAULTS, { optional: true });
54
- idGenerator = inject(UI_ID_GENERATOR);
55
- PopoverTrigger = input.required(/* @ts-ignore */
56
- ...(ngDevMode ? [{ debugName: "PopoverTrigger" }] : /* istanbul ignore next */ []));
57
- side = input(undefined, /* @ts-ignore */
58
- ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
59
- align = input(undefined, /* @ts-ignore */
60
- ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
61
- sideOffset = input(undefined, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "sideOffset" }] : /* istanbul ignore next */ []));
63
- disabled = input(false, /* @ts-ignore */
64
- ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
65
- openedChange = output();
66
- overlayRef = null;
67
- isOpen = signal(false, /* @ts-ignore */
68
- ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
69
- constructor() {
70
- this.destroyRef.onDestroy(() => this.close({ restoreFocus: false, emitOpenedChange: false }));
71
- }
72
- toggle() {
73
- if (this.disabled())
74
- return;
75
- if (this.isOpen()) {
76
- this.close();
77
- }
78
- else {
79
- this.open();
80
- }
81
- }
82
- onKeyboardToggle(event) {
83
- if (this.disabled() || this.usesNativeKeyboardActivation()) {
84
- return;
85
- }
86
- event.preventDefault();
87
- this.toggle();
88
- }
89
- open() {
90
- if (this.isOpen() || this.disabled())
91
- return;
92
- const side = this.side() ?? this.defaults?.side?.() ?? 'bottom';
93
- const align = this.align() ?? this.defaults?.align?.() ?? 'center';
94
- const sideOffset = this.sideOffset() ?? this.defaults?.sideOffset?.() ?? 8;
95
- const primary = connectedPositionFor(side, align, sideOffset);
96
- const fallback = connectedPositionFor(oppositeSide(side), align, sideOffset);
97
- const positionStrategy = this.overlay
98
- .position()
99
- .flexibleConnectedTo(this.el)
100
- .withPositions([primary, fallback])
101
- .withPush(true)
102
- .withViewportMargin(8)
103
- .withFlexibleDimensions(false);
104
- this.overlayRef = this.overlay.create({
105
- positionStrategy,
106
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
107
- hasBackdrop: false,
108
- panelClass: 'popover-panel',
109
- });
110
- const pane = this.overlayRef.overlayElement;
111
- const portal = new TemplatePortal(this.PopoverTrigger().template, this.vcr);
112
- this.overlayRef.attach(portal);
113
- this.applyDialogSemantics(pane);
114
- this.focusPane(pane);
115
- overlayDismissals(this.overlayRef, this.el.nativeElement)
116
- .pipe(takeUntilDestroyed(this.destroyRef))
117
- .subscribe((dismissal) => {
118
- // A pointer press outside is already handing focus to whatever was
119
- // pressed; pulling it back to the trigger would steal it. Escape and
120
- // detachment have no such destination, so they do restore.
121
- this.close({ restoreFocus: !(dismissal instanceof MouseEvent) });
122
- });
123
- this.isOpen.set(true);
124
- this.openedChange.emit(true);
125
- }
126
- close(options = {}) {
127
- const { restoreFocus = true, emitOpenedChange = true } = options;
128
- if (!this.isOpen())
129
- return;
130
- const overlayRef = this.overlayRef;
131
- this.overlayRef = null;
132
- this.isOpen.set(false);
133
- overlayRef?.dispose();
134
- if (emitOpenedChange) {
135
- this.openedChange.emit(false);
136
- }
137
- if (restoreFocus) {
138
- this.el.nativeElement.focus();
139
- }
140
- }
141
- /**
142
- * The pane opens with focus, because the trigger is the only way into it: a
143
- * keyboard user who is left standing on the trigger can never reach the content
144
- * at all (WCAG 2.4.3). A pane with nothing tabbable takes focus itself, so the
145
- * content is at least announced and Escape still reaches the overlay.
146
- */
147
- focusPane(pane) {
148
- const first = Array.from(pane.querySelectorAll(PANE_FOCUSABLE_SELECTOR)).find((element) => !element.hidden && !element.inert && element.getAttribute('aria-hidden') !== 'true');
149
- if (first) {
150
- first.focus();
151
- return;
152
- }
153
- if (!pane.hasAttribute('tabindex')) {
154
- pane.setAttribute('tabindex', '-1');
155
- }
156
- pane.focus();
157
- }
158
- /**
159
- * The trigger advertises `aria-haspopup="dialog"`, so the opened pane must be
160
- * a dialog: non-modal, labelled by its trigger so screen readers announce
161
- * which control the content belongs to.
162
- */
163
- applyDialogSemantics(pane) {
164
- const trigger = this.el.nativeElement;
165
- if (!trigger.id) {
166
- trigger.id = this.idGenerator.next('popover-trigger');
167
- }
168
- pane.setAttribute('role', 'dialog');
169
- pane.setAttribute('aria-modal', 'false');
170
- pane.setAttribute('aria-labelledby', trigger.id);
171
- }
172
- usesNativeKeyboardActivation() {
173
- const host = this.el.nativeElement;
174
- const tagName = host.tagName;
175
- return (tagName === 'BUTTON' ||
176
- tagName === 'INPUT' ||
177
- tagName === 'SELECT' ||
178
- tagName === 'TEXTAREA' ||
179
- tagName === 'SUMMARY' ||
180
- (tagName === 'A' && host.hasAttribute('href')));
181
- }
182
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
183
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: PopoverTriggerDirective, isStandalone: true, selector: "[PopoverTrigger]", inputs: { PopoverTrigger: { classPropertyName: "PopoverTrigger", publicName: "PopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, host: { listeners: { "click": "toggle()", "keydown.enter": "onKeyboardToggle($event)", "keydown.space": "onKeyboardToggle($event)", "keydown.escape": "close()" }, properties: { "attr.aria-expanded": "isOpen()", "attr.aria-haspopup": "\"dialog\"" } }, exportAs: ["PopoverTrigger"], ngImport: i0 });
184
- }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
186
- type: Directive,
187
- args: [{
188
- selector: '[PopoverTrigger]',
189
- exportAs: 'PopoverTrigger',
190
- host: {
191
- '[attr.aria-expanded]': 'isOpen()',
192
- '[attr.aria-haspopup]': '"dialog"',
193
- '(click)': 'toggle()',
194
- '(keydown.enter)': 'onKeyboardToggle($event)',
195
- '(keydown.space)': 'onKeyboardToggle($event)',
196
- '(keydown.escape)': 'close()',
197
- },
198
- }]
199
- }], ctorParameters: () => [], propDecorators: { PopoverTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "PopoverTrigger", required: true }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], sideOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOffset", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }] } });
200
-
201
- /**
202
- * Generated bundle index. Do not edit.
203
- */
204
-
205
- export { POPOVER_TRIGGER_DEFAULTS, PopoverContentDirective, PopoverTriggerDirective };
62
+ "a[href]",
63
+ "button:not([disabled])",
64
+ "input:not([disabled])",
65
+ "select:not([disabled])",
66
+ "textarea:not([disabled])",
67
+ "[tabindex]:not([tabindex=\"-1\"])"
68
+ ].join(",");
69
+ var PopoverTriggerDirective = class PopoverTriggerDirective {
70
+ overlay = inject(Overlay);
71
+ vcr = inject(ViewContainerRef);
72
+ el = inject(ElementRef);
73
+ destroyRef = inject(DestroyRef);
74
+ defaults = inject(POPOVER_TRIGGER_DEFAULTS, { optional: true });
75
+ idGenerator = inject(UI_ID_GENERATOR);
76
+ PopoverTrigger = input.required(...ngDevMode ? [{ debugName: "PopoverTrigger" }] : /* istanbul ignore next */ []);
77
+ side = input(void 0, ...ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []);
78
+ align = input(void 0, ...ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []);
79
+ sideOffset = input(void 0, ...ngDevMode ? [{ debugName: "sideOffset" }] : /* istanbul ignore next */ []);
80
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
81
+ openedChange = output();
82
+ overlayRef = null;
83
+ isOpen = signal(false, ...ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []);
84
+ constructor() {
85
+ this.destroyRef.onDestroy(() => this.close({
86
+ restoreFocus: false,
87
+ emitOpenedChange: false
88
+ }));
89
+ }
90
+ toggle() {
91
+ if (this.disabled()) return;
92
+ if (this.isOpen()) this.close();
93
+ else this.open();
94
+ }
95
+ onKeyboardToggle(event) {
96
+ if (this.disabled() || this.usesNativeKeyboardActivation()) return;
97
+ event.preventDefault();
98
+ this.toggle();
99
+ }
100
+ open() {
101
+ if (this.isOpen() || this.disabled()) return;
102
+ const side = this.side() ?? this.defaults?.side?.() ?? "bottom";
103
+ const align = this.align() ?? this.defaults?.align?.() ?? "center";
104
+ const sideOffset = this.sideOffset() ?? this.defaults?.sideOffset?.() ?? 8;
105
+ const primary = connectedPositionFor(side, align, sideOffset);
106
+ const fallback = connectedPositionFor(oppositeSide(side), align, sideOffset);
107
+ const positionStrategy = this.overlay.position().flexibleConnectedTo(this.el).withPositions([primary, fallback]).withPush(true).withViewportMargin(8).withFlexibleDimensions(false);
108
+ this.overlayRef = this.overlay.create({
109
+ positionStrategy,
110
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
111
+ hasBackdrop: false,
112
+ panelClass: "popover-panel"
113
+ });
114
+ const pane = this.overlayRef.overlayElement;
115
+ const portal = new TemplatePortal(this.PopoverTrigger().template, this.vcr);
116
+ this.overlayRef.attach(portal);
117
+ this.applyDialogSemantics(pane);
118
+ this.focusPane(pane);
119
+ overlayDismissals(this.overlayRef, this.el.nativeElement).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((dismissal) => {
120
+ this.close({ restoreFocus: !(dismissal instanceof MouseEvent) });
121
+ });
122
+ this.isOpen.set(true);
123
+ this.openedChange.emit(true);
124
+ }
125
+ close(options = {}) {
126
+ const { restoreFocus = true, emitOpenedChange = true } = options;
127
+ if (!this.isOpen()) return;
128
+ const overlayRef = this.overlayRef;
129
+ this.overlayRef = null;
130
+ this.isOpen.set(false);
131
+ overlayRef?.dispose();
132
+ if (emitOpenedChange) this.openedChange.emit(false);
133
+ if (restoreFocus) this.el.nativeElement.focus();
134
+ }
135
+ focusPane(pane) {
136
+ const first = Array.from(pane.querySelectorAll(PANE_FOCUSABLE_SELECTOR)).find((element) => !element.hidden && !element.inert && element.getAttribute("aria-hidden") !== "true");
137
+ if (first) {
138
+ first.focus();
139
+ return;
140
+ }
141
+ if (!pane.hasAttribute("tabindex")) pane.setAttribute("tabindex", "-1");
142
+ pane.focus();
143
+ }
144
+ applyDialogSemantics(pane) {
145
+ const trigger = this.el.nativeElement;
146
+ if (!trigger.id) trigger.id = this.idGenerator.next("popover-trigger");
147
+ pane.setAttribute("role", "dialog");
148
+ pane.setAttribute("aria-modal", "false");
149
+ pane.setAttribute("aria-labelledby", trigger.id);
150
+ }
151
+ usesNativeKeyboardActivation() {
152
+ const host = this.el.nativeElement;
153
+ const tagName = host.tagName;
154
+ return tagName === "BUTTON" || tagName === "INPUT" || tagName === "SELECT" || tagName === "TEXTAREA" || tagName === "SUMMARY" || tagName === "A" && host.hasAttribute("href");
155
+ }
156
+ static ɵfac = i0.ɵɵngDeclareFactory({
157
+ minVersion: "12.0.0",
158
+ version: "22.2.0",
159
+ ngImport: i0,
160
+ type: PopoverTriggerDirective,
161
+ deps: [],
162
+ target: i0.ɵɵFactoryTarget.Directive
163
+ });
164
+ static ɵdir = i0.ɵɵngDeclareDirective({
165
+ minVersion: "17.1.0",
166
+ version: "22.2.0",
167
+ type: PopoverTriggerDirective,
168
+ isStandalone: true,
169
+ selector: "[PopoverTrigger]",
170
+ inputs: {
171
+ PopoverTrigger: {
172
+ classPropertyName: "PopoverTrigger",
173
+ publicName: "PopoverTrigger",
174
+ isSignal: true,
175
+ isRequired: true,
176
+ transformFunction: null
177
+ },
178
+ side: {
179
+ classPropertyName: "side",
180
+ publicName: "side",
181
+ isSignal: true,
182
+ isRequired: false,
183
+ transformFunction: null
184
+ },
185
+ align: {
186
+ classPropertyName: "align",
187
+ publicName: "align",
188
+ isSignal: true,
189
+ isRequired: false,
190
+ transformFunction: null
191
+ },
192
+ sideOffset: {
193
+ classPropertyName: "sideOffset",
194
+ publicName: "sideOffset",
195
+ isSignal: true,
196
+ isRequired: false,
197
+ transformFunction: null
198
+ },
199
+ disabled: {
200
+ classPropertyName: "disabled",
201
+ publicName: "disabled",
202
+ isSignal: true,
203
+ isRequired: false,
204
+ transformFunction: null
205
+ }
206
+ },
207
+ outputs: { openedChange: "openedChange" },
208
+ host: {
209
+ listeners: {
210
+ "click": "toggle()",
211
+ "keydown.enter": "onKeyboardToggle($event)",
212
+ "keydown.space": "onKeyboardToggle($event)",
213
+ "keydown.escape": "close()"
214
+ },
215
+ properties: {
216
+ "attr.aria-expanded": "isOpen()",
217
+ "attr.aria-haspopup": "\"dialog\""
218
+ }
219
+ },
220
+ exportAs: ["PopoverTrigger"],
221
+ ngImport: i0
222
+ });
223
+ };
224
+ i0.ɵɵngDeclareClassMetadata({
225
+ minVersion: "12.0.0",
226
+ version: "22.2.0",
227
+ ngImport: i0,
228
+ type: PopoverTriggerDirective,
229
+ decorators: [{
230
+ type: Directive,
231
+ args: [{
232
+ selector: "[PopoverTrigger]",
233
+ exportAs: "PopoverTrigger",
234
+ host: {
235
+ "[attr.aria-expanded]": "isOpen()",
236
+ "[attr.aria-haspopup]": "\"dialog\"",
237
+ "(click)": "toggle()",
238
+ "(keydown.enter)": "onKeyboardToggle($event)",
239
+ "(keydown.space)": "onKeyboardToggle($event)",
240
+ "(keydown.escape)": "close()"
241
+ }
242
+ }]
243
+ }],
244
+ ctorParameters: () => [],
245
+ propDecorators: {
246
+ PopoverTrigger: [{
247
+ type: i0.Input,
248
+ args: [{
249
+ isSignal: true,
250
+ alias: "PopoverTrigger",
251
+ required: true
252
+ }]
253
+ }],
254
+ side: [{
255
+ type: i0.Input,
256
+ args: [{
257
+ isSignal: true,
258
+ alias: "side",
259
+ required: false
260
+ }]
261
+ }],
262
+ align: [{
263
+ type: i0.Input,
264
+ args: [{
265
+ isSignal: true,
266
+ alias: "align",
267
+ required: false
268
+ }]
269
+ }],
270
+ sideOffset: [{
271
+ type: i0.Input,
272
+ args: [{
273
+ isSignal: true,
274
+ alias: "sideOffset",
275
+ required: false
276
+ }]
277
+ }],
278
+ disabled: [{
279
+ type: i0.Input,
280
+ args: [{
281
+ isSignal: true,
282
+ alias: "disabled",
283
+ required: false
284
+ }]
285
+ }],
286
+ openedChange: [{
287
+ type: i0.Output,
288
+ args: ["openedChange"]
289
+ }]
290
+ }
291
+ });
292
+ export { POPOVER_TRIGGER_DEFAULTS, PopoverContentDirective, PopoverTriggerDirective };