@koobiq/components 20.4.1 → 20.4.3

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.
@@ -108,7 +108,8 @@ declare class KbqOverflowItems {
108
108
  */
109
109
  readonly additionalResizeObserverTargets: _angular_core.InputSignal<Element | Element[]>;
110
110
  /**
111
- * Emits when the set of hidden items changes.
111
+ * Emits the set of hidden items after every recalculation, also when it has not changed: a recalculation shows every
112
+ * item before it hides the overflown ones again, so a consumer that hides items itself re-applies that here.
112
113
  */
113
114
  readonly changes: _angular_core.OutputEmitterRef<ReadonlySet<unknown>>;
114
115
  /**
@@ -127,6 +128,7 @@ declare class KbqOverflowItems {
127
128
  * @default 'nowrap'
128
129
  */
129
130
  readonly wrap: _angular_core.InputSignal<KbqFlexWrap>;
131
+ /** The main axis of each orientation, as the `DOMRect` and `CSSStyleDeclaration` members to read. */
130
132
  private readonly orientationConfig;
131
133
  constructor();
132
134
  private setupObservers;
@@ -146,9 +148,16 @@ declare class KbqOverflowItems {
146
148
  private setStyles;
147
149
  private hasOverflown;
148
150
  /**
149
- * @TODO Should be removed when `Array.prototype.findLast` is supported.
151
+ * Measures how far the children of the container that take part in its layout exceed its content box along the
152
+ * main axis, and the space each of them takes, its margins and one gap included.
150
153
  */
151
- private findLast;
154
+ private measure;
155
+ /**
156
+ * Children of the element that take part in its flex layout: neither `display: none` nor taken out of flow, as
157
+ * hidden items are, with the children of a `display: contents` child in its place.
158
+ */
159
+ private getLaidOutChildren;
160
+ private px;
152
161
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqOverflowItems, never>;
153
162
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqOverflowItems, "[kbqOverflowItems]", ["kbqOverflowItems"], { "reverseOverflowOrder": { "alias": "reverseOverflowOrder"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; "additionalResizeObserverTargets": { "alias": "additionalResizeObserverTargets"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; }, { "changes": "changes"; }, ["items", "result"], never, true, never>;
154
163
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "20.4.1",
3
+ "version": "20.4.3",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,10 +25,10 @@
25
25
  "@angular/cdk": ">=20.0.0",
26
26
  "@angular/core": ">=20.0.0",
27
27
  "@angular/forms": ">=20.0.0",
28
- "@koobiq/angular-moment-adapter": "20.4.1",
29
- "@koobiq/angular-luxon-adapter": "20.4.1",
28
+ "@koobiq/angular-moment-adapter": "20.4.3",
29
+ "@koobiq/angular-luxon-adapter": "20.4.3",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
- "@koobiq/icons": "^11.1.3",
31
+ "@koobiq/icons": "^11.1.3 || ^12.0.0",
32
32
  "@koobiq/design-tokens": "^3.14.0"
33
33
  },
34
34
  "dependencies": {
@@ -27,7 +27,7 @@ function ngAdd(options) {
27
27
  }
28
28
  // Installing dependencies
29
29
  utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^20.2.14");
30
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.4.1");
30
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.4.3");
31
31
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
32
32
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
33
33
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.2.0");
package/toast/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, TemplateRef, Provider, OnDestroy, ElementRef, ComponentRef, EmbeddedViewRef, ViewContainerRef, ViewRef, Injector } from '@angular/core';
3
3
  import { CdkScrollable } from '@angular/cdk/overlay';
4
4
  import * as rxjs from 'rxjs';
5
- import { BehaviorSubject, Observable } from 'rxjs';
5
+ import { BehaviorSubject } from 'rxjs';
6
6
  import { AnimationEvent } from '@angular/animations';
7
7
  import * as i1 from '@koobiq/components/core';
8
8
  import { KbqReadStateDirective, ThemePalette } from '@koobiq/components/core';
@@ -144,33 +144,24 @@ declare class KbqToastContainerComponent extends CdkScrollable {
144
144
  private changeDetectorRef;
145
145
  readonly service: KbqToastService<any>;
146
146
  readonly viewContainer: i0.Signal<ViewContainerRef>;
147
- /**
148
- * Emits while the stack re-lays-out. Toasts are ordinary flow children, so removing one slides the
149
- * rest for as long as its height animates — and an overlay opened from inside a toast is anchored to
150
- * a trigger that is moving. CDK only re-measures the origin on a scroll or a viewport resize, so the
151
- * stack has to say when it moved.
152
- *
153
- * The container's own box tracks the reflow exactly: continuously while a leaving toast animates its
154
- * height away, and once for a removal that is not animated at all, such as a template toast.
155
- */
156
- private readonly reflowed;
157
- /**
158
- * `ScrollDispatcher` subscribes to this method when the container registers itself, so merging the
159
- * reflow signal in re-broadcasts it to every overlay that repositions on scroll — which is what
160
- * `kbq-select` and the dropdown trigger do by default.
161
- */
162
- elementScrolled(): Observable<Event>;
147
+ private readonly overlayKeyboardDispatcher;
148
+ constructor();
163
149
  createToast<C>(data: KbqToastData, componentType: any, onTop: boolean): ComponentRef<C>;
164
150
  createTemplate<C>(data: KbqToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C>;
165
151
  remove(viewRef: ViewRef): void;
166
152
  getInjector(data: KbqToastData): Injector;
153
+ /**
154
+ * Re-applies the position of every overlay anchored to an element; one whose origin has not moved stays where it
155
+ * is. CDK keeps no public registry of attached overlays, but its keyboard dispatcher tracks each of them.
156
+ */
157
+ private repositionConnectedOverlays;
167
158
  /**
168
159
  * Fakes a scroll on the container so that overlays anchored inside a toast are repositioned by their
169
160
  * `RepositionScrollStrategy` when the stack shifts.
170
161
  *
171
- * @deprecated The container reports its own reflow through `elementScrolled()`, so nothing calls this.
162
+ * @deprecated The container repositions the overlays anchored inside it on its own, so nothing calls this.
172
163
  * It is kept only for callers that already hold a container reference — the instance created by
173
- * `KbqToastService` is not exposed.
164
+ * `KbqToastService` is not exposed. The fake scroll also closes every close-on-scroll overlay of the app.
174
165
  */
175
166
  dispatchScrollEvent: () => void;
176
167
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqToastContainerComponent, never>;
package/tree/index.d.ts CHANGED
@@ -576,6 +576,8 @@ declare class KbqTreeOption extends KbqTreeNode<KbqTreeOption> implements AfterC
576
576
  markForCheck(): void;
577
577
  /** @docs-private */
578
578
  protected onMouseenter(): void;
579
+ /** Recomputes the option's own checkbox state, leaving its ancestors as they are. */
580
+ private syncCheckboxState;
579
581
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTreeOption, never>;
580
582
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqTreeOption, "kbq-tree-option", ["kbqTreeOption"], { "checkboxThirdState": { "alias": "checkboxThirdState"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selectAllRow": { "alias": "selectAllRow"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; }, { "onSelectionChange": "onSelectionChange"; }, ["toggleElementDirective", "toggleElementComponent", "pseudoCheckbox", "actionButton", "tooltipTrigger", "dropdownTrigger"], ["kbq-tree-node-toggle, [kbq-tree-node-toggle], [kbqTreeNodeToggle]", "kbq-pseudo-checkbox", "kbq-checkbox", "[kbq-icon]", "kbq-progress-spinner", "*", "kbq-option-action"], true, never>;
581
583
  }
@@ -640,6 +642,8 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
640
642
  readonly selectAllOption: i0.Signal<KbqTreeOption | undefined>;
641
643
  unorderedOptions: QueryList<KbqTreeOption>;
642
644
  treeControl: FlatTreeControl<any>;
645
+ /** `treeControl.dataNodes` the options' checkbox states were last recomputed against. */
646
+ private checkboxSyncedDataNodes;
643
647
  readonly navigationChange: i0.OutputEmitterRef<KbqTreeNavigationChange<KbqTreeOption>>;
644
648
  readonly selectionChange: EventEmitter<KbqTreeSelectionChange<KbqTreeOption>>;
645
649
  readonly onSelectAll: i0.OutputEmitterRef<KbqTreeSelectAllEvent<KbqTreeOption>>;
@@ -720,6 +724,12 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
720
724
  setFocusedOption(option: KbqTreeOption): void;
721
725
  toggleFocusedOption(): void;
722
726
  renderNodeChanges(data: KbqTreeOption[], dataDiffer?: IterableDiffer<KbqTreeOption>, viewContainer?: ViewContainerRef, parentData?: KbqTreeOption): void;
727
+ /**
728
+ * Recomputes every option's checkbox state after `dataNodes` is replaced, which moves the descendants a branch
729
+ * counts: no selection change follows to do it. A microtask later, as a flat data source assigns `dataNodes` only
730
+ * after it emits.
731
+ */
732
+ private scheduleCheckboxSync;
723
733
  emitNavigationEvent(option: KbqTreeOption): void;
724
734
  emitChangeEvent(option: KbqTreeOption): void;
725
735
  /**