fix: after update (#DS-5079)#1622
Conversation
|
Visit the preview URL for this PR (updated for commit 6498b3f): https://koobiq-next--prs-1622-815op42q.web.app (expires Sat, 13 Jun 2026 16:38:07 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c |
b2a980d to
e8802e3
Compare
🚨 E2E tests failedReview the report for details. 💡 Comment |
There was a problem hiding this comment.
Pull request overview
This PR hardens KbqSelect’s “hidden selected items” calculation logic to avoid runtime errors when expected trigger DOM elements aren’t present yet (regression observed after a framework update), and adds a unit test to prevent the crash from returning.
Changes:
- Add null-guards in
calculateHiddenItemswhen.kbq-select__match-hidden-text/.kbq-select__match-listaren’t available yet. - Make
getTotalVisibleItems()tolerate a missing.kbq-select__match-hidden-textelement before callingRenderer2.setStyle. - Add a regression unit test ensuring
calculateHiddenItems()doesn’t throw when the hidden-text element is missing.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| packages/components/select/select.component.ts | Adds defensive null checks in hidden-items calculation paths to prevent DOM access / Renderer2.setStyle crashes. |
| packages/components/select/select.component.spec.ts | Adds a regression test covering the “hidden-text not yet in DOM” scenario. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
650aef2 to
fcddba1
Compare
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
Replace the legacy .eslintrc.js/.eslintignore with a flat eslint.config.js and bump eslint to v9. Swap the unmaintained eslint-plugin-rxjs for the maintained eslint-plugin-rxjs-x fork (rxjs-x/* namespace) and adopt the typescript-eslint and angular-eslint umbrella packages. Preserve the previous lint behavior: disable the rxjs-x rules new to its recommended set (prefer-root-operators, prefer-observer), ignore .yarn (flat config lints .cjs by default), and restore no-unused-vars caughtErrors: 'none'.
…es to option action (#DS-5079)
Drop the align-self: flex-start override that lifted the toggle and checkbox off center. Also center the badge in the tree-action-button example.
Run `ng generate @angular/core:inject` with --migrate-abstract-classes and --backwards-compatible-constructors across all packages. Constructor parameter injection is replaced by the inject() function. Manual fixes for migration limitations: - assert non-null (!) on all optional inject fields to preserve the original non-null @optional() typing and public API (nonNullableOptional behaviour) - fix null/undefined mismatches (?? undefined) for luxon/moment options and markdown marked options - form-field KbqTrim: coerce @Attribute('no-trim') to boolean at the field - tooltip: fix KBQ_TOOLTIP_OPEN_TIME token type (() => ScrollStrategy -> { value: number }) - remove stale deps:[] from providers of inject()-based classes (formatters, notification-center, luxon/moment adapters) so Angular uses each class's factory and keeps the injection context (fixes NG0201) - DateFormatter: inject the Core DateAdapter token instead of the base @koobiq/date-adapter one to match the registered provider - adapt specs that used deps:[] / manual new KbqLocaleService() to the inject API Builds, public API guard and unit tests (3121 passed) are green.
Remove the artifacts left by the --backwards-compatible-constructors run:
- the `/** Inserted by Angular inject() migration ... */` comments (152)
- the `constructor(...args: unknown[]);` overload signatures (152)
- empty `constructor() {}` and super-only `constructor() { super(); }` (78)
Subclasses that passed freshly-injected locals to an empty base constructor
(KbqFocusableComponent, KbqTreeBase, KbqTreeNode, KbqToastComponent) now call
super() with no arguments, since each base injects those dependencies itself;
the now-unused locals were removed. Public API constructor signatures change
from `(...args: unknown[])` to the real `()`.
Builds, public API guard and TypeScript compilation are green.
The backwards-compat scaffolding cleanup removed the constructor overload of CdkVirtualScrollViewportSelect; its spec subclass passed scrollDispatcher to super(). The base injects scrollDispatcher itself, so call super() with no args.
Extend the consumer-facing v20-upgrade codemod (auto-run via `ng update @koobiq/components`, manual via `ng generate`) with the remaining @deprecated symbols: - DropdownPositionX/Y -> KbqDropdownPositionX/Y (TS type aliases) - KbqCodeBlock [canLoad]/canLoad= -> canDownload, [codeFiles]/codeFiles= -> files (template attribute forms only; programmatic TS access surfaced as a warning) - warn-only: scrollableCodeContent (use scrollTo()), KbqFilter.required (use cleanable=false + removable=false) Adds spec coverage for each mapping and documents them in the migration README.
b185885 to
742d48a
Compare
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
✅ Snapshots updated! |
No description provided.