@ngbase/adk 0.1.16 → 0.1.18

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 (203) hide show
  1. package/fesm2022/ngbase-adk-a11y.mjs +42 -42
  2. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  3. package/fesm2022/ngbase-adk-accordion.mjs +20 -26
  4. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  5. package/fesm2022/ngbase-adk-autocomplete.mjs +11 -11
  6. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  7. package/fesm2022/ngbase-adk-avatar.mjs +13 -13
  8. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  9. package/fesm2022/ngbase-adk-bidi.mjs +3 -3
  10. package/fesm2022/ngbase-adk-bidi.mjs.map +1 -1
  11. package/fesm2022/ngbase-adk-breadcrumb.mjs +14 -14
  12. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/ngbase-adk-cache.mjs +3 -3
  14. package/fesm2022/ngbase-adk-cache.mjs.map +1 -1
  15. package/fesm2022/ngbase-adk-carousel.mjs +18 -18
  16. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  17. package/fesm2022/ngbase-adk-checkbox.mjs +15 -21
  18. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  19. package/fesm2022/ngbase-adk-chip.mjs +12 -12
  20. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-clipboard.mjs +7 -5
  22. package/fesm2022/ngbase-adk-clipboard.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-collections.mjs.map +1 -1
  24. package/fesm2022/ngbase-adk-color-picker.mjs +44 -53
  25. package/fesm2022/ngbase-adk-color-picker.mjs.map +1 -1
  26. package/fesm2022/ngbase-adk-cookies.mjs +3 -3
  27. package/fesm2022/ngbase-adk-cookies.mjs.map +1 -1
  28. package/fesm2022/ngbase-adk-datepicker.mjs +70 -89
  29. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  30. package/fesm2022/ngbase-adk-dialog.mjs +17 -39
  31. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  32. package/fesm2022/ngbase-adk-drag.mjs +20 -20
  33. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  34. package/fesm2022/ngbase-adk-form-field.mjs +65 -118
  35. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  36. package/fesm2022/ngbase-adk-hover-card.mjs +5 -5
  37. package/fesm2022/ngbase-adk-hover-card.mjs.map +1 -1
  38. package/fesm2022/ngbase-adk-icon.mjs +9 -11
  39. package/fesm2022/ngbase-adk-icon.mjs.map +1 -1
  40. package/fesm2022/ngbase-adk-inline-edit.mjs +27 -35
  41. package/fesm2022/ngbase-adk-inline-edit.mjs.map +1 -1
  42. package/fesm2022/ngbase-adk-jwt.mjs +319 -41
  43. package/fesm2022/ngbase-adk-jwt.mjs.map +1 -1
  44. package/fesm2022/ngbase-adk-keys.mjs +6 -6
  45. package/fesm2022/ngbase-adk-keys.mjs.map +1 -1
  46. package/fesm2022/ngbase-adk-layout.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-list.mjs +10 -10
  48. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  49. package/fesm2022/ngbase-adk-mask.mjs +8 -8
  50. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  51. package/fesm2022/ngbase-adk-menu.mjs +69 -79
  52. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  53. package/fesm2022/ngbase-adk-network.mjs +3 -3
  54. package/fesm2022/ngbase-adk-network.mjs.map +1 -1
  55. package/fesm2022/ngbase-adk-otp.mjs +24 -45
  56. package/fesm2022/ngbase-adk-otp.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-pagination.mjs +9 -9
  58. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  59. package/fesm2022/ngbase-adk-popover.mjs +120 -89
  60. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-portal.mjs +134 -47
  62. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-progress.mjs +7 -7
  64. package/fesm2022/ngbase-adk-progress.mjs.map +1 -1
  65. package/fesm2022/ngbase-adk-radio.mjs +20 -27
  66. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-resizable.mjs +138 -48
  68. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  69. package/fesm2022/ngbase-adk-scroll-area.mjs +28 -20
  70. package/fesm2022/ngbase-adk-scroll-area.mjs.map +1 -1
  71. package/fesm2022/ngbase-adk-select.mjs +58 -80
  72. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  73. package/fesm2022/ngbase-adk-selectable.mjs +19 -30
  74. package/fesm2022/ngbase-adk-selectable.mjs.map +1 -1
  75. package/fesm2022/ngbase-adk-sheet.mjs +6 -20
  76. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -1
  77. package/fesm2022/ngbase-adk-sidenav.mjs +65 -46
  78. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  79. package/fesm2022/ngbase-adk-slider.mjs +40 -53
  80. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  81. package/fesm2022/ngbase-adk-sonner.mjs +12 -19
  82. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  83. package/fesm2022/ngbase-adk-stepper.mjs +17 -25
  84. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  85. package/fesm2022/ngbase-adk-switch.mjs +25 -32
  86. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  87. package/fesm2022/ngbase-adk-table.mjs +581 -83
  88. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  89. package/fesm2022/ngbase-adk-tabs.mjs +37 -35
  90. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  91. package/fesm2022/ngbase-adk-test.mjs.map +1 -1
  92. package/fesm2022/ngbase-adk-toggle-group.mjs +20 -34
  93. package/fesm2022/ngbase-adk-toggle-group.mjs.map +1 -1
  94. package/fesm2022/ngbase-adk-toggle.mjs +14 -19
  95. package/fesm2022/ngbase-adk-toggle.mjs.map +1 -1
  96. package/fesm2022/ngbase-adk-tooltip.mjs +12 -19
  97. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  98. package/fesm2022/ngbase-adk-tour.mjs +52 -52
  99. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  100. package/fesm2022/ngbase-adk-translate.mjs +8 -10
  101. package/fesm2022/ngbase-adk-translate.mjs.map +1 -1
  102. package/fesm2022/ngbase-adk-tree.mjs +20 -20
  103. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  104. package/fesm2022/ngbase-adk-utils.mjs +30 -43
  105. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  106. package/fesm2022/ngbase-adk-virtualizer.mjs +9 -9
  107. package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
  108. package/package.json +91 -91
  109. package/schematics/components/files/accordion/accordion.ts.template +9 -6
  110. package/schematics/components/files/audio/AudioPlayer.ts.template +245 -0
  111. package/schematics/components/files/audio/AudioRecorder.ts.template +377 -0
  112. package/schematics/components/files/audio/AudioVisualizer.ts.template +175 -0
  113. package/schematics/components/files/audio/index.ts.template +3 -0
  114. package/schematics/components/files/button/button-llm.md.template +3 -2
  115. package/schematics/components/files/charts/area-chart.component.ts.template +278 -0
  116. package/schematics/components/files/charts/bar-chart.component.ts.template +262 -0
  117. package/schematics/components/files/charts/chart-tooltip.component.ts.template +168 -0
  118. package/schematics/components/files/charts/index.ts.template +4 -0
  119. package/schematics/components/files/charts/line-chart.component.ts.template +238 -0
  120. package/schematics/components/files/charts/pie-chart.component.ts.template +283 -0
  121. package/schematics/components/files/checkbox/checkbox.ts.template +2 -2
  122. package/schematics/components/files/color-picker/color-picker.ts.template +2 -2
  123. package/schematics/components/files/dialog/dialog.ts.template +18 -14
  124. package/schematics/components/files/drawer/drawer.ts.template +30 -27
  125. package/schematics/components/files/form-field/form-field.ts.template +51 -23
  126. package/schematics/components/files/pagination/pagination.ts.template +4 -4
  127. package/schematics/components/files/picasa/picasa-base.component.ts.template +15 -30
  128. package/schematics/components/files/popover/popover.ts.template +15 -4
  129. package/schematics/components/files/select/list-selection.ts.template +0 -2
  130. package/schematics/components/files/select/option.ts.template +1 -1
  131. package/schematics/components/files/selectable/selectable.ts.template +2 -2
  132. package/schematics/components/files/sheet/sheet.ts.template +26 -14
  133. package/schematics/components/files/sidenav/sidenav.ts.template +7 -5
  134. package/schematics/components/files/sonner/sonner.ts.template +1 -2
  135. package/schematics/components/files/stepper/stepper.ts.template +2 -4
  136. package/schematics/components/files/switch/switch.ts.template +2 -2
  137. package/schematics/components/files/table/table.ts.template +43 -3
  138. package/schematics/components/files/tabs/tab.ts.template +3 -3
  139. package/schematics/components/files/theme/theme.service.ts.template +3 -3
  140. package/schematics/components/files/toggle/toggle.ts.template +1 -1
  141. package/schematics/components/files/toggle-group/toggle-group.ts.template +1 -1
  142. package/schematics/components/files/tooltip/tooltip.ts.template +2 -3
  143. package/schematics/components/schema.json +2 -0
  144. package/{accordion/index.d.ts → types/ngbase-adk-accordion.d.ts} +1 -3
  145. package/{autocomplete/index.d.ts → types/ngbase-adk-autocomplete.d.ts} +2 -7
  146. package/{checkbox/index.d.ts → types/ngbase-adk-checkbox.d.ts} +8 -14
  147. package/types/ngbase-adk-clipboard.d.ts +12 -0
  148. package/{color-picker/index.d.ts → types/ngbase-adk-color-picker.d.ts} +14 -26
  149. package/{datepicker/index.d.ts → types/ngbase-adk-datepicker.d.ts} +9 -18
  150. package/{dialog/index.d.ts → types/ngbase-adk-dialog.d.ts} +3 -8
  151. package/types/ngbase-adk-form-field.d.ts +88 -0
  152. package/{inline-edit/index.d.ts → types/ngbase-adk-inline-edit.d.ts} +8 -16
  153. package/types/ngbase-adk-jwt.d.ts +64 -0
  154. package/{menu/index.d.ts → types/ngbase-adk-menu.d.ts} +6 -5
  155. package/{otp/index.d.ts → types/ngbase-adk-otp.d.ts} +8 -16
  156. package/{popover/index.d.ts → types/ngbase-adk-popover.d.ts} +14 -2
  157. package/{portal/index.d.ts → types/ngbase-adk-portal.d.ts} +29 -8
  158. package/{radio/index.d.ts → types/ngbase-adk-radio.d.ts} +9 -12
  159. package/{resizable/index.d.ts → types/ngbase-adk-resizable.d.ts} +4 -4
  160. package/{scroll-area/index.d.ts → types/ngbase-adk-scroll-area.d.ts} +2 -1
  161. package/{select/index.d.ts → types/ngbase-adk-select.d.ts} +8 -22
  162. package/{selectable/index.d.ts → types/ngbase-adk-selectable.d.ts} +6 -10
  163. package/{sheet/index.d.ts → types/ngbase-adk-sheet.d.ts} +4 -3
  164. package/{sidenav/index.d.ts → types/ngbase-adk-sidenav.d.ts} +6 -6
  165. package/{slider/index.d.ts → types/ngbase-adk-slider.d.ts} +8 -17
  166. package/{sonner/index.d.ts → types/ngbase-adk-sonner.d.ts} +1 -3
  167. package/{stepper/index.d.ts → types/ngbase-adk-stepper.d.ts} +1 -4
  168. package/{switch/index.d.ts → types/ngbase-adk-switch.d.ts} +7 -14
  169. package/{table/index.d.ts → types/ngbase-adk-table.d.ts} +126 -3
  170. package/{test/index.d.ts → types/ngbase-adk-test.d.ts} +1 -1
  171. package/{toggle-group/index.d.ts → types/ngbase-adk-toggle-group.d.ts} +5 -10
  172. package/types/ngbase-adk-toggle.d.ts +14 -0
  173. package/{tooltip/index.d.ts → types/ngbase-adk-tooltip.d.ts} +9 -11
  174. package/{tour/index.d.ts → types/ngbase-adk-tour.d.ts} +4 -6
  175. package/{utils/index.d.ts → types/ngbase-adk-utils.d.ts} +15 -11
  176. package/clipboard/index.d.ts +0 -11
  177. package/form-field/index.d.ts +0 -97
  178. package/jwt/index.d.ts +0 -20
  179. package/toggle/index.d.ts +0 -16
  180. /package/{a11y/index.d.ts → types/ngbase-adk-a11y.d.ts} +0 -0
  181. /package/{avatar/index.d.ts → types/ngbase-adk-avatar.d.ts} +0 -0
  182. /package/{bidi/index.d.ts → types/ngbase-adk-bidi.d.ts} +0 -0
  183. /package/{breadcrumb/index.d.ts → types/ngbase-adk-breadcrumb.d.ts} +0 -0
  184. /package/{cache/index.d.ts → types/ngbase-adk-cache.d.ts} +0 -0
  185. /package/{carousel/index.d.ts → types/ngbase-adk-carousel.d.ts} +0 -0
  186. /package/{chip/index.d.ts → types/ngbase-adk-chip.d.ts} +0 -0
  187. /package/{collections/index.d.ts → types/ngbase-adk-collections.d.ts} +0 -0
  188. /package/{cookies/index.d.ts → types/ngbase-adk-cookies.d.ts} +0 -0
  189. /package/{drag/index.d.ts → types/ngbase-adk-drag.d.ts} +0 -0
  190. /package/{hover-card/index.d.ts → types/ngbase-adk-hover-card.d.ts} +0 -0
  191. /package/{icon/index.d.ts → types/ngbase-adk-icon.d.ts} +0 -0
  192. /package/{keys/index.d.ts → types/ngbase-adk-keys.d.ts} +0 -0
  193. /package/{layout/index.d.ts → types/ngbase-adk-layout.d.ts} +0 -0
  194. /package/{list/index.d.ts → types/ngbase-adk-list.d.ts} +0 -0
  195. /package/{mask/index.d.ts → types/ngbase-adk-mask.d.ts} +0 -0
  196. /package/{network/index.d.ts → types/ngbase-adk-network.d.ts} +0 -0
  197. /package/{pagination/index.d.ts → types/ngbase-adk-pagination.d.ts} +0 -0
  198. /package/{progress/index.d.ts → types/ngbase-adk-progress.d.ts} +0 -0
  199. /package/{tabs/index.d.ts → types/ngbase-adk-tabs.d.ts} +0 -0
  200. /package/{translate/index.d.ts → types/ngbase-adk-translate.d.ts} +0 -0
  201. /package/{tree/index.d.ts → types/ngbase-adk-tree.d.ts} +0 -0
  202. /package/{virtualizer/index.d.ts → types/ngbase-adk-virtualizer.d.ts} +0 -0
  203. /package/{index.d.ts → types/ngbase-adk.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-scroll-area.mjs","sources":["../../../projects/adk/scroll-area/scroll-area.ts","../../../projects/adk/scroll-area/ngbase-adk-scroll-area.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n computed,\n signal,\n ChangeDetectionStrategy,\n viewChild,\n effect,\n Directive,\n input,\n inject,\n contentChildren,\n} from '@angular/core';\nimport { Drag, DragData } from '@ngbase/adk/drag';\nimport { isClient } from '@ngbase/adk/utils';\n\nexport type ScrollBarOrientation = 'vertical' | 'horizontal' | 'both';\n\n@Directive({\n selector: '[ngbScrollBar]',\n hostDirectives: [Drag],\n host: {\n style: `position: absolute; cursor: pointer; z-index: 100;`,\n '[style]': 'size()',\n '[attr.data-visible]': 'visible()',\n '[attr.data-active]': 'scrollArea.isDragging()',\n '[hidden]': '!show()',\n },\n})\nexport class NgbScrollBar {\n readonly el = inject<ElementRef<HTMLDivElement>>(ElementRef);\n readonly scrollArea = inject(NgbScrollArea);\n readonly drag = inject(Drag);\n readonly ngbScrollBar = input.required<'vertical' | 'horizontal'>();\n\n readonly visible = computed(() => {\n return this.ngbScrollBar() === 'vertical'\n ? this.scrollArea.showVerticalScroll()\n : this.scrollArea.showHorizontalScroll();\n });\n\n readonly show = computed(() => {\n return this.ngbScrollBar() === 'vertical'\n ? this.scrollArea.showVerticalBar()\n : this.scrollArea.showHorizontalBar();\n });\n\n readonly size = computed(() => {\n let sty =\n this.ngbScrollBar() === 'vertical'\n ? `height: ${this.scrollArea.scrollbarHeight()}%;`\n : `width: ${this.scrollArea.scrollbarWidth()}%;`;\n sty +=\n this.ngbScrollBar() === 'vertical'\n ? 'width: 8px; top: 0; right: 0;'\n : 'height: 8px; bottom: 0; left: 0;';\n return sty;\n });\n\n constructor() {\n this.drag.events.subscribe(data => {\n if (this.ngbScrollBar() === 'vertical') {\n this.scrollArea.startDraggingVertical(data);\n } else {\n this.scrollArea.startDraggingHorizontal(data);\n }\n });\n }\n}\n\n@Component({\n selector: '[ngbScrollArea]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"scroll-area-viewport hide-scrollbar\" #scrollAreaViewport>\n <div class=\"scroll-area-content\" style=\"height: 100%;\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <ng-content select=\"[ngbScrollBar]\"></ng-content>\n\n <!-- Corner piece when both scrollbars are visible -->\n @if (hasVertical() && hasHorizontal() && orientation() === 'both') {\n <ng-content select=\".scroll-area-corner\"></ng-content>\n }\n `,\n styles: [\n `\n :host {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n\n .scroll-area-viewport {\n width: 100%;\n height: 100%;\n overflow: auto;\n flex: 1;\n min-height: 0;\n }\n\n .scroll-area-viewport.hide-scrollbar {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .scroll-area-viewport.hide-scrollbar::-webkit-scrollbar {\n display: none;\n }\n\n .scroll-area-content {\n min-height: 0;\n min-width: fit-content;\n }\n\n .scroll-area-corner {\n position: absolute;\n right: 0;\n bottom: 0;\n width: 8px;\n height: 8px;\n background: rgba(0, 0, 0, 0.3);\n border-radius: 4px;\n }\n `,\n ],\n})\nexport class NgbScrollArea {\n readonly scrollAreaViewport =\n viewChild.required<ElementRef<HTMLDivElement>>('scrollAreaViewport');\n readonly scrollbars = contentChildren(NgbScrollBar);\n readonly scrollbarVertical = computed(() => {\n const scrollbars = this.scrollbars();\n return scrollbars.find(scrollbar => scrollbar.ngbScrollBar() === 'vertical');\n });\n readonly scrollbarHorizontal = computed(() => {\n const scrollbars = this.scrollbars();\n return scrollbars.find(scrollbar => scrollbar.ngbScrollBar() === 'horizontal');\n });\n\n readonly orientation = input<ScrollBarOrientation>('both');\n readonly hideDelay = input(1000); // Time in ms to hide scrollbar after scroll\n readonly alwaysShow = input(false); // Whether to always show the scrollbar\n\n private viewportHeight = signal(0);\n private viewportWidth = signal(0);\n private contentHeight = signal(0);\n private contentWidth = signal(0);\n private isScrolling = signal(false);\n private hideTimeout: any;\n readonly isDragging = signal(false);\n private startY = 0;\n private startX = 0;\n private startScrollTop = 0;\n private startScrollLeft = 0;\n private client = isClient();\n\n protected readonly showScrollbar = computed(() => {\n return this.alwaysShow() || this.isScrolling() || this.isDragging();\n });\n\n protected readonly hasVertical = computed(() => this.contentHeight() > this.viewportHeight());\n protected readonly hasHorizontal = computed(() => this.contentWidth() > this.viewportWidth());\n\n readonly showVerticalBar = computed(\n () => this.hasVertical() && this.orientation() !== 'horizontal',\n );\n readonly showHorizontalBar = computed(\n () => this.hasHorizontal() && this.orientation() !== 'vertical',\n );\n\n readonly showVerticalScroll = computed(() => this.showVerticalBar() && this.showScrollbar());\n readonly showHorizontalScroll = computed(() => this.showHorizontalBar() && this.showScrollbar());\n\n readonly scrollbarHeight = computed(() => {\n const viewportToContentRatio = this.viewportHeight() / this.contentHeight();\n return Math.max(viewportToContentRatio * 100, 10); // Minimum 10% height\n });\n\n readonly scrollbarWidth = computed(() => {\n const viewportToContentRatio = this.viewportWidth() / this.contentWidth();\n return Math.max(viewportToContentRatio * 100, 10); // Minimum 10% width\n });\n\n constructor() {\n effect(cleanup => {\n this.updateDimensions();\n const viewport = this.scrollAreaViewport().nativeElement;\n\n if (this.client) {\n viewport.addEventListener('scroll', this.handleScroll);\n // Set up resize observer\n const resizeObserver = new ResizeObserver(() => {\n this.updateDimensions();\n });\n\n resizeObserver.observe(viewport);\n resizeObserver.observe(viewport.firstElementChild as Element);\n\n cleanup(() => {\n viewport.removeEventListener('scroll', this.handleScroll);\n resizeObserver.disconnect();\n });\n }\n });\n }\n\n private updateDimensions() {\n const viewport = this.scrollAreaViewport().nativeElement;\n this.viewportHeight.set(viewport.clientHeight);\n this.viewportWidth.set(viewport.clientWidth);\n this.contentHeight.set(viewport.scrollHeight);\n this.contentWidth.set(viewport.scrollWidth);\n }\n\n private handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n this.isScrolling.set(true);\n\n this.scrollbarVerticalTransform(target.scrollTop);\n this.scrollbarHorizontalTransform(target.scrollLeft);\n // Clear existing timeout\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n }\n\n // Set new timeout to hide scrollbar\n this.hideTimeout = setTimeout(() => {\n this.isScrolling.set(false);\n }, this.hideDelay());\n };\n\n private scrollbarVerticalTransform(scrollTop: number) {\n const scrollbar = this.scrollbarVertical()?.el.nativeElement;\n if (!scrollbar) return;\n const scrollRatio = scrollTop / (this.contentHeight() - this.viewportHeight());\n const maxTranslate =\n this.viewportHeight() - (this.viewportHeight() * this.scrollbarHeight()) / 100;\n const translateY = scrollRatio * maxTranslate;\n scrollbar.style.transform = `translateY(${translateY}px)`;\n }\n\n private scrollbarHorizontalTransform(scrollLeft: number) {\n const scrollbar = this.scrollbarHorizontal()?.el.nativeElement;\n if (!scrollbar) return;\n const scrollRatio = scrollLeft / (this.contentWidth() - this.viewportWidth());\n const maxTranslate =\n this.viewportWidth() - (this.viewportWidth() * this.scrollbarWidth()) / 100;\n const translateX = scrollRatio * maxTranslate;\n scrollbar.style.transform = `translateX(${translateX}px)`;\n }\n\n startDraggingVertical(data: DragData) {\n data.event?.preventDefault();\n if (data.type === 'start') {\n this.startScrollTop = this.scrollAreaViewport().nativeElement.scrollTop;\n this.isDragging.set(true);\n this.startY = data.clientY!;\n } else if (data.type === 'end') {\n this.isDragging.set(false);\n }\n\n const delta = data.clientY! - this.startY;\n const scrollRatio =\n delta / (this.viewportHeight() - (this.viewportHeight() * this.scrollbarHeight()) / 100);\n const balance = this.contentHeight() - this.viewportHeight();\n const newScrollTop = this.startScrollTop + scrollRatio * balance;\n\n const value = Math.max(0, Math.min(newScrollTop, balance));\n\n this.scrollAreaViewport().nativeElement.scrollTop = value;\n }\n\n startDraggingHorizontal(data: DragData) {\n data.event?.preventDefault();\n if (data.type === 'start') {\n this.startScrollLeft = this.scrollAreaViewport().nativeElement.scrollLeft;\n this.isDragging.set(true);\n this.startX = data.clientX!;\n } else if (data.type === 'end') {\n this.isDragging.set(false);\n }\n\n const delta = data.clientX! - this.startX;\n const scrollRatio =\n delta / (this.viewportWidth() - (this.viewportWidth() * this.scrollbarWidth()) / 100);\n const balance = this.contentWidth() - this.viewportWidth();\n const newScrollLeft = this.startScrollLeft + scrollRatio * balance;\n\n const value = Math.max(0, Math.min(newScrollLeft, balance));\n\n this.scrollAreaViewport().nativeElement.scrollLeft = value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-scroll-area.mjs","sources":["../../../projects/adk/scroll-area/scroll-area.ts","../../../projects/adk/scroll-area/ngbase-adk-scroll-area.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n computed,\n signal,\n ChangeDetectionStrategy,\n viewChild,\n effect,\n Directive,\n input,\n inject,\n contentChildren,\n} from '@angular/core';\nimport { Drag, DragData } from '@ngbase/adk/drag';\nimport { isClient } from '@ngbase/adk/utils';\n\nexport type ScrollBarOrientation = 'vertical' | 'horizontal' | 'both';\n\n@Directive({\n selector: '[ngbScrollBar]',\n hostDirectives: [Drag],\n host: {\n style: `position: absolute; cursor: pointer; z-index: 100;`,\n '[style]': 'size()',\n '[attr.data-visible]': 'visible()',\n '[attr.data-active]': 'scrollArea.isDragging()',\n '[hidden]': '!show()',\n },\n})\nexport class NgbScrollBar {\n readonly el = inject<ElementRef<HTMLDivElement>>(ElementRef);\n readonly scrollArea = inject(NgbScrollArea);\n readonly drag = inject(Drag);\n readonly ngbScrollBar = input.required<'vertical' | 'horizontal'>();\n\n readonly visible = computed(() => {\n return this.ngbScrollBar() === 'vertical'\n ? this.scrollArea.showVerticalScroll()\n : this.scrollArea.showHorizontalScroll();\n });\n\n readonly show = computed(() => {\n return this.ngbScrollBar() === 'vertical'\n ? this.scrollArea.showVerticalBar()\n : this.scrollArea.showHorizontalBar();\n });\n\n readonly size = computed(() => {\n let sty =\n this.ngbScrollBar() === 'vertical'\n ? `height: ${this.scrollArea.scrollbarHeight()}%;`\n : `width: ${this.scrollArea.scrollbarWidth()}%;`;\n sty +=\n this.ngbScrollBar() === 'vertical'\n ? 'width: 8px; top: 0; right: 0;'\n : 'height: 8px; bottom: 0; left: 0;';\n return sty;\n });\n\n constructor() {\n this.drag.events.subscribe(data => {\n if (this.ngbScrollBar() === 'vertical') {\n this.scrollArea.startDraggingVertical(data);\n } else {\n this.scrollArea.startDraggingHorizontal(data);\n }\n });\n }\n}\n\n@Component({\n selector: '[ngbScrollArea]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"scroll-area-viewport hide-scrollbar\" #scrollAreaViewport>\n <div class=\"scroll-area-content\" style=\"height: 100%;\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <ng-content select=\"[ngbScrollBar]\"></ng-content>\n\n <!-- Corner piece when both scrollbars are visible -->\n @if (hasVertical() && hasHorizontal() && orientation() === 'both') {\n <ng-content select=\".scroll-area-corner\"></ng-content>\n }\n `,\n styles: [\n `\n :host {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n\n .scroll-area-viewport {\n width: 100%;\n height: 100%;\n overflow: auto;\n flex: 1;\n min-height: 0;\n }\n\n .scroll-area-viewport.hide-scrollbar {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .scroll-area-viewport.hide-scrollbar::-webkit-scrollbar {\n display: none;\n }\n\n .scroll-area-content {\n min-height: 0;\n min-width: fit-content;\n }\n\n .scroll-area-corner {\n position: absolute;\n right: 0;\n bottom: 0;\n width: 8px;\n height: 8px;\n background: rgba(0, 0, 0, 0.3);\n border-radius: 4px;\n }\n `,\n ],\n})\nexport class NgbScrollArea {\n readonly scrollAreaViewport =\n viewChild.required<ElementRef<HTMLDivElement>>('scrollAreaViewport');\n readonly scrollbars = contentChildren(NgbScrollBar);\n readonly scrollbarVertical = computed(() => {\n const scrollbars = this.scrollbars();\n return scrollbars.find(scrollbar => scrollbar.ngbScrollBar() === 'vertical');\n });\n readonly scrollbarHorizontal = computed(() => {\n const scrollbars = this.scrollbars();\n return scrollbars.find(scrollbar => scrollbar.ngbScrollBar() === 'horizontal');\n });\n\n readonly orientation = input<ScrollBarOrientation>('both');\n readonly hideDelay = input(1000); // Time in ms to hide scrollbar after scroll\n readonly alwaysShow = input(false); // Whether to always show the scrollbar\n\n private viewportHeight = signal(0);\n private viewportWidth = signal(0);\n private contentHeight = signal(0);\n private contentWidth = signal(0);\n private isScrolling = signal(false);\n private hideTimeout: any;\n readonly isDragging = signal(false);\n private startY = 0;\n private startX = 0;\n private startScrollTop = 0;\n private startScrollLeft = 0;\n private client = isClient();\n\n protected readonly showScrollbar = computed(() => {\n return this.alwaysShow() || this.isScrolling() || this.isDragging();\n });\n\n protected readonly hasVertical = computed(() => this.contentHeight() > this.viewportHeight());\n protected readonly hasHorizontal = computed(() => this.contentWidth() > this.viewportWidth());\n\n readonly showVerticalBar = computed(\n () => this.hasVertical() && this.orientation() !== 'horizontal',\n );\n readonly showHorizontalBar = computed(\n () => this.hasHorizontal() && this.orientation() !== 'vertical',\n );\n\n readonly showVerticalScroll = computed(() => this.showVerticalBar() && this.showScrollbar());\n readonly showHorizontalScroll = computed(() => this.showHorizontalBar() && this.showScrollbar());\n\n readonly scrollbarHeight = computed(() => {\n const viewportToContentRatio = this.viewportHeight() / this.contentHeight();\n return Math.max(viewportToContentRatio * 100, 10); // Minimum 10% height\n });\n\n readonly scrollbarWidth = computed(() => {\n const viewportToContentRatio = this.viewportWidth() / this.contentWidth();\n return Math.max(viewportToContentRatio * 100, 10); // Minimum 10% width\n });\n\n constructor() {\n effect(cleanup => {\n this.updateDimensions();\n const viewport = this.scrollAreaViewport().nativeElement;\n\n if (this.client) {\n viewport.addEventListener('scroll', this.handleScroll);\n // Set up resize observer\n const resizeObserver = new ResizeObserver(() => {\n this.updateDimensions();\n });\n\n resizeObserver.observe(viewport);\n const el = viewport.firstElementChild as Element;\n if (el) resizeObserver.observe(el);\n if (el.firstElementChild) resizeObserver.observe(el.firstElementChild as Element);\n\n cleanup(() => {\n viewport.removeEventListener('scroll', this.handleScroll);\n resizeObserver.disconnect();\n });\n }\n });\n }\n\n private updateDimensions() {\n const viewport = this.scrollAreaViewport().nativeElement;\n this.viewportHeight.set(viewport.clientHeight);\n this.viewportWidth.set(viewport.clientWidth);\n this.contentHeight.set(viewport.scrollHeight);\n this.contentWidth.set(viewport.scrollWidth);\n this._updateScroll(viewport);\n }\n\n private handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n this.isScrolling.set(true);\n this._updateScroll(target);\n };\n\n private _updateScroll(target: HTMLElement) {\n this.scrollbarVerticalTransform(target.scrollTop);\n this.scrollbarHorizontalTransform(target.scrollLeft);\n // Clear existing timeout\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n }\n\n // Set new timeout to hide scrollbar\n this.hideTimeout = setTimeout(() => {\n this.isScrolling.set(false);\n }, this.hideDelay());\n }\n\n private scrollbarVerticalTransform(scrollTop: number) {\n const scrollbar = this.scrollbarVertical()?.el.nativeElement;\n if (!scrollbar) return;\n const scrollRatio = scrollTop / (this.contentHeight() - this.viewportHeight());\n const maxTranslate =\n this.viewportHeight() - (this.viewportHeight() * this.scrollbarHeight()) / 100;\n const translateY = scrollRatio * maxTranslate;\n scrollbar.style.transform = `translateY(${translateY}px)`;\n }\n\n private scrollbarHorizontalTransform(scrollLeft: number) {\n const scrollbar = this.scrollbarHorizontal()?.el.nativeElement;\n if (!scrollbar) return;\n const scrollRatio = scrollLeft / (this.contentWidth() - this.viewportWidth());\n const maxTranslate =\n this.viewportWidth() - (this.viewportWidth() * this.scrollbarWidth()) / 100;\n const translateX = scrollRatio * maxTranslate;\n scrollbar.style.transform = `translateX(${translateX}px)`;\n }\n\n startDraggingVertical(data: DragData) {\n data.event?.preventDefault();\n if (data.type === 'start') {\n this.startScrollTop = this.scrollAreaViewport().nativeElement.scrollTop;\n this.isDragging.set(true);\n this.startY = data.clientY!;\n } else if (data.type === 'end') {\n this.isDragging.set(false);\n }\n\n const delta = data.clientY! - this.startY;\n const scrollRatio =\n delta / (this.viewportHeight() - (this.viewportHeight() * this.scrollbarHeight()) / 100);\n const balance = this.contentHeight() - this.viewportHeight();\n const newScrollTop = this.startScrollTop + scrollRatio * balance;\n\n const value = Math.max(0, Math.min(newScrollTop, balance));\n\n this.scrollAreaViewport().nativeElement.scrollTop = value;\n }\n\n startDraggingHorizontal(data: DragData) {\n data.event?.preventDefault();\n if (data.type === 'start') {\n this.startScrollLeft = this.scrollAreaViewport().nativeElement.scrollLeft;\n this.isDragging.set(true);\n this.startX = data.clientX!;\n } else if (data.type === 'end') {\n this.isDragging.set(false);\n }\n\n const delta = data.clientX! - this.startX;\n const scrollRatio =\n delta / (this.viewportWidth() - (this.viewportWidth() * this.scrollbarWidth()) / 100);\n const balance = this.contentWidth() - this.viewportWidth();\n const newScrollLeft = this.startScrollLeft + scrollRatio * balance;\n\n const value = Math.max(0, Math.min(newScrollLeft, balance));\n\n this.scrollAreaViewport().nativeElement.scrollLeft = value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, ElementRef, input, booleanAttribute, output, signal, linkedSignal, Directive, contentChildren, viewChild, TemplateRef, model, computed, effect, untracked, contentChild } from '@angular/core';
3
3
  import * as i1 from '@ngbase/adk/a11y';
4
4
  import { AccessibleItem, AccessibleGroup, Autofocus } from '@ngbase/adk/a11y';
5
- import { uniqueId, filterFunction, provideValueAccessor } from '@ngbase/adk/utils';
5
+ import { uniqueId, filterFunction } from '@ngbase/adk/utils';
6
6
  import { Directionality } from '@ngbase/adk/bidi';
7
7
  import { ngbPopoverPortal } from '@ngbase/adk/popover';
8
8
  import { Subject } from 'rxjs';
@@ -15,14 +15,14 @@ class NgbOption {
15
15
  this.el = inject(ElementRef);
16
16
  // inputs
17
17
  this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
18
- this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
18
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
19
19
  this.ayId = input(...(ngDevMode ? [undefined, { debugName: "ayId" }] : []));
20
20
  // outputs
21
21
  this.onSelectionChange = output();
22
22
  this.multiple = signal(false, ...(ngDevMode ? [{ debugName: "multiple" }] : []));
23
23
  this.checked = signal(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
24
24
  this.active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
25
- this._ayId = linkedSignal({ source: this.ayId, computation: id => id || '' });
25
+ this._ayId = linkedSignal({ ...(ngDevMode ? { debugName: "_ayId" } : {}), source: this.ayId, computation: id => id || '' });
26
26
  this.allyItem._ayId = this._ayId;
27
27
  this.allyItem._disabled = this.disabled;
28
28
  }
@@ -46,10 +46,10 @@ class NgbOption {
46
46
  }
47
47
  return this.value();
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOption, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
50
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbOption, isStandalone: true, selector: "[ngbOption]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ayId: { classPropertyName: "ayId", publicName: "ayId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, host: { attributes: { "role": "option", "tabindex": "-1" }, listeners: { "click": "selectOption()" } }, hostDirectives: [{ directive: i1.AccessibleItem }], ngImport: i0 }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbOption, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
50
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbOption, isStandalone: true, selector: "[ngbOption]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ayId: { classPropertyName: "ayId", publicName: "ayId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, host: { attributes: { "role": "option", "tabindex": "-1" }, listeners: { "click": "selectOption()" } }, hostDirectives: [{ directive: i1.AccessibleItem }], ngImport: i0 }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOption, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbOption, decorators: [{
53
53
  type: Directive,
54
54
  args: [{
55
55
  selector: '[ngbOption]',
@@ -60,16 +60,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
60
60
  '(click)': 'selectOption()',
61
61
  },
62
62
  }]
63
- }], ctorParameters: () => [] });
63
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ayId: [{ type: i0.Input, args: [{ isSignal: true, alias: "ayId", required: false }] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }] } });
64
64
 
