Skip to content

Table card search and scopes#182

Open
Sobyt483 wants to merge 5 commits into
mainfrom
table-card-filters
Open

Table card search and scopes#182
Sobyt483 wants to merge 5 commits into
mainfrom
table-card-filters

Conversation

@Sobyt483

@Sobyt483 Sobyt483 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor
image

Known limitations: there is currently no way to natively extend the width of the scope select. Long labels get truncated. A DOM manipulation workaround can be applied inside the component, but it's fragile.
image

I have raised an issue in the ui5-webcomponents repository:
UI5/webcomponents#13719

Summary by CodeRabbit

Release Notes

  • New Features

    • Added search scopes functionality—optionally filter results by selecting from a dropdown of scope options.
    • New search events now include scope information alongside search values for more granular control.
  • Refactor

    • Refactored search into a dedicated component for improved modularity.
    • Made table card header optional in configuration.
  • Documentation

    • Expanded documentation detailing new search configuration options and event contracts.

Sobyt483 added 2 commits June 23, 2026 15:16
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
@Sobyt483 Sobyt483 requested review from a team as code owners June 23, 2026 12:10
@Sobyt483 Sobyt483 self-assigned this Jun 23, 2026
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Sobyt483, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 52 minutes and 30 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses rolling per-developer review limits. Reviews become available again as older review attempts age out of the rolling limit window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2c440bdb-d7ac-415c-b9fb-a1cd02c6b2da

📥 Commits

Reviewing files that changed from the base of the PR and between 84b05bb and 7f0b4eb.

📒 Files selected for processing (4)
  • projects/ngx/declarative-ui/models/index.ts
  • projects/ngx/declarative-ui/models/ui-definition.ts
  • projects/ngx/declarative-ui/table/models/index.ts
  • projects/ngx/declarative-ui/table/models/table-config.ts
📝 Walkthrough

Walkthrough

Introduces a new TableCardSearch Angular component that encapsulates UI5 search/scope UI with debounced and synchronous event outputs. DeclarativeTableCard is refactored to delegate to this component, dropping inline search logic. Output payloads change from string to { value, scope? }. New Scope/TableCardSearchConfig models replace the resourcesSearchable boolean. Tests, stories, and docs are updated throughout.

Changes

TableCardSearch extraction and search/scope API

Layer / File(s) Summary
Search config models and TableConfig extraction
projects/ngx/declarative-ui/table-card/models/search-config.ts, projects/ngx/declarative-ui/table/models/table-config.ts, projects/ngx/declarative-ui/table/models/index.ts, projects/ngx/declarative-ui/table-card/models/configs.ts, projects/ngx/declarative-ui/table-card/index.ts
Introduces Scope and TableCardSearchConfig interfaces in a new search-config.ts. Extracts TableConfig from configs.ts into table/models/table-config.ts with a type re-export. Replaces resourcesSearchable?: boolean with searchConfig?: TableCardSearchConfig in TableCardConfig, removes searchButton from TableCardButtonSettings. Wires all public re-exports.
New TableCardSearch component
projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts, .html, .scss
Adds a standalone Angular component with Shadow DOM encapsulation. Manages a FormControl for search input and an activeScope signal, debounces searchChanged at 300ms, emits searchSubmit and scopeChanged synchronously, syncs activeScope from searchConfig().scopeValue, applies DOM workaround to prevent scope label truncation, and renders UI5 search with optional scope dropdown.
DeclarativeTableCard refactored to delegate search
projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts, .html, .scss
Removes inline search state, FormControl, debounced subscription, toggle handlers, and animation keyframes. Adds TableCardSearch to imports, introduces a searchConfig computed property, changes three output types to { value: string; scope?: string }, replaces old search markup with <mfp-table-card-search>, and refactors header layout with flexible sizing and gap adjustments.
Unit tests
projects/ngx/declarative-ui/table-card/search/table-card-search.component.spec.ts, projects/ngx/declarative-ui/table-card/declarative-table-card.component.spec.ts
Adds a focused TableCardSearch spec covering rendering bindings, debounced searchChanged after 300ms, synchronous searchSubmit/scopeChanged, in-flight text inclusion, and searchConfig.value binding/sync behavior. Updates DeclarativeTableCard spec with a root() helper, searchConfig wiring in the setup function, and new pass-through output assertions for searchSubmit and scopeChanged.
Storybook stories and documentation
projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts, docs/declarative-table-card.md
Adds two new exported stories (WithSearch, WithSearchAndScopes) with a wrapper component that filters resources by search term/scope and logs search events, removes resourcesSearchable from BASE_CONFIG. Documentation adds the Angular example with new event bindings, revised event payload tables, new Scope/TableCardSearchConfig type definitions, and a comprehensive "Search & Scopes" section explaining rendering, alwaysOnDisplay behavior, collapse state preservation, and event contracts.

