@koobiq/components 20.1.0 → 20.3.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 (249) hide show
  1. package/accordion/_accordion-theme.scss +6 -2
  2. package/accordion/accordion-tokens.scss +3 -0
  3. package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +10 -0
  4. package/accordion/accordion.scss +71 -0
  5. package/accordion/index.d.ts +264 -121
  6. package/actions-panel/index.d.ts +25 -13
  7. package/alert/_alert-theme.scss +14 -0
  8. package/alert/alert.component.scss +24 -13
  9. package/alert/index.d.ts +63 -29
  10. package/app-switcher/app-switcher-dropdown-app.scss +7 -5
  11. package/app-switcher/app-switcher-dropdown-site.scss +6 -4
  12. package/app-switcher/index.d.ts +41 -4
  13. package/app-switcher/kbq-app-switcher-list-item.scss +6 -8
  14. package/autocomplete/autocomplete.scss +2 -1
  15. package/autocomplete/index.d.ts +58 -37
  16. package/badge/index.d.ts +2 -3
  17. package/breadcrumbs/index.d.ts +1 -1
  18. package/button/index.d.ts +2 -2
  19. package/button-toggle/button-toggle-tokens.scss +2 -0
  20. package/button-toggle/button-toggle.scss +9 -0
  21. package/button-toggle/index.d.ts +5 -0
  22. package/checkbox/index.d.ts +33 -29
  23. package/clamped-text/index.d.ts +3 -2
  24. package/code-block/index.d.ts +24 -19
  25. package/content-panel/index.d.ts +1 -1
  26. package/core/index.d.ts +1217 -186
  27. package/core/option/_action-container-mixins.scss +28 -0
  28. package/core/option/_option-theme.scss +24 -0
  29. package/core/option/action.scss +7 -0
  30. package/core/styles/_core.scss +2 -0
  31. package/core/styles/_koobiq-theme.scss +2 -0
  32. package/core/styles/_tokens.scss +1 -0
  33. package/core/styles/common/_animation.scss +31 -24
  34. package/core/styles/common/_connected-overlay.scss +39 -0
  35. package/core/styles/common/_select.scss +19 -2
  36. package/core/styles/common/_tokens.scss +0 -9
  37. package/core/styles/theming/_index.scss +0 -1
  38. package/core/styles/theming/_theming.scss +34 -5
  39. package/datepicker/index.d.ts +46 -15
  40. package/dl/dl.scss +26 -0
  41. package/dl/index.d.ts +8 -1
  42. package/dropdown/_dropdown-theme.scss +28 -2
  43. package/dropdown/dropdown-item.scss +29 -0
  44. package/dropdown/dropdown-tokens.scss +2 -1
  45. package/dropdown/dropdown.scss +16 -1
  46. package/dropdown/index.d.ts +331 -17
  47. package/dynamic-translation/index.d.ts +1 -1
  48. package/fesm2022/koobiq-components-accordion.mjs +480 -317
  49. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-actions-panel.mjs +57 -46
  51. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-alert.mjs +98 -58
  53. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-app-switcher.mjs +233 -38
  55. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-autocomplete.mjs +89 -52
  57. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-badge.mjs +18 -17
  59. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  61. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-button-toggle.mjs +17 -12
  63. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-button.mjs +25 -25
  65. package/fesm2022/koobiq-components-checkbox.mjs +69 -92
  66. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-clamped-text.mjs +18 -13
  68. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-code-block.mjs +56 -69
  70. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-content-panel.mjs +29 -29
  72. package/fesm2022/koobiq-components-core.mjs +2485 -735
  73. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-datepicker.mjs +168 -126
  75. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-divider.mjs +7 -7
  77. package/fesm2022/koobiq-components-dl.mjs +23 -15
  78. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-dropdown.mjs +814 -136
  80. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  82. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  83. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  84. package/fesm2022/koobiq-components-file-upload.mjs +74 -42
  85. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-filter-bar.mjs +783 -199
  87. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-flag.mjs +7 -7
  89. package/fesm2022/koobiq-components-form-field.mjs +350 -162
  90. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-icon.mjs +52 -25
  92. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-inline-edit.mjs +175 -28
  94. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-input.mjs +41 -24
  96. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-link.mjs +8 -8
  98. package/fesm2022/koobiq-components-list.mjs +657 -143
  99. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  101. package/fesm2022/koobiq-components-markdown.mjs +14 -11
  102. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-modal.mjs +59 -35
  104. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-navbar.mjs +177 -67
  106. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-notification-center.mjs +40 -24
  108. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-overflow-items.mjs +16 -17
  110. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-popover.mjs +31 -21
  112. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  114. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  115. package/fesm2022/koobiq-components-radio.mjs +10 -10
  116. package/fesm2022/koobiq-components-resizer.mjs +33 -14
  117. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  119. package/fesm2022/koobiq-components-search-expandable.mjs +49 -14
  120. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-select.mjs +450 -146
  122. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-sidebar.mjs +14 -14
  124. package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
  125. package/fesm2022/koobiq-components-skeleton.mjs +10 -10
  126. package/fesm2022/koobiq-components-split-button.mjs +10 -17
  127. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-splitter.mjs +17 -17
  129. package/fesm2022/koobiq-components-table.mjs +15 -13
  130. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-tabs.mjs +80 -68
  132. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-tags.mjs +283 -122
  134. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-textarea.mjs +13 -8
  136. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-time-range.mjs +29 -24
  138. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-timepicker.mjs +61 -30
  140. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-timezone.mjs +77 -42
  142. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-title.mjs +7 -7
  144. package/fesm2022/koobiq-components-toast.mjs +51 -26
  145. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-toggle.mjs +72 -64
  147. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-tooltip.mjs +219 -28
  149. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  151. package/fesm2022/koobiq-components-tree-select.mjs +222 -80
  152. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-tree.mjs +302 -81
  154. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-username.mjs +27 -27
  156. package/file-upload/index.d.ts +25 -6
  157. package/file-upload/multiple-file-upload.component.scss +14 -0
  158. package/filter-bar/_filter-bar-theme.scss +0 -10
  159. package/filter-bar/filter-bar-tokens.scss +3 -0
  160. package/filter-bar/filters.scss +3 -2
  161. package/filter-bar/index.d.ts +281 -9
  162. package/filter-bar/pipes/base-pipe.scss +0 -11
  163. package/filter-bar/pipes/pipe-input.scss +10 -0
  164. package/filter-bar/pipes/pipe-multi-tree-select.scss +0 -6
  165. package/filter-bar/pipes/pipe-multiselect.scss +0 -6
  166. package/filter-bar/pipes/pipe-tree-select.scss +0 -6
  167. package/form-field/_form-field-theme.scss +76 -20
  168. package/form-field/fieldset.scss +10 -0
  169. package/form-field/form-field-tokens.scss +15 -1
  170. package/form-field/form-field.scss +15 -19
  171. package/form-field/index.d.ts +147 -65
  172. package/icon/icon-button.scss +3 -1
  173. package/icon/index.d.ts +45 -7
  174. package/inline-edit/index.d.ts +57 -4
  175. package/inline-edit/inline-edit.scss +10 -0
  176. package/input/index.d.ts +17 -2
  177. package/list/_list-theme.scss +42 -10
  178. package/list/index.d.ts +326 -79
  179. package/list/list-tokens.scss +43 -8
  180. package/list/list.scss +186 -12
  181. package/markdown/index.d.ts +1 -1
  182. package/modal/index.d.ts +21 -4
  183. package/modal/modal-tokens.scss +1 -1
  184. package/navbar/_navbar-item_vertical.scss +7 -5
  185. package/navbar/index.d.ts +54 -5
  186. package/navbar/navbar-brand.scss +23 -7
  187. package/navbar/vertical-navbar.scss +6 -0
  188. package/notification-center/index.d.ts +2 -1
  189. package/notification-center/notification-item.scss +6 -0
  190. package/package.json +3 -6
  191. package/popover/index.d.ts +2 -2
  192. package/prebuilt-themes/dark-theme.css +1 -1
  193. package/prebuilt-themes/light-theme.css +1 -1
  194. package/prebuilt-themes/theme.css +1 -1
  195. package/resizer/index.d.ts +12 -0
  196. package/schematics/collection.json +10 -0
  197. package/schematics/migrations/alert-signals/README.md +64 -0
  198. package/schematics/migrations/alert-signals/data.js +70 -0
  199. package/schematics/migrations/alert-signals/index.js +350 -0
  200. package/schematics/migrations/alert-signals/schema.json +20 -0
  201. package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
  202. package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
  203. package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
  204. package/schematics/migrations/deprecated-icons/README.md +29 -4
  205. package/schematics/migrations/deprecated-icons/data.js +7 -0
  206. package/schematics/migrations/deprecated-icons/index.js +62 -35
  207. package/schematics/migrations/filter-bar-signals/README.md +1 -1
  208. package/schematics/migrations/new-icons-pack/README.md +37 -2
  209. package/schematics/migrations/new-icons-pack/data.js +8 -0
  210. package/schematics/migrations/new-icons-pack/index.js +144 -53
  211. package/schematics/migrations.json +11 -1
  212. package/schematics/ng-add/index.js +3 -3
  213. package/schematics/utils/angular-parsing.js +41 -14
  214. package/schematics/utils/ast.js +31 -0
  215. package/schematics/utils/icon-migration.js +530 -0
  216. package/schematics/utils/typescript.js +44 -0
  217. package/scrollbar/index.d.ts +1 -1
  218. package/search-expandable/index.d.ts +3 -0
  219. package/select/index.d.ts +212 -40
  220. package/select/select-tokens.scss +0 -1
  221. package/select/select.scss +0 -2
  222. package/splitter/index.d.ts +1 -1
  223. package/table/_table-theme.scss +4 -0
  224. package/table/index.d.ts +2 -1
  225. package/table/table.scss +8 -0
  226. package/tabs/_tabs-common.scss +60 -31
  227. package/tabs/_tabs-theme.scss +12 -0
  228. package/tabs/index.d.ts +2 -2
  229. package/tabs/tab-header.scss +14 -0
  230. package/tabs/tab-nav-bar.scss +4 -0
  231. package/tabs/tabs-tokens.scss +1 -0
  232. package/tags/index.d.ts +128 -29
  233. package/textarea/index.d.ts +5 -0
  234. package/time-range/index.d.ts +1 -1
  235. package/timepicker/index.d.ts +4 -0
  236. package/timezone/index.d.ts +10 -8
  237. package/toast/index.d.ts +26 -3
  238. package/toggle/index.d.ts +34 -14
  239. package/tooltip/index.d.ts +119 -7
  240. package/tree/_tree-theme.scss +25 -5
  241. package/tree/index.d.ts +71 -3
  242. package/tree/tree-option.scss +2 -8
  243. package/tree-select/_tree-select-theme.scss +22 -0
  244. package/tree-select/index.d.ts +127 -36
  245. package/accordion/accordion.component.scss +0 -50
  246. package/core/styles/_tokens.kbq.import.scss +0 -4
  247. package/core/styles/theming/_components-theming.scss +0 -1927
  248. package/filter-bar/pipes/pipe-select.scss +0 -5
  249. package/overflow-items/overflow-items.scss +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-inline-edit.mjs","sources":["../../../packages/components/inline-edit/inline-edit.ts","../../../packages/components/inline-edit/inline-edit.html","../../../packages/components/inline-edit/module.ts","../../../packages/components/inline-edit/koobiq-components-inline-edit.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { CdkMonitorFocus, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { CdkConnectedOverlay, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n isElement,\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField, KbqLabel } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { merge, skip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateY(100%)', opacity: 0 }),\n animate(\n `${KbqAnimationDurations.Instant} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateY(0%)', opacity: 1 })\n )\n ])\n]);\n\nconst baseClass = 'kbq-inline-edit';\n\nexport type KbqInlineEditMode = 'view' | 'edit';\n\n/** @docs-private */\n@Directive({\n selector: '[kbqFocusRegionItem]',\n host: {\n '(focusin)': 'isFocused = true',\n '(keydown.tab)': 'onTabOut($event)',\n '(keydown.shift.tab)': 'onTabOut($event)'\n },\n exportAs: 'kbqFocusRegionItem'\n})\nexport class KbqFocusRegionItem {\n readonly tabOut = output<KeyboardEvent>();\n\n protected isFocused = false;\n\n protected onTabOut(event: KeyboardEvent) {\n if (this.isFocused) {\n this.tabOut.emit(event);\n }\n\n this.isFocused = !this.isFocused;\n }\n}\n\n/** Directive for easy using styles of inline edit placeholder publicly. */\n@Directive({\n selector: '[kbqInlineEditPlaceholder]',\n host: {\n class: 'kbq-inline-edit__placeholder'\n },\n exportAs: 'kbqInlineEditPlaceholder'\n})\nexport class KbqInlineEditPlaceholder {}\n\n/**\n * This directive enhances element acting as dropdown trigger,\n * visually indicating the active state with the `kbq-active` class.\n * Also, it prevents click/keydown events from being propagated to disable mode toggling of parent component.\n */\n@Directive({\n selector: '[kbqInlineEditMenu]',\n host: {\n role: 'button',\n class: 'kbq-inline-edit__menu',\n '[class.kbq-active]': 'dropdownTrigger?.opened',\n '(click)': '$event.stopPropagation()',\n '(keydown.enter)': '$event.stopPropagation()',\n '(keydown.space)': '$event.stopPropagation()'\n },\n exportAs: 'kbqInlineEditMenu'\n})\nexport class KbqInlineEditMenu {\n /** @docs-private */\n protected readonly dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });\n}\n\n/**\n * Customizable component that enables edit-in-place logic for specified control and it's view.\n * This component is projecting edit/view mode templates and adds keyboard/pointer handlers.\n * Edit mode opens in a positioned overlay that matches the view mode width or can be customized.\n */\n@Component({\n selector: 'kbq-inline-edit',\n imports: [\n CdkConnectedOverlay,\n KbqButtonModule,\n KbqIcon,\n KbqTooltipTrigger,\n KbqFocusRegionItem,\n CdkTrapFocus\n ],\n templateUrl: './inline-edit.html',\n styleUrls: ['./inline-edit.scss', './inline-edit-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: baseClass,\n '[attr.tabindex]': 'tabIndex()',\n '[class]': 'className()',\n '[class.kbq-inline-edit_with-label]': '!!label()',\n '[class.kbq-inline-edit_with-menu]': '!!menu()',\n '[class.kbq-inline-edit_disabled]': 'disabled()',\n '[class.kbq-inline-edit_anchor-focused]': 'anchorFocused()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n hostDirectives: [\n CdkMonitorFocus\n ],\n animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION],\n exportAs: 'kbqInlineEdit'\n})\nexport class KbqInlineEdit {\n private readonly overlay = inject(Overlay);\n private readonly document = inject(DOCUMENT);\n private readonly resizeObserver = inject(SharedResizeObserver);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Whether to show save/cancel action buttons in edit mode.\n * @default false\n */\n readonly showActions = input(false, { transform: booleanAttribute });\n /**\n * Whether to automatically show validation error tooltips on save attempts.\n * @default true\n */\n readonly showTooltipOnError = input(true, { transform: booleanAttribute });\n /** Custom validation tooltip message. */\n readonly validationTooltip = input<string | TemplateRef<any>>();\n /**\n * Disables the component, preventing interaction and mode switching. Only allows menu dropdown.\n * @default false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Custom width in pixels for the edit mode overlay. Auto-calculated if not set. */\n readonly editModeWidth = input(undefined, { transform: numberAttribute });\n /** User-defined tooltip placement */\n readonly tooltipPlacement = input<PopUpPlacements>();\n /** Classes to be passed to the inline edit panel. */\n readonly overlayPanelClass = input<string | string[]>('');\n /** Handler function to retrieve the current value */\n readonly getValueHandler = input<() => unknown>();\n /** Handler function to update the value */\n readonly setValueHandler = input<(value: any) => void>();\n /** Customizable function that checks if saving on enter available. */\n readonly canSaveOnEnter = input(\n (event: KeyboardEvent): boolean =>\n hasModifierKey(event, 'ctrlKey', 'metaKey') || !(event.target instanceof HTMLTextAreaElement)\n );\n\n /**\n * CSS selectors for elements in view mode that should handle clicks instead of opening edit mode.\n * Override to replace or extend the default list.\n *\n * @example\n * `<kbq-inline-edit [interactiveSelectors]=\"['a', 'kbq-tag', 'button']\">`\n */\n readonly interactiveSelectors = input<string[]>(['a', 'kbq-tag']);\n\n /** Emitted when the inline edit is saved successfully. */\n protected readonly saved = output();\n /** Emitted when the inline edit is canceled and changes are discarded. */\n protected readonly canceled = output();\n /** Emitted when mode switched to edit/view */\n protected readonly modeChange = output<KbqInlineEditMode>();\n\n /** @docs-private */\n protected readonly menu = contentChild(KbqInlineEditMenu);\n /** @docs-private */\n protected readonly label = contentChild(KbqLabel);\n\n /** @docs-private */\n protected readonly formFieldRef = computed<KbqFormField | undefined>(() => this.formFieldRefList()[0]);\n /** @docs-private */\n protected readonly formFieldRefList = contentChildren(KbqFormField, { descendants: true });\n\n /** @docs-private */\n protected overlayOrigin: HTMLElement = this.elementRef.nativeElement;\n /** @docs-private */\n protected readonly tooltipTrigger = viewChild.required(KbqTooltipTrigger);\n /** @docs-private */\n protected readonly viewContainer = viewChild.required<ElementRef<HTMLElement>>('viewContainer');\n /** @docs-private */\n protected readonly overlayDir = viewChild.required(CdkConnectedOverlay);\n /** @docs-private */\n protected readonly regionItems = viewChildren(KbqFocusRegionItem);\n\n /** @docs-private */\n protected readonly mode = signal<KbqInlineEditMode>('view');\n /** @docs-private */\n protected readonly overlayWidth = signal<number | string>('');\n /** @docs-private */\n protected readonly scrollStrategy = signal<ScrollStrategy>(this.overlay.scrollStrategies.reposition());\n /** @docs-private */\n readonly modeAsReadonly = computed(() => this.mode());\n\n /** @docs-private */\n protected readonly className = computed(() => `${baseClass}_${this.mode()}`);\n /** @docs-private */\n protected readonly isEditMode = computed(() => this.mode() === 'edit');\n /** @docs-private */\n protected readonly hasInteractiveContent = signal(false);\n /** @docs-private */\n protected readonly anchorFocused = signal(false);\n /** @docs-private */\n protected readonly tabIndex = computed(() => {\n if (this.isEditMode() || this.disabled() || this.hasInteractiveContent()) return -1;\n\n return 0;\n });\n\n /** @docs-private */\n protected readonly placements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly colors = KbqComponentColors;\n\n private initialValue: unknown;\n\n constructor() {\n toObservable(this.mode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((currentMode) => this.modeChange.emit(currentMode));\n\n effect(() => {\n this.overlayOrigin = this.label() ? this.viewContainer().nativeElement : this.elementRef.nativeElement;\n });\n\n effect((onCleanup) => {\n const selectors = this.interactiveSelectors();\n\n const timeoutId = setTimeout(() => this.detectInteractiveContent(selectors));\n\n onCleanup(() => clearTimeout(timeoutId));\n });\n }\n\n /** Manually switch mode */\n toggleMode(): void {\n this.mode.update((mode) => (mode === 'view' ? 'edit' : 'view'));\n }\n\n /** @docs-private */\n protected onClick(event: Event): void {\n if (this.disabled() || this.isEditMode() || this.isInteractiveElement(event.target)) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.toggleMode();\n }\n\n /** @docs-private */\n protected onAttach(): void {\n this.setOverlayWidth();\n this.setOverlayKeydownListener();\n\n const formFieldRefList = this.formFieldRefList();\n\n merge(formFieldRefList.map((ref) => ref.control().stateChanges))\n .pipe(takeUntil(this.overlayDir()!.overlayRef.detachments()))\n .subscribe(() => {\n if (!this.isInvalid()) {\n const tooltipTrigger = this.tooltipTrigger();\n\n if (tooltipTrigger?.isOpen) {\n tooltipTrigger.hide();\n }\n }\n });\n\n setTimeout(() => {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return;\n\n formFieldRef.focus();\n\n this.initialValue = this.getValue();\n\n const input = this.getInputNativeElement();\n\n if (this.initialValue) input?.select();\n\n this.openPanel(formFieldRef);\n }, 0);\n }\n\n /** @docs-private */\n protected save($event?: Event): void {\n if (this.isInvalid()) {\n $event?.stopPropagation();\n\n if (this.showTooltipOnError() && this.validationTooltip()) {\n this.tooltipTrigger()?.show();\n }\n } else {\n this.toggleMode();\n this.saved.emit();\n }\n }\n\n /** @docs-private */\n protected cancel(): void {\n this.setValue(this.initialValue);\n\n const input = this.getInputNativeElement();\n\n if (input) {\n input.selectionStart = input.selectionEnd = null;\n }\n\n this.toggleMode();\n this.canceled.emit();\n }\n\n /** @docs-private */\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.markAllAsTouched();\n const canSaveOnEnter = this.canSaveOnEnter();\n\n switch (event.key) {\n case 'Escape': {\n this.cancel();\n break;\n }\n case 'Enter': {\n if (canSaveOnEnter(event)) {\n event.preventDefault();\n this.markAllAsTouched();\n setTimeout(() => this.save(event));\n }\n\n break;\n }\n default: {\n return;\n }\n }\n }\n\n /**\n * Block propagation of overlay outside click.\n * Used to prevent reopening when target is inline edit itself.\n * @docs-private\n */\n protected onOverlayOutsideClick($event: Event) {\n if (isElement($event.target) && this.elementRef.nativeElement.contains($event.target)) {\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n this.save($event);\n }\n\n private detectInteractiveContent(selectors: string[]): void {\n if (!selectors.length) {\n this.hasInteractiveContent.set(false);\n\n return;\n }\n\n const viewContent = this.viewContainer().nativeElement.querySelector('.kbq-inline-edit__view-content');\n\n this.hasInteractiveContent.set(!!viewContent?.querySelector(selectors.join(',')));\n }\n\n private isInteractiveElement(target: EventTarget | null): boolean {\n const selectors = this.interactiveSelectors();\n\n if (!selectors.length) return false;\n\n return isElement(target) && !!target.closest(selectors.join(','));\n }\n\n /**\n * Sets up Tab key listeners on region items.\n * Single item: Tab moves to next edit.\n * Multiple items: Shift+Tab on first or Tab on last moves to next edit.\n */\n private setOverlayKeydownListener(): void {\n const regionItems = this.regionItems();\n\n if (regionItems.length === 0) return;\n\n const firstItem = regionItems.at(0);\n const lastItem = regionItems.at(regionItems.length - 1);\n\n if (regionItems.length === 1) {\n firstItem?.tabOut.subscribe((event) => this.saveAndFocusNextInlineEdit(event));\n } else {\n firstItem?.tabOut.subscribe(\n (event) => hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n\n lastItem?.tabOut.subscribe(\n (event) => !hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n }\n }\n\n private saveAndFocusNextInlineEdit(event: Event): void {\n this.save(event);\n if (this.isInvalid()) return;\n\n setTimeout(() => {\n const activeElement = this.document.activeElement;\n\n if (activeElement?.classList?.contains('kbq-inline-edit')) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));\n }\n });\n }\n\n private isInvalid(): boolean {\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length) return false;\n\n return formFieldRefList.some((ref) => ref.invalid);\n }\n\n private getValue() {\n const getValueHandler = this.getValueHandler();\n\n if (getValueHandler) return getValueHandler();\n\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length) return;\n\n return this.formFieldRefList().map((ref) => this.coerceControl(ref)?.value);\n }\n\n private setValue<T>(value: T): void {\n const setValue = this.setValueHandler();\n\n if (setValue) {\n setValue(value);\n\n return;\n }\n\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length || !Array.isArray(value)) return;\n\n value.forEach((controlValue, index) => {\n const control = this.coerceControl(formFieldRefList[index]);\n\n if (!control) return;\n\n if (control instanceof AbstractControl) {\n control.setValue(controlValue);\n } else {\n control.value = controlValue;\n }\n });\n }\n\n private coerceControl(formFieldRef: KbqFormField) {\n const control = formFieldRef.control();\n\n if (control.ngControl instanceof NgControl) {\n return control.ngControl.control;\n }\n\n return control;\n }\n\n private setOverlayWidth(): void {\n const editModeWidth = this.editModeWidth();\n\n if (editModeWidth) {\n this.overlayWidth.set(editModeWidth);\n\n return;\n }\n\n const element: HTMLElement | null = this.label()\n ? this.elementRef.nativeElement.querySelector('.kbq-inline-edit__focus_container')\n : this.elementRef.nativeElement;\n\n if (element) {\n this.resizeObserver\n .observe(element)\n .pipe(takeUntil(this.overlayDir()!.overlayRef.detachments()))\n .subscribe(() => {\n this.overlayWidth.set(element.offsetWidth);\n });\n }\n\n this.overlayWidth.set(element?.offsetWidth ?? '');\n }\n\n private openPanel(formFieldRef: KbqFormField) {\n const control = formFieldRef.control();\n\n control?.open?.();\n }\n\n private getInputNativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type=\"file\"]),textarea') ?? null;\n }\n\n private markAllAsTouched(): void {\n this.formFieldRefList().forEach((formField) => formField.control().ngControl?.control?.markAsTouched());\n }\n}\n","<div class=\"kbq-inline-edit__focus_container\">\n @if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n }\n\n <div #viewContainer class=\"kbq-inline-edit__view-container\">\n <div class=\"kbq-inline-edit__view-content\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n </div>\n\n @if (hasInteractiveContent() && mode() === 'view' && !disabled()) {\n <div\n class=\"kbq-inline-edit__focus-anchor cdk-visually-hidden\"\n tabindex=\"0\"\n (focus)=\"anchorFocused.set(true)\"\n (blur)=\"anchorFocused.set(false)\"\n ></div>\n }\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"onOverlayOutsideClick($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"cdk-visually-hidden\" aria-hidden=\"true\" kbqFocusRegionItem tabindex=\"0\"></div>\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocusAutoCapture [cdkTrapFocus]=\"false\">\n <div\n class=\"kbq-inline-edit__control-container\"\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipDisabled]=\"!validationTooltip()\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <div class=\"kbq-inline-edit__action-button\">\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n </div>\n\n <div class=\"kbq-inline-edit__action-button\">\n <button kbq-button [color]=\"'contrast-fade'\" (click)=\"cancel()\">\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n <div class=\"cdk-visually-hidden\" aria-hidden=\"true\" kbqFocusRegionItem tabindex=\"0\"></div>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqInlineEdit, KbqInlineEditMenu, KbqInlineEditPlaceholder } from './inline-edit';\n\nconst COMPONENTS = [\n KbqInlineEdit,\n KbqInlineEditPlaceholder,\n KbqInlineEditMenu\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqInlineEditModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-inline-edit.mjs","sources":["../../../packages/components/inline-edit/inline-edit.ts","../../../packages/components/inline-edit/inline-edit.html","../../../packages/components/inline-edit/module.ts","../../../packages/components/inline-edit/koobiq-components-inline-edit.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { CdkMonitorFocus, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { CdkConnectedOverlay, Overlay, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n NgZone,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n isElement,\n KBQ_CONNECTED_OVERLAY_ORIGIN,\n KBQ_WINDOW,\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n KbqConnectedOverlayOriginProvider,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField, KbqLabel } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqSelect } from '@koobiq/components/select';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { merge, skip } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nconst KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateY(100%)', opacity: 0 }),\n animate(\n `${KbqAnimationDurations.Instant} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateY(0%)', opacity: 1 })\n )\n ])\n]);\n\nconst baseClass = 'kbq-inline-edit';\n\n/**\n * Fallback delay before showing the validation tooltip if `scrollend` never fires — e.g. the browser doesn't\n * support it, or nothing needed to scroll.\n */\nconst VALIDATION_TOOLTIP_SCROLL_TIMEOUT = 800;\n\nexport type KbqInlineEditMode = 'view' | 'edit';\n\n/** @docs-private */\n@Directive({\n selector: '[kbqFocusRegionItem]',\n host: {\n '(focusin)': 'isFocused = true',\n '(keydown.tab)': 'onTabOut($event)',\n '(keydown.shift.tab)': 'onTabOut($event)'\n },\n exportAs: 'kbqFocusRegionItem'\n})\nexport class KbqFocusRegionItem {\n readonly tabOut = output<KeyboardEvent>();\n\n protected isFocused = false;\n\n protected onTabOut(event: KeyboardEvent) {\n if (this.isFocused) {\n this.tabOut.emit(event);\n }\n\n this.isFocused = !this.isFocused;\n }\n}\n\n/** Directive for easy using styles of inline edit placeholder publicly. */\n@Directive({\n selector: '[kbqInlineEditPlaceholder]',\n host: {\n class: 'kbq-inline-edit__placeholder'\n },\n exportAs: 'kbqInlineEditPlaceholder'\n})\nexport class KbqInlineEditPlaceholder {}\n\n/**\n * This directive enhances element acting as dropdown trigger,\n * visually indicating the active state with the `kbq-active` class.\n * Also, it prevents click/keydown events from being propagated to disable mode toggling of parent component.\n */\n@Directive({\n selector: '[kbqInlineEditMenu]',\n host: {\n role: 'button',\n class: 'kbq-inline-edit__menu',\n '[class.kbq-active]': 'dropdownTrigger?.opened',\n '(click)': '$event.stopPropagation()',\n '(keydown.enter)': '$event.stopPropagation()',\n '(keydown.space)': '$event.stopPropagation()'\n },\n exportAs: 'kbqInlineEditMenu'\n})\nexport class KbqInlineEditMenu {\n /** @docs-private */\n protected readonly dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });\n}\n\n/**\n * Customizable component that enables edit-in-place logic for specified control and it's view.\n * This component is projecting edit/view mode templates and adds keyboard/pointer handlers.\n * Edit mode opens in a positioned overlay that matches the view mode width or can be customized.\n */\n@Component({\n selector: 'kbq-inline-edit',\n imports: [\n CdkConnectedOverlay,\n KbqButtonModule,\n KbqIcon,\n KbqTooltipTrigger,\n KbqFocusRegionItem,\n CdkTrapFocus\n ],\n templateUrl: './inline-edit.html',\n styleUrls: ['./inline-edit.scss', './inline-edit-tokens.scss'],\n providers: [{ provide: KBQ_CONNECTED_OVERLAY_ORIGIN, useExisting: forwardRef(() => KbqInlineEdit) }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: baseClass,\n '[attr.tabindex]': 'tabIndex()',\n '[class]': 'className()',\n '[class.kbq-inline-edit_with-label]': '!!label()',\n '[class.kbq-inline-edit_with-menu]': '!!menu()',\n '[class.kbq-inline-edit_disabled]': 'disabled()',\n '[class.kbq-inline-edit_anchor-focused]': 'anchorFocused()',\n '[class.kbq-inline-edit_select]': 'isSingleSelect()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n hostDirectives: [CdkMonitorFocus],\n animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION],\n exportAs: 'kbqInlineEdit'\n})\nexport class KbqInlineEdit implements KbqConnectedOverlayOriginProvider {\n private readonly overlay = inject(Overlay);\n private readonly document = inject(DOCUMENT);\n private readonly window = inject(KBQ_WINDOW);\n private readonly resizeObserver = inject(SharedResizeObserver);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly ngZone = inject(NgZone);\n private readonly scrollDispatcher = inject(ScrollDispatcher);\n\n /**\n * The validation tooltip is anchored inside the edit-mode overlay — an overlay inside another\n * overlay. Its default `close()` scroll strategy would close it the moment either overlay's\n * origin scrolls (including the programmatic scroll `showValidationTooltip()` uses to bring an\n * invalid control into view), so it's overridden to `reposition()` here — passed directly as a\n * per-instance override to this tooltip's `[kbqTooltipScrollStrategy]` input, rather than a DI\n * override, so it doesn't leak into any `kbqTooltip` in projected content.\n * @docs-private\n */\n protected readonly validationTooltipScrollStrategy = (): ScrollStrategy =>\n this.overlay.scrollStrategies.reposition();\n\n /**\n * Whether to show save/cancel action buttons in edit mode.\n * @default false\n */\n readonly showActions = input(false, { transform: booleanAttribute });\n /**\n * Whether to automatically show validation error tooltips on save attempts.\n * @default true\n */\n readonly showTooltipOnError = input(true, { transform: booleanAttribute });\n /** Custom validation tooltip message. */\n readonly validationTooltip = input<string | TemplateRef<any>>();\n /**\n * Disables the component, preventing interaction and mode switching. Only allows menu dropdown.\n * @default false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Custom width in pixels for the edit mode overlay. Auto-calculated if not set. */\n readonly editModeWidth = input(undefined, { transform: numberAttribute });\n /** User-defined tooltip placement */\n readonly tooltipPlacement = input<PopUpPlacements>();\n /** Classes to be passed to the inline edit panel. */\n readonly overlayPanelClass = input<string | string[]>('');\n /** Handler function to retrieve the current value */\n readonly getValueHandler = input<() => unknown>();\n /** Handler function to update the value */\n readonly setValueHandler = input<(value: any) => void>();\n /** Customizable function that checks if saving on enter available. */\n readonly canSaveOnEnter = input(\n (event: KeyboardEvent): boolean =>\n hasModifierKey(event, 'ctrlKey', 'metaKey') || !(event.target instanceof HTMLTextAreaElement)\n );\n\n /**\n * CSS selectors for elements in view mode that should handle clicks instead of opening edit mode.\n * Override to replace or extend the default list.\n *\n * @example\n * `<kbq-inline-edit [interactiveSelectors]=\"['a', 'kbq-tag', 'button']\">`\n */\n readonly interactiveSelectors = input<string[]>(['a', 'kbq-tag']);\n\n /** Emitted when the inline edit is saved successfully. */\n protected readonly saved = output();\n /** Emitted when the inline edit is canceled and changes are discarded. */\n protected readonly canceled = output();\n /** Emitted when mode switched to edit/view */\n protected readonly modeChange = output<KbqInlineEditMode>();\n\n /** @docs-private */\n protected readonly menu = contentChild(KbqInlineEditMenu);\n /** @docs-private */\n protected readonly label = contentChild(KbqLabel);\n\n /** @docs-private */\n protected readonly formFieldRef = computed<KbqFormField | undefined>(() => this.formFieldRefList()[0]);\n /** @docs-private */\n protected readonly formFieldRefList = contentChildren(KbqFormField, { descendants: true });\n\n /** @docs-private */\n protected readonly selectRef = contentChild(KbqSelect, { descendants: true });\n /**\n * Whether edit mode contains a single-value select. When true, edit mode shows only the\n * dropdown panel instead of a bordered field - see the \"Select-style editor\" example.\n * @docs-private\n */\n protected readonly isSingleSelect = computed(() => {\n const select = this.selectRef();\n\n return !!select && !select.multiple && !select.multiline();\n });\n\n /** @docs-private */\n protected overlayOrigin: HTMLElement = this.elementRef.nativeElement;\n /** @docs-private */\n protected readonly tooltipTrigger = viewChild.required(KbqTooltipTrigger);\n /** @docs-private */\n protected readonly viewContainer = viewChild.required<ElementRef<HTMLElement>>('viewContainer');\n /** @docs-private */\n protected readonly overlayDir = viewChild.required(CdkConnectedOverlay);\n /** @docs-private */\n protected readonly regionItems = viewChildren(KbqFocusRegionItem);\n\n /** @docs-private */\n protected readonly mode = signal<KbqInlineEditMode>('view');\n /** @docs-private */\n protected readonly overlayWidth = signal<number | string>('');\n /** @docs-private */\n protected readonly scrollStrategy = signal<ScrollStrategy>(this.overlay.scrollStrategies.reposition());\n /** @docs-private */\n readonly modeAsReadonly = computed(() => this.mode());\n\n /** @docs-private */\n protected readonly className = computed(() => `${baseClass}_${this.mode()}`);\n /** @docs-private */\n protected readonly isEditMode = computed(() => this.mode() === 'edit');\n /** @docs-private */\n protected readonly hasInteractiveContent = signal(false);\n /** @docs-private */\n protected readonly anchorFocused = signal(false);\n /** @docs-private */\n protected readonly tabIndex = computed(() => {\n if (this.isEditMode() || this.disabled() || this.hasInteractiveContent()) return -1;\n\n return 0;\n });\n\n /** @docs-private */\n protected readonly placements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly colors = KbqComponentColors;\n\n private initialValue: unknown;\n\n /** Handle for an in-flight `showValidationTooltip()` scroll/settle request, if any. */\n private validationTooltipScrollHandle: { cancel: () => void } | null = null;\n\n constructor() {\n toObservable(this.mode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((currentMode) => this.modeChange.emit(currentMode));\n\n effect(() => {\n this.overlayOrigin = this.label() ? this.viewContainer().nativeElement : this.elementRef.nativeElement;\n });\n\n effect((onCleanup) => {\n const selectors = this.interactiveSelectors();\n\n const timeoutId = setTimeout(() => this.detectInteractiveContent(selectors));\n\n onCleanup(() => clearTimeout(timeoutId));\n });\n }\n\n /** Manually switch mode */\n toggleMode(): void {\n this.mode.update((mode) => (mode === 'view' ? 'edit' : 'view'));\n }\n\n /**\n * Implements `KbqConnectedOverlayOriginProvider`, letting a nested `KbqFormField`'s control\n * anchor its overlay to this element instead of the form-field's own container.\n * When no override is needed, the form-field falls back to its default.\n * @docs-private\n */\n getConnectedOverlayOrigin(): ElementRef | undefined {\n return this.isSingleSelect() ? this.elementRef : undefined;\n }\n\n /** Saves the current value and returns to view mode, running the same validation as a normal save. */\n commit(): void {\n this.save();\n }\n\n /** @docs-private */\n protected onClick(event: Event): void {\n if (this.disabled() || this.isEditMode() || this.isInteractiveElement(event.target)) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n this.toggleMode();\n }\n\n /** @docs-private */\n protected onAttach(): void {\n this.setOverlayWidth();\n this.setOverlayKeydownListener();\n\n this.overlayDir()!\n .overlayRef.detachments()\n .pipe(take(1))\n .subscribe(() => this.validationTooltipScrollHandle?.cancel());\n\n const formFieldRefList = this.formFieldRefList();\n\n merge(...formFieldRefList.map((ref) => ref.control().stateChanges))\n .pipe(takeUntil(this.overlayDir()!.overlayRef.detachments()))\n .subscribe(() => {\n if (!this.isInvalid()) {\n const tooltipTrigger = this.tooltipTrigger();\n\n if (tooltipTrigger?.isOpen) {\n tooltipTrigger.hide();\n }\n }\n });\n\n setTimeout(() => {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return;\n\n formFieldRef.focus();\n\n this.initialValue = this.getValue();\n\n const input = this.getInputNativeElement();\n\n if (this.initialValue) input?.select();\n\n this.openPanel(formFieldRef);\n }, 0);\n }\n\n /** @docs-private */\n protected save($event?: Event): void {\n // Guards against a control triggering both its own commit() and the overlay's outside-click handler for the\n // same interaction — without this, the second call would toggle back into edit mode.\n if (!this.isEditMode()) return;\n\n if (this.isInvalid()) {\n $event?.stopPropagation();\n\n if (this.showTooltipOnError() && this.validationTooltip()) {\n this.showValidationTooltip();\n }\n } else {\n this.toggleMode();\n this.saved.emit();\n }\n }\n\n /**\n * Whether `overlayOrigin` is fully within the viewport and every registered `CdkScrollable`\n * ancestor between it and the viewport. Ancestors without the `CdkScrollable` directive aren't\n * visible to `ScrollDispatcher` and aren't checked — same limitation as the rest of overlay\n * positioning.\n */\n private isOverlayOriginFullyVisible(): boolean {\n const rect = this.overlayOrigin.getBoundingClientRect();\n\n const isWithin = (container: { top: number; left: number; bottom: number; right: number }): boolean =>\n rect.top >= container.top &&\n rect.left >= container.left &&\n rect.bottom <= container.bottom &&\n rect.right <= container.right;\n\n if (!isWithin({ top: 0, left: 0, bottom: this.window.innerHeight, right: this.window.innerWidth })) {\n return false;\n }\n\n return this.scrollDispatcher\n .getAncestorScrollContainers(this.overlayOrigin)\n .every((scrollable) => isWithin(scrollable.getElementRef().nativeElement.getBoundingClientRect()));\n }\n\n /**\n * Shows the validation tooltip, scrolling the invalid control into view first if it isn't fully visible.\n *\n * `scrollIntoView({ behavior: 'smooth' })` finishes asynchronously — for a long scroll distance it can take\n * a while — so showing the tooltip right away would anchor its overlay to a stale, pre-scroll position.\n * `scrollend` reports when the scroll actually completes; the timeout is a fallback for browsers without\n * `scrollend` support and cases where nothing ends up scrolling.\n *\n * TODO(DS-5420): \"scroll an element into view, then act once settled\" isn't inline-edit-specific — worth\n * extracting into `packages/components/core` in a follow-up. Kept local to this fix for now.\n */\n private showValidationTooltip(): void {\n // save() can fire repeatedly while the control stays invalid (Save button + onOverlayOutsideClick on\n // every outside click) — let an in-flight request finish rather than stacking a second scroll/listener/timer.\n if (this.validationTooltipScrollHandle) return;\n\n if (this.isOverlayOriginFullyVisible()) {\n this.ngZone.run(() => this.tooltipTrigger()?.show());\n\n return;\n }\n\n let shown = false;\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const removeScrollEndListener = (): void =>\n this.window.removeEventListener('scrollend', onScrollEnd, { capture: true });\n\n const clearFallbackTimer = (): void => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n const onScrollEnd = (): void => {\n clearFallbackTimer();\n\n if (!shown) {\n shown = true;\n removeScrollEndListener();\n this.validationTooltipScrollHandle = null;\n this.ngZone.run(() => this.showValidationTooltipIfStillInvalid());\n\n return;\n }\n\n // Already shown via the fallback timeout at a stale position — this late scrollend corrects it\n // instead of re-showing (which would re-trigger the enter animation).\n removeScrollEndListener();\n this.validationTooltipScrollHandle = null;\n this.ngZone.run(() => {\n if (this.isInvalid() && this.tooltipTrigger()?.isOpen) {\n this.tooltipTrigger()?.updatePosition(true);\n }\n });\n };\n\n const onTimeout = (): void => {\n timeoutId = null;\n shown = true;\n this.validationTooltipScrollHandle = null;\n this.ngZone.run(() => this.showValidationTooltipIfStillInvalid());\n // Deliberately keep the scrollend listener alive: a late scrollend still corrects the stale\n // position via the branch above. Removed by cancel() or the next onScrollEnd call.\n };\n\n this.ngZone.runOutsideAngular(() => {\n this.window.addEventListener('scrollend', onScrollEnd, { capture: true });\n });\n\n timeoutId = setTimeout(onTimeout, VALIDATION_TOOLTIP_SCROLL_TIMEOUT);\n\n this.validationTooltipScrollHandle = {\n cancel: (): void => {\n removeScrollEndListener();\n clearFallbackTimer();\n this.validationTooltipScrollHandle = null;\n }\n };\n\n this.overlayOrigin.scrollIntoView({ block: 'center', inline: 'nearest', behavior: 'smooth' });\n }\n\n private showValidationTooltipIfStillInvalid(): void {\n if (!(this.isInvalid() && this.showTooltipOnError() && this.validationTooltip())) return;\n\n this.tooltipTrigger()?.show();\n }\n\n /** @docs-private */\n protected cancel(): void {\n this.setValue(this.initialValue);\n\n const input = this.getInputNativeElement();\n\n if (input) {\n input.selectionStart = input.selectionEnd = null;\n }\n\n this.toggleMode();\n this.canceled.emit();\n }\n\n /** @docs-private */\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.markAllAsTouched();\n const canSaveOnEnter = this.canSaveOnEnter();\n\n switch (event.key) {\n case 'Escape': {\n this.cancel();\n break;\n }\n case 'Enter': {\n if (canSaveOnEnter(event)) {\n event.preventDefault();\n this.markAllAsTouched();\n setTimeout(() => this.save(event));\n }\n\n break;\n }\n default: {\n return;\n }\n }\n }\n\n /**\n * Block propagation of overlay outside click.\n * Used to prevent reopening when target is inline edit itself.\n * @docs-private\n */\n protected onOverlayOutsideClick($event: Event) {\n if (isElement($event.target) && this.elementRef.nativeElement.contains($event.target)) {\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n this.save($event);\n }\n\n private detectInteractiveContent(selectors: string[]): void {\n if (!selectors.length) {\n this.hasInteractiveContent.set(false);\n\n return;\n }\n\n const viewContent = this.viewContainer().nativeElement.querySelector('.kbq-inline-edit__view-content');\n\n this.hasInteractiveContent.set(!!viewContent?.querySelector(selectors.join(',')));\n }\n\n private isInteractiveElement(target: EventTarget | null): boolean {\n const selectors = this.interactiveSelectors();\n\n if (!selectors.length) return false;\n\n return isElement(target) && !!target.closest(selectors.join(','));\n }\n\n /**\n * Sets up Tab key listeners on region items.\n * Single item: Tab moves to next edit.\n * Multiple items: Shift+Tab on first or Tab on last moves to next edit.\n */\n private setOverlayKeydownListener(): void {\n const regionItems = this.regionItems();\n\n if (regionItems.length === 0) return;\n\n const firstItem = regionItems.at(0);\n const lastItem = regionItems.at(regionItems.length - 1);\n\n if (regionItems.length === 1) {\n firstItem?.tabOut.subscribe((event) => this.saveAndFocusNextInlineEdit(event));\n } else {\n firstItem?.tabOut.subscribe(\n (event) => hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n\n lastItem?.tabOut.subscribe(\n (event) => !hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n }\n }\n\n private saveAndFocusNextInlineEdit(event: Event): void {\n this.save(event);\n if (this.isInvalid()) return;\n\n setTimeout(() => {\n const activeElement = this.document.activeElement;\n\n if (activeElement?.classList?.contains('kbq-inline-edit')) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));\n }\n });\n }\n\n private isInvalid(): boolean {\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length) return false;\n\n return formFieldRefList.some((ref) => ref.invalid);\n }\n\n private getValue() {\n const getValueHandler = this.getValueHandler();\n\n if (getValueHandler) return getValueHandler();\n\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length) return;\n\n return this.formFieldRefList().map((ref) => this.coerceControl(ref)?.value);\n }\n\n private setValue<T>(value: T): void {\n const setValue = this.setValueHandler();\n\n if (setValue) {\n setValue(value);\n\n return;\n }\n\n const formFieldRefList = this.formFieldRefList();\n\n if (!formFieldRefList.length || !Array.isArray(value)) return;\n\n value.forEach((controlValue, index) => {\n const control = this.coerceControl(formFieldRefList[index]);\n\n if (!control) return;\n\n if (control instanceof AbstractControl) {\n control.setValue(controlValue);\n } else {\n control.value = controlValue;\n }\n });\n }\n\n private coerceControl(formFieldRef: KbqFormField) {\n const control = formFieldRef.control();\n\n if (control.ngControl instanceof NgControl) {\n return control.ngControl.control;\n }\n\n return control;\n }\n\n private setOverlayWidth(): void {\n const editModeWidth = this.editModeWidth();\n\n if (editModeWidth) {\n this.overlayWidth.set(editModeWidth);\n\n return;\n }\n\n const element: HTMLElement | null = this.label()\n ? this.elementRef.nativeElement.querySelector('.kbq-inline-edit__focus_container')\n : this.elementRef.nativeElement;\n\n if (element) {\n const overlayRef = this.overlayDir().overlayRef;\n\n this.resizeObserver\n .observe(element)\n .pipe(takeUntil(overlayRef.detachments()))\n .subscribe(() => {\n this.overlayWidth.set(element.offsetWidth);\n overlayRef.updatePosition();\n });\n }\n\n this.overlayWidth.set(element?.offsetWidth ?? '');\n }\n\n private openPanel(formFieldRef: KbqFormField) {\n const control = formFieldRef.control();\n\n control?.open?.();\n }\n\n private getInputNativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type=\"file\"]),textarea') ?? null;\n }\n\n private markAllAsTouched(): void {\n this.formFieldRefList().forEach((formField) => formField.control().ngControl?.control?.markAsTouched());\n }\n}\n","<div class=\"kbq-inline-edit__focus_container\">\n @if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n }\n\n <div #viewContainer class=\"kbq-inline-edit__view-container\">\n <div class=\"kbq-inline-edit__view-content\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n </div>\n\n @if (hasInteractiveContent() && mode() === 'view' && !disabled()) {\n <div\n class=\"kbq-inline-edit__focus-anchor cdk-visually-hidden\"\n tabindex=\"0\"\n (focus)=\"anchorFocused.set(true)\"\n (blur)=\"anchorFocused.set(false)\"\n ></div>\n }\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"onOverlayOutsideClick($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"cdk-visually-hidden\" aria-hidden=\"true\" kbqFocusRegionItem tabindex=\"0\"></div>\n <div\n class=\"kbq-inline-edit__panel\"\n cdkTrapFocusAutoCapture\n [class.kbq-inline-edit__panel_select]=\"isSingleSelect()\"\n [cdkTrapFocus]=\"false\"\n >\n <div\n class=\"kbq-inline-edit__control-container\"\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipDisabled]=\"!validationTooltip()\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n [kbqTooltipScrollStrategy]=\"validationTooltipScrollStrategy\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <div class=\"kbq-inline-edit__action-button\">\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n </div>\n\n <div class=\"kbq-inline-edit__action-button\">\n <button kbq-button [color]=\"'contrast-fade'\" (click)=\"cancel()\">\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n <div class=\"cdk-visually-hidden\" aria-hidden=\"true\" kbqFocusRegionItem tabindex=\"0\"></div>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqInlineEdit, KbqInlineEditMenu, KbqInlineEditPlaceholder } from './inline-edit';\n\nconst COMPONENTS = [\n KbqInlineEdit,\n KbqInlineEditPlaceholder,\n KbqInlineEditMenu\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqInlineEditModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { getSupportedInputTypes } from '@angular/cdk/platform';
3
3
  import * as i0 from '@angular/core';
4
4
  import { forwardRef, inject, ElementRef, Renderer2, EventEmitter, input, booleanAttribute, HostAttributeToken, Input, Directive, InjectionToken, NgModule } from '@angular/core';
5
5
  import { NG_VALUE_ACCESSOR, NgControl, NgForm, FormGroupDirective, NG_VALIDATORS, Validators, FormsModule } from '@angular/forms';
6
- import { ruRUFormattersData, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_LOCALE_SERVICE, V, X, Z, NUMPAD_MINUS, DASH, FF_MINUS, DELETE, BACKSPACE, TAB, ESCAPE, ENTER, LEFT_ARROW, RIGHT_ARROW, HOME, END, normalizeNumber, isSelectAll, isCopy, isFunctionKey, isNumberKey, isNumpadKey, UP_ARROW, DOWN_ARROW, checkAndNormalizeLocalizedNumber, formatNumberWithLocale, ErrorStateMatcher } from '@koobiq/components/core';
6
+ import { ruRUFormattersData, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_LOCALE_SERVICE, V, X, Z, NUMPAD_MINUS, DASH, FF_MINUS, DELETE, BACKSPACE, TAB, ESCAPE, ENTER, LEFT_ARROW, RIGHT_ARROW, HOME, END, normalizeNumber, isSelectAll, isCopy, isFunctionKey, isNumberKey, isNumpadKey, UP_ARROW, DOWN_ARROW, checkAndNormalizeLocalizedNumber, formatNumberWithLocale, ErrorStateMatcher, kbqInjectAutofilled } from '@koobiq/components/core';
7
7
  import { KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
8
8
  import { Subject } from 'rxjs';
9
9
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -100,6 +100,11 @@ class KbqNumberInput {
100
100
  /** Emits when the disabled state has changed */
101
101
  this.disabledChange = new EventEmitter();
102
102
  this.stateChanges = new Subject();
103
+ /**
104
+ * Implemented as part of KbqFormFieldControl.
105
+ * @docs-private
106
+ */
107
+ this.controlType = 'input-number';
103
108
  /**
104
109
  * Allows input and pasting of integers only.
105
110
  */
@@ -350,10 +355,10 @@ class KbqNumberInput {
350
355
  }
351
356
  return `${formattedIntPart}${this.fractionSeparator}${formattedFractionPart}`;
352
357
  }
353
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNumberInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
354
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqNumberInput, isStandalone: true, selector: "input[kbqNumberInput]", inputs: { integer: { classPropertyName: "integer", publicName: "integer", isSignal: true, isRequired: false, transformFunction: null }, bigStep: { classPropertyName: "bigStep", publicName: "bigStep", isSignal: false, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: false, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: false, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: false, isRequired: false, transformFunction: null }, withThousandSeparator: { classPropertyName: "withThousandSeparator", publicName: "withThousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, startFormattingFrom: { classPropertyName: "startFormattingFrom", publicName: "startFormattingFrom", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, providers: [KBQ_NUMBER_INPUT_VALUE_ACCESSOR], exportAs: ["kbqNumericalInput"], ngImport: i0 }); }
358
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqNumberInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
359
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.30", type: KbqNumberInput, isStandalone: true, selector: "input[kbqNumberInput]", inputs: { integer: { classPropertyName: "integer", publicName: "integer", isSignal: true, isRequired: false, transformFunction: null }, bigStep: { classPropertyName: "bigStep", publicName: "bigStep", isSignal: false, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: false, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: false, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: false, isRequired: false, transformFunction: null }, withThousandSeparator: { classPropertyName: "withThousandSeparator", publicName: "withThousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, startFormattingFrom: { classPropertyName: "startFormattingFrom", publicName: "startFormattingFrom", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, providers: [KBQ_NUMBER_INPUT_VALUE_ACCESSOR], exportAs: ["kbqNumericalInput"], ngImport: i0 }); }
355
360
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNumberInput, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqNumberInput, decorators: [{
357
362
  type: Directive,
358
363
  args: [{
359
364
  selector: `input[kbqNumberInput]`,
@@ -486,6 +491,11 @@ class KbqInput {
486
491
  * @docs-private
487
492
  */
488
493
  this.focused = false;
494
+ /**
495
+ * Implemented as part of KbqFormFieldControl.
496
+ * @docs-private
497
+ */
498
+ this.autofilled = kbqInjectAutofilled();
489
499
  /**
490
500
  * Implemented as part of KbqFormFieldControl.
491
501
  * @docs-private
@@ -495,7 +505,7 @@ class KbqInput {
495
505
  * Implemented as part of KbqFormFieldControl.
496
506
  * @docs-private
497
507
  */
498
- this.controlType = 'input';
508
+ this.controlType = this.numberInput ? 'input-number' : 'input';
499
509
  this.uid = `kbq-input-${nextUniqueId$1++}`;
500
510
  this.neverEmptyInputTypes = [
501
511
  'date',
@@ -596,15 +606,15 @@ class KbqInput {
596
606
  const validity = this.elementRef.nativeElement.validity;
597
607
  return validity?.badInput;
598
608
  }
599
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
600
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqInput, isStandalone: true, selector: "input[kbqInput],input[kbqNumberInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "kbq-input" }, providers: [
609
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
610
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqInput, isStandalone: true, selector: "input[kbqInput],input[kbqNumberInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "kbq-input" }, providers: [
601
611
  {
602
612
  provide: KbqFormFieldControl,
603
613
  useExisting: KbqInput
604
614
  }
605
615
  ], exportAs: ["kbqInput"], usesOnChanges: true, ngImport: i0 }); }
606
616
  }
607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInput, decorators: [{
617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInput, decorators: [{
608
618
  type: Directive,
609
619
  args: [{
610
620
  selector: `input[kbqInput],input[kbqNumberInput]`,
@@ -643,10 +653,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
643
653
  type: Input
644
654
  }] } });
645
655
  class KbqInputMono {
646
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
647
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqInputMono, isStandalone: true, selector: "input[kbqInputMonospace]", host: { classAttribute: "kbq-input_monospace" }, exportAs: ["KbqInputMonospace"], ngImport: i0 }); }
656
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
657
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqInputMono, isStandalone: true, selector: "input[kbqInputMonospace]", host: { classAttribute: "kbq-input_monospace" }, exportAs: ["KbqInputMonospace"], ngImport: i0 }); }
648
658
  }