65
65
  class NgbSelectTarget {
66
66
  constructor() {
67
67
  this.target = signal(null, ...(ngDevMode ? [{ debugName: "target" }] : []));
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectTarget, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbSelectTarget, isStandalone: true, selector: "[ngbSelectTarget]", ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectTarget, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbSelectTarget, isStandalone: true, selector: "[ngbSelectTarget]", ngImport: i0 }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectTarget, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectTarget, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: '[ngbSelectTarget]',
@@ -82,16 +82,17 @@ class SelectBase {
82
82
  this.el = inject(ElementRef);
83
83
  this.dir = inject(Directionality);
84
84
  this.target = inject(NgbSelectTarget, { optional: true });
85
- this.list = contentChildren(NgbOption, ...(ngDevMode ? [{ debugName: "list", descendants: true }] : [{ descendants: true }]));
85
+ this.list = contentChildren(NgbOption, { ...(ngDevMode ? { debugName: "list" } : {}), descendants: true });
86
86
  this.popover = ngbPopoverPortal();
87
- this.optionsTemplate = viewChild('optionsTemplate', ...(ngDevMode ? [{ debugName: "optionsTemplate", read: TemplateRef }] : [{ read: TemplateRef }]));
88
- this.container = viewChild('container', ...(ngDevMode ? [{ debugName: "container", read: ElementRef }] : [{ read: ElementRef }]));
89
- this.optionsGroup = viewChild('optionsGroup', ...(ngDevMode ? [{ debugName: "optionsGroup", read: ElementRef }] : [{ read: ElementRef }]));
87
+ this.optionsTemplate = viewChild('optionsTemplate', { ...(ngDevMode ? { debugName: "optionsTemplate" } : {}), read: TemplateRef });
88
+ this.container = viewChild('container', { ...(ngDevMode ? { debugName: "container" } : {}), read: ElementRef });
89
+ this.optionsGroup = viewChild('optionsGroup', { ...(ngDevMode ? { debugName: "optionsGroup" } : {}), read: ElementRef });
90
90
  // inputs
91
91
  this.value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
92
- this.disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
93
- this.multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
94
- this.noAutoClose = input(false, ...(ngDevMode ? [{ debugName: "noAutoClose", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
92
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
93
+ this.touched = model(false, ...(ngDevMode ? [{ debugName: "touched" }] : []));
94
+ this.multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : {}), transform: booleanAttribute });
95
+ this.noAutoClose = input(false, { ...(ngDevMode ? { debugName: "noAutoClose" } : {}), transform: booleanAttribute });
95
96
  this.options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
96
97
  this.placeholder = input(' ', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
97
98
  this.size = input('free', ...(ngDevMode ? [{ debugName: "size" }] : []));
@@ -170,14 +171,12 @@ class SelectBase {
170
171
  effect(() => {
171
172
  const values = this.values();
172
173
  const options = this.list();
173
- // console.log('values', this.values());
174
174
  options.forEach(option => {
175
175
  option.checked.set(values.includes(option.getValue()));
176
176
  });
177
177
  });
178
- // valueRef is required to destroy the effect when formControl is registered
179
- // so that it does not override the form value
180
- this.valueRef = effect(() => this.updateValues(this.value()), ...(ngDevMode ? [{ debugName: "valueRef" }] : []));
178
+ // Sync value model to internal values array
179
+ effect(() => this.updateValues(this.value()));
181
180
  }
182
181
  open() {
183
182
  // if the status is opened, return
@@ -271,56 +270,36 @@ class SelectBase {
271
270
  if (!this.noAutoClose())
272
271
  this.close();
273
272
  }
274
- // console.log('setValue', localValue, this.values());
275
273
  this.values.set(localValue);
276
274
  if (!skip) {
277
- this.onChange?.(setValue);
278
- this.onTouched?.();
279
275
  this.value.set(setValue);
276
+ this.touched.set(true);
280
277
  }
281
278
  }
282
279
  removeValue(value) {
283
- // let values = this.values();
284
- // const index = values.indexOf(value);
285
- // if (index > -1) {
286
- // values = values.filter((_, i) => i === index);
287
280
  this.setValue([value]);
288
- // }
289
- }
290
- writeValue(value) {
291
- this.updateValues(value);
292
281
  }
293
282
  updateValues(value) {
294
283
  this.values.set(Array.isArray(value) ? value : [value]);
295
284
  }
296
- registerOnChange(fn) {
297
- this.onChange = fn;
298
- this.valueRef.destroy();
299
- }
300
- registerOnTouched(fn) {
301
- this.onTouched = fn;
302
- }
303
- setDisabledState(isDisabled) {
304
- this.disabled.set(isDisabled);
305
- }
306
285
  ngOnDestroy() {
307
286
  this.close();
308
287
  }
309
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: SelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
310
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: SelectBase, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, noAutoClose: { classPropertyName: "noAutoClose", publicName: "noAutoClose", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange", opened: "opened", closed: "closed" }, queries: [{ propertyName: "list", predicate: NgbOption, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "optionsTemplate", first: true, predicate: ["optionsTemplate"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "optionsGroup", first: true, predicate: ["optionsGroup"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
289
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: SelectBase, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, noAutoClose: { classPropertyName: "noAutoClose", publicName: "noAutoClose", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange", opened: "opened", closed: "closed" }, queries: [{ propertyName: "list", predicate: NgbOption, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "optionsTemplate", first: true, predicate: ["optionsTemplate"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "optionsGroup", first: true, predicate: ["optionsGroup"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
311
290
  }
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: SelectBase, decorators: [{
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SelectBase, decorators: [{
313
292
  type: Directive
314
- }], ctorParameters: () => [{ type: undefined }] });
293
+ }], ctorParameters: () => [{ type: undefined }], propDecorators: { list: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => NgbOption), { ...{ descendants: true }, isSignal: true }] }], optionsTemplate: [{ type: i0.ViewChild, args: ['optionsTemplate', { ...{ read: TemplateRef }, isSignal: true }] }], container: [{ type: i0.ViewChild, args: ['container', { ...{ read: ElementRef }, isSignal: true }] }], optionsGroup: [{ type: i0.ViewChild, args: ['optionsGroup', { ...{ read: ElementRef }, isSignal: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], noAutoClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "noAutoClose", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
315
294
 
316
295
  class NgbSelectOption {
317
296
  constructor() {
318
297
  this.template = inject((TemplateRef));
319
298
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
321
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbSelectOption, isStandalone: true, selector: "[ngbSelectOption]", ngImport: i0 }); }
299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
300
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbSelectOption, isStandalone: true, selector: "[ngbSelectOption]", ngImport: i0 }); }
322
301
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectOption, decorators: [{
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectOption, decorators: [{
324
303
  type: Directive,
325
304
  args: [{
326
305
  selector: '[ngbSelectOption]',
@@ -330,10 +309,10 @@ class SelectValue {
330
309
  constructor() {
331
310
  this.select = inject((NgbSelect));
332
311
  }
333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: SelectValue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
334
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: SelectValue, isStandalone: true, selector: "button[ngbSelectValue]", host: { attributes: { "type": "button", "role": "combobox", "tabindex": "-1" }, properties: { "disabled": "select.disabled()" } }, ngImport: i0 }); }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SelectValue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
313
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: SelectValue, isStandalone: true, selector: "button[ngbSelectValue]", host: { attributes: { "type": "button", "role": "combobox", "tabindex": "-1" }, properties: { "disabled": "select.disabled()" } }, ngImport: i0 }); }
335
314
  }
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: SelectValue, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SelectValue, decorators: [{
337
316
  type: Directive,
338
317
  args: [{
339
318
  selector: 'button[ngbSelectValue]',
@@ -353,10 +332,10 @@ class NgbSelectOptionGroup {
353
332
  this.group._loop.set(false);
354
333
  this.group._ayId.set(this.select.ayId);
355
334
  }
356
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
357
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbSelectOptionGroup, isStandalone: true, selector: "[ngbSelectOptionGroup]", hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
335
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
336
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbSelectOptionGroup, isStandalone: true, selector: "[ngbSelectOptionGroup]", hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
358
337
  }
359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectOptionGroup, decorators: [{
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectOptionGroup, decorators: [{
360
339
  type: Directive,
361
340
  args: [{
362
341
  selector: '[ngbSelectOptionGroup]',
@@ -372,18 +351,19 @@ class NgbSelect extends SelectBase {
372
351
  this.filterOptions = input(...(ngDevMode ? [undefined, { debugName: "filterOptions" }] : []));
373
352
  this.optionsFilter = filterFunction(this.options, computed(() => this.filterOptions() ?? { filter: this.filterFn() }));
374
353
  }
375
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
376
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbSelect, isStandalone: true, selector: "[ngbSelect]", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, filterOptions: { classPropertyName: "filterOptions", publicName: "filterOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: "searchChange" }, host: { attributes: { "role": "listbox", "type": "button" }, listeners: { "click": "open()", "keydown.arrowdown": "$event.preventDefault(); open()", "keydown.arrowup": "$event.preventDefault(); open()", "keydown.enter": "$event.preventDefault(); open()", "keydown.space": "$event.preventDefault(); open()" }, properties: { "tabindex": "disabled() ? -1 : 0" } }, providers: [_provide(NgbSelect)], queries: [{ propertyName: "optionTemplate", first: true, predicate: (NgbSelectOption), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: NgbSelect, isStandalone: true, selector: "[ngbSelect]", inputs: { search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, filterOptions: { classPropertyName: "filterOptions", publicName: "filterOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { search: "searchChange" }, host: { attributes: { "role": "listbox", "type": "button" }, listeners: { "click": "open()", "blur": "touched.set(true)", "keydown.arrowdown": "$event.preventDefault(); open()", "keydown.arrowup": "$event.preventDefault(); open()", "keydown.enter": "$event.preventDefault(); open()", "keydown.space": "$event.preventDefault(); open()" }, properties: { "tabindex": "disabled() ? -1 : 0" } }, providers: [{ provide: SelectBase, useExisting: NgbSelect }], queries: [{ propertyName: "optionTemplate", first: true, predicate: (NgbSelectOption), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
377
356
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelect, decorators: [{
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelect, decorators: [{
379
358
  type: Directive,
380
359
  args: [{
381
360
  selector: '[ngbSelect]',
382
- providers: [_provide(NgbSelect)],
361
+ providers: [{ provide: SelectBase, useExisting: NgbSelect }],
383
362
  host: {
384
363
  role: 'listbox',
385
364
  type: 'button',
386
365
  '(click)': 'open()',
366
+ '(blur)': 'touched.set(true)',
387
367
  '(keydown.arrowdown)': '$event.preventDefault(); open()',
388
368
  '(keydown.arrowup)': '$event.preventDefault(); open()',
389
369
  '(keydown.enter)': '$event.preventDefault(); open()',
@@ -391,13 +371,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
391
371
  '[tabindex]': 'disabled() ? -1 : 0',
392
372
  },
393
373
  }]
394
- }], ctorParameters: () => [] });
395
- function _provide(select) {
396
- return [{ provide: SelectBase, useExisting: select }, provideValueAccessor(select)];
397
- }
374
+ }], ctorParameters: () => [], propDecorators: { optionTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => NgbSelectOption), { isSignal: true }] }], search: [{ type: i0.Input, args: [{ isSignal: true, alias: "search", required: false }] }, { type: i0.Output, args: ["searchChange"] }], filterFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFn", required: false }] }], filterOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterOptions", required: false }] }] } });
398
375
  function aliasSelect(select) {
399
- const deps = [_provide(select), { provide: NgbSelect, useExisting: select }];
400
- return deps;
376
+ return [
377
+ { provide: SelectBase, useExisting: select },
378
+ { provide: NgbSelect, useExisting: select },
379
+ ];
401
380
  }