Sequence Diagram(s)

sequenceDiagram
  participant Host as Host Component
  participant DTC as DeclarativeTableCard
  participant TCS as TableCardSearch
  participant UI5 as ui5-search

  rect rgba(100, 149, 237, 0.5)
    Note over DTC,TCS: Initialization
    Host->>DTC: config() with searchConfig
    DTC->>TCS: [searchConfig]="searchConfig()"
  end

  rect rgba(144, 238, 144, 0.5)
    Note over TCS,UI5: User input interaction
    UI5->>TCS: input event → onSearchInput()
    TCS->>TCS: FormControl.setValue()
    TCS->>TCS: debounce 300ms
    TCS-->>DTC: searchChanged { value, scope? }
    DTC-->>Host: searchChanged output
  end

  rect rgba(255, 165, 0, 0.5)
    Note over TCS,UI5: Submit and scope change
    UI5->>TCS: search-submit → onSearchSubmit()
    TCS-->>DTC: searchSubmit { value, scope? }
    UI5->>TCS: scope-change → onSearchScopeChange()
    TCS->>TCS: update activeScope
    TCS-->>DTC: scopeChanged { value, scope? }
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Suggested reviewers

  • gkrajniak
  • lpgarzonr

🐰 A rabbit built a search component new,
Where scopes and values shine right through.
No more resourcesSearchable in sight,
Just { value, scope? } in a unified flight!
Debounced, submitted, scope-changed with grace —
A typed config fit for any space. 🔍✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Table card search and scopes' clearly summarizes the main changes: adding search functionality and scope-based filtering to the table card component.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch table-card-filters

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Sobyt483 Sobyt483 added the enhancement New feature or request label Jun 23, 2026
@Sobyt483 Sobyt483 moved this to In review in OpenMFP Development Jun 23, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (1)
projects/ngx/declarative-ui/table-card/declarative-table-card.component.spec.ts (1)

703-710: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert delegated child output forwarding, not just emitter existence.

These tests pass even if the template bindings for searchSubmit and scopeChanged are removed. Emit from the rendered mfp-table-card-search test node and assert the parent outputs receive the same payload.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@projects/ngx/declarative-ui/table-card/declarative-table-card.component.spec.ts`
around lines 703 - 710, The tests for exposes searchSubmit output and exposes
scopeChanged output only verify that the emit functions exist on the component
outputs, but do not test that the parent component actually receives and
forwards the events from the child mfp-table-card-search component. Replace
these tests to emit events from the rendered child component in the template,
subscribe to or spy on the parent component's searchSubmit and scopeChanged
outputs, verify that the parent outputs receive the same event payloads that
were emitted from the child, ensuring true integration between parent and child
component outputs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts`:
- Around line 480-508: The DeclarativeTableCardSearchStory component needs to be
updated to follow Angular component guidelines. Add `standalone: true` and
`changeDetection: ChangeDetectionStrategy.OnPush` to the component decorator
configuration. Replace the `@Input`() decorators for the config and resources
properties with signal-based inputs using the input() function instead. Import
ChangeDetectionStrategy from '`@angular/core`' and the input function from
'`@angular/core`' to enable these changes.