649
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputMono, decorators: [{
659
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputMono, decorators: [{
650
660
  type: Directive,
651
661
  args: [{
652
662
  selector: 'input[kbqInputMonospace]',
@@ -685,10 +695,10 @@ class MinValidator {
685
695
  createValidator() {
686
696
  this.validator = Validators.min(parseInt(this.min(), 10));
687
697
  }
688
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
689
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: MinValidator, isStandalone: true, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.min": "min() ? min() : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 }); }
698
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
699
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.30", type: MinValidator, isStandalone: true, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.min": "min() ? min() : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 }); }
690
700
  }
691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MinValidator, decorators: [{
701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: MinValidator, decorators: [{
692
702
  type: Directive,
693
703
  args: [{
694
704
  selector: '[min][formControlName],[min][formControl],[min][ngModel]',
@@ -728,10 +738,10 @@ class MaxValidator {
728
738
  createValidator() {
729
739
  this.validator = Validators.max(parseInt(this.max(), 10));
730
740
  }
731
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
732
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: MaxValidator, isStandalone: true, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.max": "max() ? max() : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 }); }
741
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
742
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.30", type: MaxValidator, isStandalone: true, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.max": "max() ? max() : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 }); }
733
743
  }
734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MaxValidator, decorators: [{
744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: MaxValidator, decorators: [{
735
745
  type: Directive,
736
746
  args: [{
737
747
  selector: '[max][formControlName],[max][formControl],[max][ngModel]',
@@ -826,6 +836,11 @@ class KbqInputPassword {
826
836
  * @docs-private
827
837
  */
828
838
  this.focused = false;
839
+ /**
840
+ * Implemented as part of KbqFormFieldControl.
841
+ * @docs-private
842
+ */
843
+ this.autofilled = kbqInjectAutofilled();
829
844
  /**
830
845
  * Implemented as part of KbqFormFieldControl.
831
846
  * @docs-private
@@ -881,8 +896,10 @@ class KbqInputPassword {
881
896
  checkRules() {
882
897
  this.checkRule.next();
883
898
  }
899
+ /** Toggles the native input type between password and text. */
884
900
  toggleType() {
885
901
  this.elementType = this.elementType === 'password' ? 'text' : 'password';
902
+ this.stateChanges.next(null);
886
903
  }
887
904
  /** Focuses the input. */
888
905
  focus() {
@@ -927,15 +944,15 @@ class KbqInputPassword {
927
944
  // The `validity` property won't be present on platform-server.
928
945
  return this.elementRef.nativeElement.validity?.badInput;
929
946
  }
930
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputPassword, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
931
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqInputPassword, isStandalone: true, selector: "input[kbqInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "kbq-input kbq-input-password" }, providers: [
947
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputPassword, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
948
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.30", type: KbqInputPassword, isStandalone: true, selector: "input[kbqInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "kbq-input kbq-input-password" }, providers: [
932
949
  {
933
950
  provide: KbqFormFieldControl,
934
951
  useExisting: KbqInputPassword
935
952
  }
936
953
  ], exportAs: ["kbqInputPassword"], usesOnChanges: true, ngImport: i0 }); }
937
954
  }
938
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputPassword, decorators: [{
955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputPassword, decorators: [{
939
956
  type: Directive,
940
957
  args: [{
941
958
  selector: `input[kbqInputPassword]`,
@@ -975,8 +992,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
975
992
  }] } });
976
993
 
977
994
  class KbqInputModule {
978
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
979
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqInputModule, imports: [A11yModule,
995
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
996
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqInputModule, imports: [A11yModule,
980
997
  FormsModule,
981
998
  KbqIconModule,
982
999
  KbqInput,
@@ -991,11 +1008,11 @@ class KbqInputModule {
991
1008
  MinValidator,
992
1009
  MaxValidator,
993
1010
  KbqFormFieldModule] }); }
994
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputModule, imports: [A11yModule,
1011
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputModule, imports: [A11yModule,
995
1012
  FormsModule,
996
1013
  KbqIconModule, KbqFormFieldModule] }); }
997
1014
  }
998
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqInputModule, decorators: [{
1015
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqInputModule, decorators: [{
999
1016
  type: NgModule,
1000
1017
  args: [{
1001
1018
  imports: [