402
381
 
403
382
  class NgbOptionGroup {
@@ -405,15 +384,15 @@ class NgbOptionGroup {
405
384
  this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
406
385
  this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
407
386
  }
408
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
409
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbOptionGroup, isStandalone: true, selector: "[ngbOptionGroup]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbOptionGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
388
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbOptionGroup, isStandalone: true, selector: "[ngbOptionGroup]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
410
389
  }
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOptionGroup, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbOptionGroup, decorators: [{
412
391
  type: Directive,
413
392
  args: [{
414
393
  selector: '[ngbOptionGroup]',
415
394
  }]
416
- }] });
395
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
417
396
 
418
397
  class NgbSelectInput {
419
398
  constructor() {
@@ -443,10 +422,10 @@ class NgbSelectInput {
443
422
  updateSearch(value) {
444
423
  this.inputBase.value.set(value);
445
424
  }
446
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
447
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbSelectInput, isStandalone: true, selector: "input[ngbSelectInput]", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "placeholder": "placeholder()", "tabindex": "0" } }, exportAs: ["ngbSelectInput"], hostDirectives: [{ directive: i1.Autofocus }, { directive: i2.InputBase, inputs: ["value", "value"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 }); }
425
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
426
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbSelectInput, isStandalone: true, selector: "input[ngbSelectInput]", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "placeholder": "placeholder()", "tabindex": "0" } }, exportAs: ["ngbSelectInput"], hostDirectives: [{ directive: i1.Autofocus }, { directive: i2.InputBase, inputs: ["value", "value"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 }); }
448
427
  }