In
`@projects/ngx/declarative-ui/table-card/search/table-card-search.component.html`:
- Around line 6-7: The scopeValue binding in the ui5-search component should be
connected to the component's live activeScope() method instead of
searchConfig().scopeValue to ensure the scope selection persists when the search
element is recreated during collapse/re-expand cycles. Update the [scopeValue]
binding property in the ui5-search template to use activeScope() as its source,
and apply this same change to the other occurrence mentioned at lines 27-28 to
keep both search element instances synchronized with the internal scope state.

In
`@projects/ngx/declarative-ui/table-card/search/table-card-search.component.spec.ts`:
- Around line 59-60: The ESLint suppressions for
`@typescript-eslint/no-explicit-any` at lines 59, 66, 74, 83, 85, 93, 353, 366,
380, 392, and 395 are missing required explanatory comments and TODO statements
per coding guidelines. Either add a documented rationale comment above each
suppression explaining why the any cast is necessary and include a TODO
indicating when it should be removed, or refactor the test assertions to rely on
public component outputs and DOM assertions instead of white-box access to
internal state properties like searchExpanded(), searchCollapsing(),
searchControl, and searchState().
- Line 4: In the table-card-search.component.spec.ts file, remove
NO_ERRORS_SCHEMA from the import statement at the top of the file where
CUSTOM_ELEMENTS_SCHEMA and NO_ERRORS_SCHEMA are imported together from
`@angular/core`. Then, locate the TestBed configuration (typically in a beforeEach
setup function) where schemas array is defined and remove NO_ERRORS_SCHEMA from
that array, leaving only CUSTOM_ELEMENTS_SCHEMA. This aligns the test
configuration with the component's own schema configuration and respects the
strictTemplates Angular setting.

In
`@projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts`:
- Around line 55-77: The searchControl form control is initialized to an empty
string and never updated when the searchConfig signal changes, breaking the
ability for parent components to control the search value through
searchConfig.value. Update the existing effect in the constructor that currently
only syncs activeScope to also sync the searchConfig().value to the
searchControl. Use patchValue on searchControl to update its value when
searchConfig().value changes, ensuring that parent-driven value control works as
intended.

---

Nitpick comments:
In
`@projects/ngx/declarative-ui/table-card/declarative-table-card.component.spec.ts`:
- Around line 703-710: The tests for exposes searchSubmit output and exposes
scopeChanged output only verify that the emit functions exist on the component
outputs, but do not test that the parent component actually receives and
forwards the events from the child mfp-table-card-search component. Replace
these tests to emit events from the rendered child component in the template,
subscribe to or spy on the parent component's searchSubmit and scopeChanged
outputs, verify that the parent outputs receive the same event payloads that
were emitted from the child, ensuring true integration between parent and child
component outputs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8962f7b9-8b0e-4e99-9194-62157353bda2

📥 Commits

Reviewing files that changed from the base of the PR and between cd230b8 and 4c58e82.

📒 Files selected for processing (15)
  • docs/declarative-table-card.md
  • projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.html
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.scss
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.spec.ts
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts
  • projects/ngx/declarative-ui/table-card/index.ts
  • projects/ngx/declarative-ui/table-card/models/configs.ts
  • projects/ngx/declarative-ui/table-card/models/search-config.ts
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.html
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.scss
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.spec.ts
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts
  • projects/ngx/declarative-ui/table/models/index.ts
  • projects/ngx/declarative-ui/table/models/table-config.ts
💤 Files with no reviewable changes (1)
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.scss

Comment thread projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts Outdated
Comment thread projects/ngx/declarative-ui/table-card/search/table-card-search.component.html Outdated
Comment thread projects/ngx/declarative-ui/table-card/search/table-card-search.component.spec.ts Outdated
Comment thread projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts Outdated
Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
@gkrajniak

gkrajniak commented Jun 23, 2026

Copy link
Copy Markdown
Member

If we go with this implementation then:

  • search input is visible with provided searchConfig
  • alwaysOnDisplay?: boolean; is not needed the toggling of the search input look weird:
