@koobiq/components 20.2.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.
- package/accordion/_accordion-theme.scss +5 -1
- package/accordion/accordion-tokens.scss +2 -0
- package/accordion/accordion-trigger.scss +6 -0
- package/accordion/accordion.scss +21 -0
- package/accordion/index.d.ts +55 -8
- package/actions-panel/index.d.ts +25 -13
- package/app-switcher/app-switcher-dropdown-app.scss +7 -5
- package/app-switcher/app-switcher-dropdown-site.scss +6 -4
- package/app-switcher/index.d.ts +41 -4
- package/app-switcher/kbq-app-switcher-list-item.scss +6 -8
- package/autocomplete/index.d.ts +24 -9
- package/breadcrumbs/index.d.ts +1 -1
- package/button/index.d.ts +2 -2
- package/button-toggle/button-toggle-tokens.scss +2 -0
- package/button-toggle/button-toggle.scss +9 -0
- package/button-toggle/index.d.ts +5 -0
- package/checkbox/index.d.ts +33 -29
- package/clamped-text/index.d.ts +1 -1
- package/code-block/index.d.ts +24 -19
- package/content-panel/index.d.ts +1 -1
- package/core/index.d.ts +1125 -199
- package/core/option/_action-container-mixins.scss +28 -0
- package/core/option/_option-theme.scss +24 -0
- package/core/option/action.scss +7 -0
- package/core/styles/_koobiq-theme.scss +2 -0
- package/core/styles/_tokens.scss +1 -0
- package/core/styles/common/_connected-overlay.scss +6 -3
- package/core/styles/common/_select.scss +12 -0
- package/core/styles/common/_tokens.scss +0 -9
- package/core/styles/theming/_index.scss +0 -1
- package/core/styles/theming/_theming.scss +34 -5
- package/datepicker/index.d.ts +46 -15
- package/dl/dl.scss +26 -0
- package/dl/index.d.ts +8 -1
- package/dropdown/_dropdown-theme.scss +28 -2
- package/dropdown/dropdown-item.scss +13 -0
- package/dropdown/dropdown.scss +7 -1
- package/dropdown/index.d.ts +264 -17
- package/dynamic-translation/index.d.ts +1 -1
- package/fesm2022/koobiq-components-accordion.mjs +106 -46
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +57 -46
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +16 -16
- package/fesm2022/koobiq-components-app-switcher.mjs +233 -38
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +54 -31
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +13 -13
- package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +17 -12
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +25 -25
- package/fesm2022/koobiq-components-checkbox.mjs +69 -92
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
- package/fesm2022/koobiq-components-code-block.mjs +56 -69
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +29 -29
- package/fesm2022/koobiq-components-core.mjs +2445 -789
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +160 -121
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +23 -15
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +754 -155
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +74 -42
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +605 -192
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +7 -7
- package/fesm2022/koobiq-components-form-field.mjs +346 -158
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +39 -21
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +172 -27
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +41 -24
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +8 -8
- package/fesm2022/koobiq-components-list.mjs +657 -143
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
- package/fesm2022/koobiq-components-markdown.mjs +14 -11
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +59 -35
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +69 -54
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +23 -22
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -17
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +26 -21
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
- package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +33 -14
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
- package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +419 -106
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +14 -14
- package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
- package/fesm2022/koobiq-components-skeleton.mjs +10 -10
- package/fesm2022/koobiq-components-split-button.mjs +7 -7
- package/fesm2022/koobiq-components-splitter.mjs +17 -17
- package/fesm2022/koobiq-components-table.mjs +15 -13
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +54 -54
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +283 -122
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +13 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +29 -24
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +58 -26
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +76 -39
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +7 -7
- package/fesm2022/koobiq-components-toast.mjs +51 -26
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +72 -64
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +115 -36
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +13 -13
- package/fesm2022/koobiq-components-tree-select.mjs +189 -55
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +302 -81
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +27 -27
- package/file-upload/index.d.ts +25 -6
- package/file-upload/multiple-file-upload.component.scss +14 -0
- package/filter-bar/_filter-bar-theme.scss +0 -6
- package/filter-bar/index.d.ts +222 -9
- package/filter-bar/pipes/pipe-multi-tree-select.scss +0 -6
- package/filter-bar/pipes/pipe-multiselect.scss +0 -6
- package/filter-bar/pipes/pipe-tree-select.scss +0 -6
- package/form-field/_form-field-theme.scss +76 -20
- package/form-field/fieldset.scss +10 -0
- package/form-field/form-field-tokens.scss +15 -1
- package/form-field/form-field.scss +15 -19
- package/form-field/index.d.ts +147 -65
- package/icon/index.d.ts +31 -6
- package/inline-edit/index.d.ts +57 -4
- package/inline-edit/inline-edit.scss +10 -0
- package/input/index.d.ts +17 -2
- package/list/_list-theme.scss +42 -10
- package/list/index.d.ts +326 -79
- package/list/list-tokens.scss +43 -8
- package/list/list.scss +186 -12
- package/markdown/index.d.ts +1 -1
- package/modal/index.d.ts +21 -4
- package/modal/modal-tokens.scss +1 -1
- package/navbar/index.d.ts +16 -1
- package/navbar/navbar-brand.scss +6 -0
- package/navbar/vertical-navbar.scss +6 -0
- package/notification-center/notification-item.scss +6 -0
- package/package.json +3 -6
- package/popover/index.d.ts +2 -2
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/resizer/index.d.ts +12 -0
- package/schematics/migrations/deprecated-icons/README.md +29 -4
- package/schematics/migrations/deprecated-icons/data.js +7 -0
- package/schematics/migrations/deprecated-icons/index.js +62 -35
- package/schematics/migrations/new-icons-pack/README.md +37 -2
- package/schematics/migrations/new-icons-pack/data.js +8 -0
- package/schematics/migrations/new-icons-pack/index.js +144 -53
- package/schematics/ng-add/index.js +3 -3
- package/schematics/utils/angular-parsing.js +30 -12
- package/schematics/utils/ast.js +31 -0
- package/schematics/utils/icon-migration.js +530 -0
- package/schematics/utils/typescript.js +44 -0
- package/scrollbar/index.d.ts +1 -1
- package/select/index.d.ts +163 -18
- package/select/select-tokens.scss +0 -1
- package/select/select.scss +0 -2
- package/splitter/index.d.ts +1 -1
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +2 -1
- package/table/table.scss +8 -0
- package/tags/index.d.ts +128 -29
- package/textarea/index.d.ts +5 -0
- package/time-range/index.d.ts +1 -1
- package/timepicker/index.d.ts +4 -0
- package/timezone/index.d.ts +9 -5
- package/toast/index.d.ts +26 -3
- package/toggle/index.d.ts +34 -14
- package/tooltip/index.d.ts +54 -11
- package/tree/_tree-theme.scss +25 -5
- package/tree/index.d.ts +71 -3
- package/tree/tree-option.scss +2 -8
- package/tree-select/_tree-select-theme.scss +22 -0
- package/tree-select/index.d.ts +83 -16
- package/core/styles/_tokens.kbq.import.scss +0 -4
- package/core/styles/theming/_components-theming.scss +0 -1927
- package/filter-bar/pipes/pipe-select.scss +0 -5
- package/overflow-items/overflow-items.scss +0 -20
package/form-field/index.d.ts
CHANGED
|
@@ -1,20 +1,108 @@
|
|
|
1
|
-
import { KbqIconButton } from '@koobiq/components/icon';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Signal, AfterContentInit, QueryList, AfterViewInit, OnDestroy, ChangeDetectorRef, TemplateRef, OutputEmitterRef,
|
|
4
|
-
import {
|
|
5
|
-
import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
|
|
2
|
+
import { Signal, InjectionToken, AfterContentInit, Provider, QueryList, AfterViewInit, OnDestroy, ChangeDetectorRef, TemplateRef, OutputEmitterRef, AfterContentChecked, ElementRef } from '@angular/core';
|
|
3
|
+
import { KbqIconButton } from '@koobiq/components/icon';
|
|
6
4
|
import { NgControl } from '@angular/forms';
|
|
7
5
|
import { Observable, Subject } from 'rxjs';
|
|
6
|
+
import { KbqColorDirective, KbqComponentColors } from '@koobiq/components/core';
|
|
7
|
+
import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
|
|
8
8
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
9
9
|
|
|
10
|
+
/** An interface which allows a control to work inside of a `KbqFormField`. */
|
|
11
|
+
declare abstract class KbqFormFieldControl<T> {
|
|
12
|
+
/** The value of the control. */
|
|
13
|
+
value: T | null;
|
|
14
|
+
/**
|
|
15
|
+
* Stream that emits whenever the state of the control changes such that the parent `KbqFormField`
|
|
16
|
+
* needs to run change detection.
|
|
17
|
+
*/
|
|
18
|
+
readonly stateChanges: Observable<void>;
|
|
19
|
+
/** The element ID for this control. */
|
|
20
|
+
readonly id: string;
|
|
21
|
+
/** The placeholder for this control. */
|
|
22
|
+
readonly placeholder: string;
|
|
23
|
+
/** Gets the NgControl for this control. */
|
|
24
|
+
readonly ngControl: NgControl | null;
|
|
25
|
+
/** Whether the control is focused. */
|
|
26
|
+
readonly focused: boolean;
|
|
27
|
+
/** Whether the control is empty. */
|
|
28
|
+
readonly empty: boolean;
|
|
29
|
+
/** Whether the control is required. */
|
|
30
|
+
readonly required: boolean;
|
|
31
|
+
/** Whether the control is disabled. */
|
|
32
|
+
readonly disabled: boolean;
|
|
33
|
+
/** Whether the control is in an error state. */
|
|
34
|
+
readonly errorState: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the control's value was filled in by the browser.
|
|
37
|
+
*
|
|
38
|
+
* Implement it only where autofill is reachable: on a control that is itself a text input or a
|
|
39
|
+
* textarea, or — like `KbqTagList` — on a wrapper that forwards the state of the input it hosts.
|
|
40
|
+
* Leave it out on controls the browser never fills.
|
|
41
|
+
*
|
|
42
|
+
* A signal rather than a plain property because the form field reads it from a host binding and
|
|
43
|
+
* runs `OnPush`: a signal read there marks the form field dirty on its own.
|
|
44
|
+
*/
|
|
45
|
+
readonly autofilled?: Signal<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* An optional name for the control type that can be used to distinguish `kbq-form-field` elements
|
|
48
|
+
* based on their control type. The form field will add a class,
|
|
49
|
+
* `kbq-form-field-type-{{controlType}}` to its root element.
|
|
50
|
+
*/
|
|
51
|
+
readonly controlType?: string;
|
|
52
|
+
/** Handles a click on the control's container. */
|
|
53
|
+
abstract onContainerClick(event: MouseEvent): void;
|
|
54
|
+
/** Focuses the control. */
|
|
55
|
+
abstract focus(options?: FocusOptions): void;
|
|
56
|
+
/** Opens control's overlay. */
|
|
57
|
+
abstract open?(): void;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** @docs-private */
|
|
61
|
+
interface KbqCleanerContext {
|
|
62
|
+
readonly control: KbqFormFieldControl<unknown>;
|
|
63
|
+
readonly keydownTarget: HTMLElement;
|
|
64
|
+
readonly clearByEscape: boolean;
|
|
65
|
+
/** Overrides the default `cleanerControl.ngControl?.reset()` behavior when the cleaner is activated. */
|
|
66
|
+
clear?(): void;
|
|
67
|
+
}
|
|
68
|
+
/** @docs-private */
|
|
69
|
+
declare const KBQ_CLEANER_CONTEXT: InjectionToken<KbqCleanerContext | null>;
|
|
70
|
+
/**
|
|
71
|
+
* Utility provider for `KBQ_CLEANER_CONTEXT`, built from a factory that resolves the current host's `KbqCleanerContext`.
|
|
72
|
+
* @docs-private
|
|
73
|
+
*/
|
|
74
|
+
declare const kbqCleanerFactoryProvider: (factory: () => KbqCleanerContext) => Provider;
|
|
75
|
+
/** @docs-private */
|
|
76
|
+
declare function getKbqFormFieldYouCanNotUseCleanerInNumberInputError(): Error;
|
|
10
77
|
/**
|
|
11
78
|
* Element to be placed in end of the form field.
|
|
12
79
|
* Resets form control by click.
|
|
13
80
|
*/
|
|
14
|
-
declare class KbqCleaner extends KbqIconButton {
|
|
81
|
+
declare class KbqCleaner extends KbqIconButton implements AfterContentInit {
|
|
82
|
+
private readonly context;
|
|
83
|
+
/**
|
|
84
|
+
* Whether the cleaner can be displayed for the current control state.
|
|
85
|
+
* @docs-private
|
|
86
|
+
*/
|
|
87
|
+
get canShow(): boolean;
|
|
88
|
+
private readonly a11yLocaleConfiguration;
|
|
89
|
+
/** Accessible name of the cleaner. Defaults to the localized "Clear". */
|
|
90
|
+
readonly ariaLabel: i0.InputSignal<string | undefined>;
|
|
91
|
+
/** @docs-private */
|
|
92
|
+
protected readonly accessibleName: i0.Signal<string>;
|
|
15
93
|
constructor();
|
|
94
|
+
ngAfterContentInit(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Clears the owning control in response to pointer or keyboard activation.
|
|
97
|
+
* @docs-private
|
|
98
|
+
*/
|
|
99
|
+
clear(event: Event): void;
|
|
100
|
+
/**
|
|
101
|
+
* Clears the focused control when Escape handling is enabled.
|
|
102
|
+
*/
|
|
103
|
+
private onKeyDown;
|
|
16
104
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqCleaner, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, ["*"], true, never>;
|
|
105
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
18
106
|
}
|
|
19
107
|
|
|
20
108
|
/** Hint text to be shown below the form field control. */
|
|
@@ -64,45 +152,6 @@ declare class KbqFieldset {
|
|
|
64
152
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqFieldset, "kbq-fieldset", never, {}, {}, ["legend"], ["[kbqLegend]", "*", "kbq-error", "kbq-hint, kbq-password-hint, kbq-reactive-password-hint"], true, never>;
|
|
65
153
|
}
|
|
66
154
|
|
|
67
|
-
/** An interface which allows a control to work inside of a `KbqFormField`. */
|
|
68
|
-
declare abstract class KbqFormFieldControl<T> {
|
|
69
|
-
/** The value of the control. */
|
|
70
|
-
value: T | null;
|
|
71
|
-
/**
|
|
72
|
-
* Stream that emits whenever the state of the control changes such that the parent `KbqFormField`
|
|
73
|
-
* needs to run change detection.
|
|
74
|
-
*/
|
|
75
|
-
readonly stateChanges: Observable<void>;
|
|
76
|
-
/** The element ID for this control. */
|
|
77
|
-
readonly id: string;
|
|
78
|
-
/** The placeholder for this control. */
|
|
79
|
-
readonly placeholder: string;
|
|
80
|
-
/** Gets the NgControl for this control. */
|
|
81
|
-
readonly ngControl: NgControl | null;
|
|
82
|
-
/** Whether the control is focused. */
|
|
83
|
-
readonly focused: boolean;
|
|
84
|
-
/** Whether the control is empty. */
|
|
85
|
-
readonly empty: boolean;
|
|
86
|
-
/** Whether the control is required. */
|
|
87
|
-
readonly required: boolean;
|
|
88
|
-
/** Whether the control is disabled. */
|
|
89
|
-
readonly disabled: boolean;
|
|
90
|
-
/** Whether the control is in an error state. */
|
|
91
|
-
readonly errorState: boolean;
|
|
92
|
-
/**
|
|
93
|
-
* An optional name for the control type that can be used to distinguish `kbq-form-field` elements
|
|
94
|
-
* based on their control type. The form field will add a class,
|
|
95
|
-
* `kbq-form-field-type-{{controlType}}` to its root element.
|
|
96
|
-
*/
|
|
97
|
-
readonly controlType?: string;
|
|
98
|
-
/** Handles a click on the control's container. */
|
|
99
|
-
abstract onContainerClick(event: MouseEvent): void;
|
|
100
|
-
/** Focuses the control. */
|
|
101
|
-
abstract focus(options?: FocusOptions): void;
|
|
102
|
-
/** Opens control's overlay. */
|
|
103
|
-
abstract open?(): void;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
155
|
declare enum PasswordRules {
|
|
107
156
|
Length = 0,
|
|
108
157
|
UpperLatin = 1,
|
|
@@ -157,14 +206,20 @@ declare class KbqPasswordToggle extends KbqTooltipTrigger implements AfterViewIn
|
|
|
157
206
|
protected readonly nativeElement: HTMLElement;
|
|
158
207
|
protected readonly focusMonitor: FocusMonitor;
|
|
159
208
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
209
|
+
private readonly a11yLocaleConfiguration;
|
|
160
210
|
private readonly formField;
|
|
161
211
|
readonly tabindex: i0.InputSignalWithTransform<number, unknown>;
|
|
162
212
|
/**
|
|
163
213
|
* @docs-private
|
|
164
214
|
*/
|
|
165
215
|
readonly icon: i0.Signal<KbqIconButton>;
|
|
216
|
+
/**
|
|
217
|
+
* Tooltip shown while the password is visible. Reading it resolves to the tooltip matching the current
|
|
218
|
+
* visibility, so that the base trigger renders the right one.
|
|
219
|
+
*/
|
|
166
220
|
get content(): string | TemplateRef<any>;
|
|
167
221
|
set content(content: string | TemplateRef<any>);
|
|
222
|
+
/** Tooltip shown while the password is hidden. */
|
|
168
223
|
readonly kbqTooltipHidden: i0.InputSignal<string | TemplateRef<any>>;
|
|
169
224
|
protected hasError: boolean;
|
|
170
225
|
/** Form field password control. */
|
|
@@ -181,23 +236,24 @@ declare class KbqPasswordToggle extends KbqTooltipTrigger implements AfterViewIn
|
|
|
181
236
|
* @docs-private
|
|
182
237
|
*/
|
|
183
238
|
get visibility(): 'hidden' | 'visible';
|
|
184
|
-
constructor();
|
|
185
239
|
/**
|
|
240
|
+
* Accessible name of the icon-only toggle, describing the action it performs.
|
|
241
|
+
*
|
|
186
242
|
* @docs-private
|
|
187
243
|
*/
|
|
244
|
+
protected get accessibleName(): string;
|
|
245
|
+
constructor();
|
|
188
246
|
ngAfterContentInit(): void;
|
|
189
|
-
/**
|
|
190
|
-
* @docs-private
|
|
191
|
-
*/
|
|
192
247
|
ngAfterViewInit(): void;
|
|
248
|
+
ngOnDestroy(): void;
|
|
193
249
|
/**
|
|
194
250
|
* @docs-private
|
|
195
251
|
*/
|
|
196
|
-
|
|
252
|
+
toggle(event: Event): void;
|
|
197
253
|
/**
|
|
198
|
-
*
|
|
254
|
+
* Toggles password visibility for the Alt+F8 shortcut.
|
|
199
255
|
*/
|
|
200
|
-
|
|
256
|
+
private onFormFieldKeyDown;
|
|
201
257
|
private updateState;
|
|
202
258
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqPasswordToggle, never>;
|
|
203
259
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqPasswordToggle, "kbq-password-toggle", ["kbqPasswordToggle"], { "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "content": { "alias": "kbqTooltipNotHidden"; "required": false; }; "kbqTooltipHidden": { "alias": "kbqTooltipHidden"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -209,10 +265,16 @@ declare class KbqPrefix {
|
|
|
209
265
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPrefix, "[kbqPrefix]", ["kbqPrefix"], {}, {}, never, never, true, never>;
|
|
210
266
|
}
|
|
211
267
|
|
|
212
|
-
|
|
268
|
+
/**
|
|
269
|
+
* Narrow structural contract for the control hosted by `kbqNumberInput`, duck-typed here to avoid
|
|
270
|
+
* a circular dependency between `@koobiq/components/form-field` and `@koobiq/components/input`.
|
|
271
|
+
*/
|
|
272
|
+
type KbqStepperControl = KbqFormFieldControl<unknown> & {
|
|
273
|
+
readonly controlType: 'input-number';
|
|
274
|
+
readonly step: number;
|
|
213
275
|
stepUp: (step: number) => void;
|
|
276
|
+
/** Decreases the value by `step`. */
|
|
214
277
|
stepDown: (step: number) => void;
|
|
215
|
-
step: number;
|
|
216
278
|
};
|
|
217
279
|
/**
|
|
218
280
|
* Timeout duration when clicking the up/down arrow
|
|
@@ -228,6 +290,7 @@ declare const KBQ_STEPPER_INTERVAL_DELAY = 75;
|
|
|
228
290
|
declare class KbqStepper {
|
|
229
291
|
private readonly formField;
|
|
230
292
|
private readonly document;
|
|
293
|
+
private readonly destroyRef;
|
|
231
294
|
/** Emitted when the stepper is incremented. */
|
|
232
295
|
readonly stepUp: OutputEmitterRef<void>;
|
|
233
296
|
/** Emitted when the stepper is decremented. */
|
|
@@ -246,19 +309,21 @@ declare class KbqStepper {
|
|
|
246
309
|
*/
|
|
247
310
|
private readonly longPress;
|
|
248
311
|
/**
|
|
249
|
-
* Form field number control.
|
|
312
|
+
* Form field number control. Resolved once per control change instead of on every template read.
|
|
250
313
|
*
|
|
251
314
|
* @docs-private
|
|
252
315
|
*/
|
|
253
|
-
protected
|
|
316
|
+
protected readonly control: i0.Signal<KbqStepperControl>;
|
|
317
|
+
constructor();
|
|
254
318
|
/**
|
|
319
|
+
* @deprecated No longer required — `KbqStepper` resolves its control automatically via DI.
|
|
255
320
|
* @docs-private
|
|
256
321
|
*/
|
|
257
|
-
connectTo(
|
|
322
|
+
connectTo(_: any): void;
|
|
258
323
|
/** @docs-private */
|
|
259
|
-
onStepUp(
|
|
324
|
+
onStepUp(event: MouseEvent): void;
|
|
260
325
|
/** @docs-private */
|
|
261
|
-
onStepDown(
|
|
326
|
+
onStepDown(event: MouseEvent): void;
|
|
262
327
|
private handleStep;
|
|
263
328
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqStepper, never>;
|
|
264
329
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqStepper, "kbq-stepper", ["kbqStepper"], {}, { "stepUp": "stepUp"; "stepDown": "stepDown"; }, never, never, true, never>;
|
|
@@ -272,8 +337,11 @@ declare class KbqSuffix {
|
|
|
272
337
|
|
|
273
338
|
/** @docs-private */
|
|
274
339
|
declare function getKbqFormFieldMissingControlError(): Error;
|
|
275
|
-
/**
|
|
276
|
-
|
|
340
|
+
/**
|
|
341
|
+
* Injection token used to access the owning `KbqFormField`.
|
|
342
|
+
* @docs-private
|
|
343
|
+
*/
|
|
344
|
+
declare const KBQ_FORM_FIELD: InjectionToken<KbqFormField>;
|
|
277
345
|
/**
|
|
278
346
|
* Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS`
|
|
279
347
|
* injection token.
|
|
@@ -292,6 +360,7 @@ type KbqFormFieldDefaultOptions = Partial<{
|
|
|
292
360
|
}>;
|
|
293
361
|
/**
|
|
294
362
|
* Injection token that can be used to configure the default options for all kbq-form-field's.
|
|
363
|
+
* @docs-private
|
|
295
364
|
*/
|
|
296
365
|
declare const KBQ_FORM_FIELD_DEFAULT_OPTIONS: InjectionToken<Partial<{
|
|
297
366
|
/** Disables form field borders and shadows. */
|
|
@@ -313,6 +382,7 @@ declare class KbqFormField extends KbqColorDirective implements AfterContentInit
|
|
|
313
382
|
private readonly changeDetectorRef;
|
|
314
383
|
private readonly focusMonitor;
|
|
315
384
|
private readonly defaultOptions;
|
|
385
|
+
private readonly customOverlayOrigin;
|
|
316
386
|
/**
|
|
317
387
|
* @docs-private
|
|
318
388
|
*/
|
|
@@ -376,6 +446,7 @@ declare class KbqFormField extends KbqColorDirective implements AfterContentInit
|
|
|
376
446
|
hovered: boolean;
|
|
377
447
|
/**
|
|
378
448
|
* @docs-private
|
|
449
|
+
* @deprecated Unused. This property is no longer used by the form field and will be removed in a future version.
|
|
379
450
|
*/
|
|
380
451
|
canCleanerClearByEsc: boolean;
|
|
381
452
|
/** Whether the form field is invalid. */
|
|
@@ -457,6 +528,17 @@ declare class KbqFormField extends KbqColorDirective implements AfterContentInit
|
|
|
457
528
|
get canShowCleaner(): boolean;
|
|
458
529
|
/** Whether the form field is disabled. */
|
|
459
530
|
get disabled(): boolean;
|
|
531
|
+
/**
|
|
532
|
+
* Whether the form field control's value was filled in by the browser. Controls that cannot be
|
|
533
|
+
* autofilled do not implement `autofilled`, and report `false` here.
|
|
534
|
+
*
|
|
535
|
+
* Reflected as `kbq-form-field_autofilled` for application code to key on. The autofill styling
|
|
536
|
+
* does not use it: CSS matches `:autofill` directly, in the same style pass the browser fills
|
|
537
|
+
* the field, where this arrives a frame or two later. Keeping the paint on one source also means
|
|
538
|
+
* a class left behind by a detached or re-attached control cannot tint a field the browser no
|
|
539
|
+
* longer considers autofilled.
|
|
540
|
+
*/
|
|
541
|
+
get autofilled(): boolean;
|
|
460
542
|
ngAfterContentInit(): void;
|
|
461
543
|
ngAfterContentChecked(): void;
|
|
462
544
|
ngAfterViewInit(): void;
|
|
@@ -475,10 +557,10 @@ declare class KbqFormField extends KbqColorDirective implements AfterContentInit
|
|
|
475
557
|
onContainerClick(event: MouseEvent): void;
|
|
476
558
|
/**
|
|
477
559
|
* Handles keydown events.
|
|
478
|
-
*
|
|
560
|
+
* @deprecated Unused. This method is no longer called by the form field and will be removed in a future version.
|
|
479
561
|
* @docs-private
|
|
480
562
|
*/
|
|
481
|
-
onKeyDown(
|
|
563
|
+
onKeyDown(_event: KeyboardEvent): void;
|
|
482
564
|
/**
|
|
483
565
|
* @docs-private
|
|
484
566
|
*/
|
|
@@ -565,5 +647,5 @@ declare class KbqFormFieldModule {
|
|
|
565
647
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqFormFieldModule>;
|
|
566
648
|
}
|
|
567
649
|
|
|
568
|
-
export { KBQ_FORM_FIELD_DEFAULT_OPTIONS, KBQ_STEPPER_INITIAL_TIMEOUT, KBQ_STEPPER_INTERVAL_DELAY, KbqCleaner, KbqError, KbqFieldset, KbqFieldsetItem, KbqFormField, KbqFormFieldControl, KbqFormFieldModule, KbqHint, KbqLabel, KbqLegend, KbqPasswordHint, KbqPasswordToggle, KbqPrefix, KbqReactivePasswordHint, KbqStepper, KbqSuffix, KbqTrim, PasswordRules, getKbqFormFieldMissingControlError, getKbqFormFieldYouCanNotUseCleanerInNumberInputError, hasPasswordStrengthError, kbqFormFieldDefaultOptionsProvider, regExpPasswordValidator };
|
|
569
|
-
export type { KbqFormFieldDefaultOptions };
|
|
650
|
+
export { KBQ_CLEANER_CONTEXT, KBQ_FORM_FIELD, KBQ_FORM_FIELD_DEFAULT_OPTIONS, KBQ_STEPPER_INITIAL_TIMEOUT, KBQ_STEPPER_INTERVAL_DELAY, KbqCleaner, KbqError, KbqFieldset, KbqFieldsetItem, KbqFormField, KbqFormFieldControl, KbqFormFieldModule, KbqHint, KbqLabel, KbqLegend, KbqPasswordHint, KbqPasswordToggle, KbqPrefix, KbqReactivePasswordHint, KbqStepper, KbqSuffix, KbqTrim, PasswordRules, getKbqFormFieldMissingControlError, getKbqFormFieldYouCanNotUseCleanerInNumberInputError, hasPasswordStrengthError, kbqCleanerFactoryProvider, kbqFormFieldDefaultOptionsProvider, regExpPasswordValidator };
|
|
651
|
+
export type { KbqCleanerContext, KbqFormFieldDefaultOptions };
|
package/icon/index.d.ts
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { AfterContentInit, OnChanges, ElementRef, ChangeDetectorRef, DestroyRef, SimpleChanges, AfterViewInit, OnDestroy
|
|
2
|
+
import { InjectionToken, Provider, AfterContentInit, OnChanges, ElementRef, ChangeDetectorRef, DestroyRef, SimpleChanges, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
4
|
-
import * as _koobiq_components_core from '@koobiq/components/core';
|
|
5
|
-
import { KbqColorDirective } from '@koobiq/components/core';
|
|
6
4
|
import { Observable, ReplaySubject } from 'rxjs';
|
|
5
|
+
import { KbqColorDirective } from '@koobiq/components/core';
|
|
7
6
|
import { SafeResourceUrl, SafeHtml } from '@angular/platform-browser';
|
|
8
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Narrow contract that lets `KbqIcon` react to a host's error state (e.g. `autoColor`) without
|
|
10
|
+
* depending on the host's concrete class.
|
|
11
|
+
* @docs-private
|
|
12
|
+
*/
|
|
13
|
+
interface KbqIconErrorStateContext {
|
|
14
|
+
/** Whether the host is currently in an error state. */
|
|
15
|
+
readonly errorState: boolean;
|
|
16
|
+
/** Emits whenever the host's state changes, prompting `KbqIcon` to re-check `errorState`. */
|
|
17
|
+
readonly stateChanges: Observable<void>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Injection token used by `KbqIcon` to look up its `KbqIconErrorStateContext`.
|
|
21
|
+
* @docs-private
|
|
22
|
+
*/
|
|
23
|
+
declare const KBQ_ICON_ERROR_STATE_CONTEXT: InjectionToken<KbqIconErrorStateContext>;
|
|
24
|
+
/**
|
|
25
|
+
* Utility provider for `KBQ_ICON_ERROR_STATE_CONTEXT`, built from a factory that resolves the current host's `KbqIconErrorStateContext`.
|
|
26
|
+
* @docs-private
|
|
27
|
+
*/
|
|
28
|
+
declare const kbqIconErrorStateContextFactoryProvider: (factory: () => KbqIconErrorStateContext) => Provider;
|
|
29
|
+
|
|
9
30
|
interface KbqIconOptions {
|
|
10
31
|
viewBox?: string;
|
|
11
32
|
withCredentials?: boolean;
|
|
@@ -56,7 +77,11 @@ declare class KbqIconRegistry {
|
|
|
56
77
|
|
|
57
78
|
declare class KbqIcon extends KbqColorDirective implements AfterContentInit, OnChanges {
|
|
58
79
|
readonly elementRef: ElementRef<HTMLElement>;
|
|
59
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Host providing error state for `autoColor`, when the icon sits inside one (e.g. a form field).
|
|
82
|
+
* @docs-private
|
|
83
|
+
*/
|
|
84
|
+
protected readonly errorStateContext: KbqIconErrorStateContext | null;
|
|
60
85
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
61
86
|
protected readonly registry: KbqIconRegistry | null;
|
|
62
87
|
protected readonly destroyRef: DestroyRef;
|
|
@@ -171,5 +196,5 @@ declare class KbqIconModule {
|
|
|
171
196
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqIconModule>;
|
|
172
197
|
}
|
|
173
198
|
|
|
174
|
-
export { KBQ_ICONS_CONFIG, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider };
|
|
175
|
-
export type { KbqIconButtonSize, KbqIconOptions, KbqIconResolver, KbqIconsConfig };
|
|
199
|
+
export { KBQ_ICONS_CONFIG, KBQ_ICON_ERROR_STATE_CONTEXT, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconErrorStateContextFactoryProvider, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider };
|
|
200
|
+
export type { KbqIconButtonSize, KbqIconErrorStateContext, KbqIconOptions, KbqIconResolver, KbqIconsConfig };
|
package/inline-edit/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { ElementRef, TemplateRef } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import { PopUpPlacements, KbqComponentColors } from '@koobiq/components/core';
|
|
3
|
+
import { ScrollStrategy, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
|
4
|
+
import { KbqConnectedOverlayOriginProvider, PopUpPlacements, KbqComponentColors } from '@koobiq/components/core';
|
|
5
5
|
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
6
6
|
import { KbqLabel, KbqFormField } from '@koobiq/components/form-field';
|
|
7
|
+
import { KbqSelect } from '@koobiq/components/select';
|
|
7
8
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
8
9
|
import * as i1 from '@angular/cdk/a11y';
|
|
9
10
|
|
|
@@ -37,11 +38,24 @@ declare class KbqInlineEditMenu {
|
|
|
37
38
|
* This component is projecting edit/view mode templates and adds keyboard/pointer handlers.
|
|
38
39
|
* Edit mode opens in a positioned overlay that matches the view mode width or can be customized.
|
|
39
40
|
*/
|
|
40
|
-
declare class KbqInlineEdit {
|
|
41
|
+
declare class KbqInlineEdit implements KbqConnectedOverlayOriginProvider {
|
|
41
42
|
private readonly overlay;
|
|
42
43
|
private readonly document;
|
|
44
|
+
private readonly window;
|
|
43
45
|
private readonly resizeObserver;
|
|
44
46
|
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
47
|
+
private readonly ngZone;
|
|
48
|
+
private readonly scrollDispatcher;
|
|
49
|
+
/**
|
|
50
|
+
* The validation tooltip is anchored inside the edit-mode overlay — an overlay inside another
|
|
51
|
+
* overlay. Its default `close()` scroll strategy would close it the moment either overlay's
|
|
52
|
+
* origin scrolls (including the programmatic scroll `showValidationTooltip()` uses to bring an
|
|
53
|
+
* invalid control into view), so it's overridden to `reposition()` here — passed directly as a
|
|
54
|
+
* per-instance override to this tooltip's `[kbqTooltipScrollStrategy]` input, rather than a DI
|
|
55
|
+
* override, so it doesn't leak into any `kbqTooltip` in projected content.
|
|
56
|
+
* @docs-private
|
|
57
|
+
*/
|
|
58
|
+
protected readonly validationTooltipScrollStrategy: () => ScrollStrategy;
|
|
45
59
|
/**
|
|
46
60
|
* Whether to show save/cancel action buttons in edit mode.
|
|
47
61
|
* @default false
|
|
@@ -94,6 +108,14 @@ declare class KbqInlineEdit {
|
|
|
94
108
|
/** @docs-private */
|
|
95
109
|
protected readonly formFieldRefList: _angular_core.Signal<readonly KbqFormField[]>;
|
|
96
110
|
/** @docs-private */
|
|
111
|
+
protected readonly selectRef: _angular_core.Signal<KbqSelect | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Whether edit mode contains a single-value select. When true, edit mode shows only the
|
|
114
|
+
* dropdown panel instead of a bordered field - see the "Select-style editor" example.
|
|
115
|
+
* @docs-private
|
|
116
|
+
*/
|
|
117
|
+
protected readonly isSingleSelect: _angular_core.Signal<boolean>;
|
|
118
|
+
/** @docs-private */
|
|
97
119
|
protected overlayOrigin: HTMLElement;
|
|
98
120
|
/** @docs-private */
|
|
99
121
|
protected readonly tooltipTrigger: _angular_core.Signal<KbqTooltipTrigger>;
|
|
@@ -126,15 +148,46 @@ declare class KbqInlineEdit {
|
|
|
126
148
|
/** @docs-private */
|
|
127
149
|
protected readonly colors: typeof KbqComponentColors;
|
|
128
150
|
private initialValue;
|
|
151
|
+
/** Handle for an in-flight `showValidationTooltip()` scroll/settle request, if any. */
|
|
152
|
+
private validationTooltipScrollHandle;
|
|
129
153
|
constructor();
|
|
130
154
|
/** Manually switch mode */
|
|
131
155
|
toggleMode(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Implements `KbqConnectedOverlayOriginProvider`, letting a nested `KbqFormField`'s control
|
|
158
|
+
* anchor its overlay to this element instead of the form-field's own container.
|
|
159
|
+
* When no override is needed, the form-field falls back to its default.
|
|
160
|
+
* @docs-private
|
|
161
|
+
*/
|
|
162
|
+
getConnectedOverlayOrigin(): ElementRef | undefined;
|
|
163
|
+
/** Saves the current value and returns to view mode, running the same validation as a normal save. */
|
|
164
|
+
commit(): void;
|
|
132
165
|
/** @docs-private */
|
|
133
166
|
protected onClick(event: Event): void;
|
|
134
167
|
/** @docs-private */
|
|
135
168
|
protected onAttach(): void;
|
|
136
169
|
/** @docs-private */
|
|
137
170
|
protected save($event?: Event): void;
|
|
171
|
+
/**
|
|
172
|
+
* Whether `overlayOrigin` is fully within the viewport and every registered `CdkScrollable`
|
|
173
|
+
* ancestor between it and the viewport. Ancestors without the `CdkScrollable` directive aren't
|
|
174
|
+
* visible to `ScrollDispatcher` and aren't checked — same limitation as the rest of overlay
|
|
175
|
+
* positioning.
|
|
176
|
+
*/
|
|
177
|
+
private isOverlayOriginFullyVisible;
|
|
178
|
+
/**
|
|
179
|
+
* Shows the validation tooltip, scrolling the invalid control into view first if it isn't fully visible.
|
|
180
|
+
*
|
|
181
|
+
* `scrollIntoView({ behavior: 'smooth' })` finishes asynchronously — for a long scroll distance it can take
|
|
182
|
+
* a while — so showing the tooltip right away would anchor its overlay to a stale, pre-scroll position.
|
|
183
|
+
* `scrollend` reports when the scroll actually completes; the timeout is a fallback for browsers without
|
|
184
|
+
* `scrollend` support and cases where nothing ends up scrolling.
|
|
185
|
+
*
|
|
186
|
+
* TODO(DS-5420): "scroll an element into view, then act once settled" isn't inline-edit-specific — worth
|
|
187
|
+
* extracting into `packages/components/core` in a follow-up. Kept local to this fix for now.
|
|
188
|
+
*/
|
|
189
|
+
private showValidationTooltip;
|
|
190
|
+
private showValidationTooltipIfStillInvalid;
|
|
138
191
|
/** @docs-private */
|
|
139
192
|
protected cancel(): void;
|
|
140
193
|
/** @docs-private */
|
|
@@ -163,7 +216,7 @@ declare class KbqInlineEdit {
|
|
|
163
216
|
private getInputNativeElement;
|
|
164
217
|
private markAllAsTouched;
|
|
165
218
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqInlineEdit, never>;
|
|
166
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqInlineEdit, "kbq-inline-edit", ["kbqInlineEdit"], { "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; "showTooltipOnError": { "alias": "showTooltipOnError"; "required": false; "isSignal": true; }; "validationTooltip": { "alias": "validationTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editModeWidth": { "alias": "editModeWidth"; "required": false; "isSignal": true; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; "isSignal": true; }; "overlayPanelClass": { "alias": "overlayPanelClass"; "required": false; "isSignal": true; }; "getValueHandler": { "alias": "getValueHandler"; "required": false; "isSignal": true; }; "setValueHandler": { "alias": "setValueHandler"; "required": false; "isSignal": true; }; "canSaveOnEnter": { "alias": "canSaveOnEnter"; "required": false; "isSignal": true; }; "interactiveSelectors": { "alias": "interactiveSelectors"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "canceled": "canceled"; "modeChange": "modeChange"; }, ["menu", "label", "formFieldRefList"], ["kbq-label", "[kbqInlineEditViewMode]", "[kbqInlineEditMenu]", "[kbqInlineEditEditMode]"], true, [{ directive: typeof i1.CdkMonitorFocus; inputs: {}; outputs: {}; }]>;
|
|
219
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqInlineEdit, "kbq-inline-edit", ["kbqInlineEdit"], { "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; "showTooltipOnError": { "alias": "showTooltipOnError"; "required": false; "isSignal": true; }; "validationTooltip": { "alias": "validationTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editModeWidth": { "alias": "editModeWidth"; "required": false; "isSignal": true; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; "isSignal": true; }; "overlayPanelClass": { "alias": "overlayPanelClass"; "required": false; "isSignal": true; }; "getValueHandler": { "alias": "getValueHandler"; "required": false; "isSignal": true; }; "setValueHandler": { "alias": "setValueHandler"; "required": false; "isSignal": true; }; "canSaveOnEnter": { "alias": "canSaveOnEnter"; "required": false; "isSignal": true; }; "interactiveSelectors": { "alias": "interactiveSelectors"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "canceled": "canceled"; "modeChange": "modeChange"; }, ["menu", "label", "formFieldRefList", "selectRef"], ["kbq-label", "[kbqInlineEditViewMode]", "[kbqInlineEditMenu]", "[kbqInlineEditEditMode]"], true, [{ directive: typeof i1.CdkMonitorFocus; inputs: {}; outputs: {}; }]>;
|
|
167
220
|
}
|
|
168
221
|
|
|
169
222
|
declare class KbqInlineEditModule {
|
|
@@ -125,6 +125,12 @@
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
// Select-style editor: edit mode shows only the dropdown, not a bordered field, so the view
|
|
129
|
+
// text keeps showing through and just gets the "active" look instead.
|
|
130
|
+
&.kbq-inline-edit_select.kbq-inline-edit_edit {
|
|
131
|
+
--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);
|
|
132
|
+
}
|
|
133
|
+
|
|
128
134
|
&:hover,
|
|
129
135
|
&.cdk-keyboard-focused,
|
|
130
136
|
&.kbq-inline-edit_anchor-focused {
|
|
@@ -187,6 +193,10 @@
|
|
|
187
193
|
padding: var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s);
|
|
188
194
|
}
|
|
189
195
|
|
|
196
|
+
&.kbq-inline-edit__panel_select .kbq-inline-edit__control-container {
|
|
197
|
+
display: none;
|
|
198
|
+
}
|
|
199
|
+
|
|
190
200
|
.kbq-inline-edit__control-container,
|
|
191
201
|
.kbq-inline-edit__action-button {
|
|
192
202
|
box-shadow: var(--kbq-shadow-popup);
|
package/input/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnDestroy, EventEmitter, OnChanges, DoCheck, ElementRef,
|
|
2
|
+
import { OnDestroy, EventEmitter, OnChanges, DoCheck, ElementRef, SimpleChanges, Provider, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/forms';
|
|
4
4
|
import { ControlValueAccessor, NgControl, NgForm, FormGroupDirective, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
5
5
|
import { KbqNumberInputLocaleConfig, CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core';
|
|
@@ -38,7 +38,11 @@ declare class KbqNumberInput implements KbqFormFieldControl<any>, ControlValueAc
|
|
|
38
38
|
empty: boolean;
|
|
39
39
|
required: boolean;
|
|
40
40
|
errorState: boolean;
|
|
41
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Implemented as part of KbqFormFieldControl.
|
|
43
|
+
* @docs-private
|
|
44
|
+
*/
|
|
45
|
+
controlType: string;
|
|
42
46
|
/**
|
|
43
47
|
* Allows input and pasting of integers only.
|
|
44
48
|
*/
|
|
@@ -114,6 +118,11 @@ declare class KbqInput implements KbqFormFieldControl<any>, OnChanges, OnDestroy
|
|
|
114
118
|
* @docs-private
|
|
115
119
|
*/
|
|
116
120
|
focused: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Implemented as part of KbqFormFieldControl.
|
|
123
|
+
* @docs-private
|
|
124
|
+
*/
|
|
125
|
+
readonly autofilled: i0.Signal<boolean>;
|
|
117
126
|
/**
|
|
118
127
|
* Implemented as part of KbqFormFieldControl.
|
|
119
128
|
* @docs-private
|
|
@@ -248,6 +257,11 @@ declare class KbqInputPassword implements KbqFormFieldControl<any>, OnChanges, O
|
|
|
248
257
|
* @docs-private
|
|
249
258
|
*/
|
|
250
259
|
focused: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Implemented as part of KbqFormFieldControl.
|
|
262
|
+
* @docs-private
|
|
263
|
+
*/
|
|
264
|
+
readonly autofilled: i0.Signal<boolean>;
|
|
251
265
|
/**
|
|
252
266
|
* Implemented as part of KbqFormFieldControl.
|
|
253
267
|
* @docs-private
|
|
@@ -306,6 +320,7 @@ declare class KbqInputPassword implements KbqFormFieldControl<any>, OnChanges, O
|
|
|
306
320
|
ngDoCheck(): void;
|
|
307
321
|
updateErrorState(): void;
|
|
308
322
|
checkRules(): void;
|
|
323
|
+
/** Toggles the native input type between password and text. */
|
|
309
324
|
toggleType(): void;
|
|
310
325
|
/** Focuses the input. */
|
|
311
326
|
focus(): void;
|