449
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectInput, decorators: [{
428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectInput, decorators: [{
450
429
  type: Directive,
451
430
  args: [{
452
431
  selector: 'input[ngbSelectInput]',
@@ -460,12 +439,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
460
439
  '[tabindex]': '0',
461
440
  },
462
441
  }]
463
- }], ctorParameters: () => [] });
442
+ }], ctorParameters: () => [], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], filterFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterFn", required: false }] }] } });
464
443
  class NgbSelectTrigger {
465
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
466
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbSelectTrigger, isStandalone: true, selector: "[ngbSelectTrigger]", ngImport: i0 }); }
444
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
445
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbSelectTrigger, isStandalone: true, selector: "[ngbSelectTrigger]", ngImport: i0 }); }
467
446
  }
468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbSelectTrigger, decorators: [{
447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbSelectTrigger, decorators: [{
469
448
  type: Directive,
470
449
  args: [{
471
450
  selector: '[ngbSelectTrigger]',
@@ -476,14 +455,13 @@ class ListSelection extends SelectBase {
476
455
  constructor() {
477
456
  super(true);
478
457
  }
479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ListSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
480
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ListSelection, isStandalone: true, selector: "[ngbListSelection]", providers: [provideValueAccessor(ListSelection)], usesInheritance: true, ngImport: i0 }); }
458
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
459
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ListSelection, isStandalone: true, selector: "[ngbListSelection]", usesInheritance: true, ngImport: i0 }); }
481
460
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ListSelection, decorators: [{
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListSelection, decorators: [{
483
462
  type: Directive,
484
463
  args: [{
485
464
  selector: '[ngbListSelection]',
486
- providers: [provideValueAccessor(ListSelection)],
487
465
  }]
488
466
  }], ctorParameters: () => [] });
489
467