image
  • if we want to have the search input collapsible there should be a second icon inside the input after the search icon to collapse, and then just and search icon to expand that dissapears once the search input is visible

  • if the hack works, we should use it, create a follow up ticket to fix it once the fix is done on the ui5 side (otherwise this solution most likely is no go)

const ui5Select = ui5Search.shadowRoot?.querySelector('ui5-select') as HTMLElement;
ui5Select.style.maxWidth = 'none';
ui5Select.style.minWidth = 'fit-content';

const label = ui5Select.shadowRoot?.querySelector('.ui5-select-label-root') as HTMLElement;
label.style.overflow = 'visible';
label.style.textOverflow = 'clip';
  • forgetten transfer of the TableFieldDefinition to table-config.ts
  • in the stories make the filters work with the provided data, and setting the default filter/search active, and the label updated with the number
  • add a right padding to the header in case the header is there so that in the lowest resolution the search input doesn't glue to the header

Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
@Sobyt483

Copy link
Copy Markdown
Contributor Author
  • TableFieldDefinition

@gkrajniak live inside ui-definition

If we go with this implementation then:

  • search input is visible with provided searchConfig
  • alwaysOnDisplay?: boolean; is not needed the toggling of the search input look weird:
image * if we want to have the search input collapsible there should be a second icon inside the input after the search icon to collapse, and then just and search icon to expand that dissapears once the search input is visible * if the hack works, we should use it, **create a follow up ticket** to fix it once the fix is done on the ui5 side (otherwise this solution most likely is no go)
const ui5Select = ui5Search.shadowRoot?.querySelector('ui5-select') as HTMLElement;
ui5Select.style.maxWidth = 'none';
ui5Select.style.minWidth = 'fit-content';

const label = ui5Select.shadowRoot?.querySelector('.ui5-select-label-root') as HTMLElement;
label.style.overflow = 'visible';
label.style.textOverflow = 'clip';
  • forgetten transfer of the TableFieldDefinition to table-config.ts
  • in the stories make the filters work with the provided data, and setting the default filter/search active, and the label updated with the number
  • add a right padding to the header in case the header is there so that in the lowest resolution the search input doesn't glue to the header

Done

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts (1)

13-13: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Align the story wrapper with Angular component rules (standalone, OnPush, signal inputs).

DeclarativeTableCardCreateStory still uses @Input() + OnInit initialization, and the shown decorator does not include standalone: true / changeDetection: ChangeDetectionStrategy.OnPush. Please migrate to signal inputs (input()) and initialize derived state via effect() instead of ngOnInit.

Suggested fix
-import { Component, Input, OnInit } from '`@angular/core`';
+import { ChangeDetectionStrategy, Component, effect, input } from '`@angular/core`';
@@
 `@Component`({
+  standalone: true,
+  changeDetection: ChangeDetectionStrategy.OnPush,
   template: `
@@
 })
-class DeclarativeTableCardCreateStory implements OnInit {
-  `@Input`() config!: TableCardConfig;
-  `@Input`() resources: GenericResource[] = [];
+class DeclarativeTableCardCreateStory {
+  config = input.required<TableCardConfig>();
+  resources = input<GenericResource[]>([]);
@@
-  ngOnInit(): void {
-    this.searchTerm = this.config?.searchConfig?.value ?? '';
-    this.activeScope = this.config?.searchConfig?.scopeValue;
-  }
+  constructor() {
+    effect(() => {
+      const searchConfig = this.config().searchConfig;
+      this.searchTerm = searchConfig?.value ?? '';
+      this.activeScope = searchConfig?.scopeValue;
+    });
+  }
@@
-    if (!sc) return this.resources;
+    if (!sc) return this.resources();
@@
-    let result = this.resources as Pod[];
+    let result = this.resources() as Pod[];

As per coding guidelines: "**/*.{ts,tsx}: Use standalone components with standalone: true configuration", "Use signal-based APIs: input(), output(), model(), computed(), effect()", and "Use OnPush change detection on all components".

Also applies to: 168-170, 176-179

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts` at
line 13, The DeclarativeTableCardCreateStory component uses outdated Angular
patterns and needs to be modernized. Replace all `@Input`() decorators with signal
input() calls, remove the OnInit interface from the class implements clause, and
delete the ngOnInit method. Instead, use effect() to handle any derived state
initialization that was previously in ngOnInit. Update the component decorator
to include standalone: true and changeDetection: ChangeDetectionStrategy.OnPush.
Make sure to import the necessary signal functions (input, effect) from
`@angular/core` and import ChangeDetectionStrategy from `@angular/core`.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@projects/ngx/declarative-ui/table-card/search/table-card-search.component.html`:
- Around line 13-14: The `@for` loop tracking key in the scopes iteration uses
s.value, which is optional and can cause collisions when multiple items have
undefined values, leading to incorrect DOM diffing. Replace the track expression
from track s.value to track $index to use the loop index as a collision-safe
tracking key, ensuring each DOM element maintains its identity correctly even
when value properties are undefined or duplicated.

In
`@projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts`:
- Around line 69-72: The fixSelectWidth() workaround is currently applied only
once on initial render within the setTimeout block. When searchConfig().scopes
is updated or changed after the component initializes, the workaround does not
run again, causing long scope labels to truncate. Add a reactive effect or
watcher that monitors changes to searchConfig().scopes and triggers
fixSelectWidth() whenever the scopes change, ensuring the select width
adjustment is applied every time the scopes are updated.

---

Duplicate comments:
In `@projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts`:
- Line 13: The DeclarativeTableCardCreateStory component uses outdated Angular
patterns and needs to be modernized. Replace all `@Input`() decorators with signal
input() calls, remove the OnInit interface from the class implements clause, and
delete the ngOnInit method. Instead, use effect() to handle any derived state
initialization that was previously in ngOnInit. Update the component decorator
to include standalone: true and changeDetection: ChangeDetectionStrategy.OnPush.
Make sure to import the necessary signal functions (input, effect) from
`@angular/core` and import ChangeDetectionStrategy from `@angular/core`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 67fad9bf-0490-4bc5-b414-2b1238b79e66

📥 Commits

Reviewing files that changed from the base of the PR and between 4c58e82 and 84b05bb.

📒 Files selected for processing (11)
  • projects/ngx/declarative-ui/stories/declarative-table-card.stories.ts
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.html
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.scss
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts
  • projects/ngx/declarative-ui/table-card/models/configs.ts
  • projects/ngx/declarative-ui/table-card/models/search-config.ts
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.html
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.scss
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.spec.ts
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.ts
  • projects/ngx/declarative-ui/table/models/table-config.ts
💤 Files with no reviewable changes (4)
  • projects/ngx/declarative-ui/table-card/models/search-config.ts
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.html
  • projects/ngx/declarative-ui/table-card/models/configs.ts
  • projects/ngx/declarative-ui/table-card/declarative-table-card.component.ts
✅ Files skipped from review due to trivial changes (1)
  • projects/ngx/declarative-ui/table-card/search/table-card-search.component.scss
🚧 Files skipped from review as they are similar to previous changes (1)
  • projects/ngx/declarative-ui/table/models/table-config.ts

Signed-off-by: Sobyt483 <andrianingomel@gmail.com>
@gkrajniak

gkrajniak commented Jun 24, 2026

Copy link
Copy Markdown
Member

the idea behind the predefined filters is to be able to build search queries,
so the controls need to provide the means to be able to identify and field name (in the example below member) and the value (C5343390)

fq: (member:"C5343390") AND accountRole:"Project"

that's why there was initial proposal to use in the event the FieldFielterDefinition, once the event is triggered the listener know which property the value corresponds to:

it the current solution the FieldFielterDefinition mayeb that's enough to extend the Scope by a field

export interface FieldFielterDefinition/Scope {
  label: string;
  property?: string | string[];
  value: string;
}

once having it the search query can be better produce: fq: property=value&qtext=value

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

feat: configurable "My Contributions" tab in generic-list-view via ContentConfiguration

2 participants