Skip to content

Gallery 3 catalog service#58

Open
jgindin wants to merge 5 commits into
mainfrom
gallery-3-catalog-service
Open

Gallery 3 catalog service#58
jgindin wants to merge 5 commits into
mainfrom
gallery-3-catalog-service

Conversation

@jgindin

@jgindin jgindin commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Description

implement gallery catalog state service and visual presets

Adds GalleryCatalogService to maintain component selection and cache parsed schema properties. Groups components into sorted categories and maps selection to usage JSON payloads using mock presets.

This is the 3rd in a series of PRs which culminates in a dynamically generated page to show the components of the current catalog:
image

Pre-launch Checklist

  • I signed the [CLA].
  • I read the [Contributors Guide].
  • I read the [Style Guide].
  • I have added updates to the [CHANGELOG].
  • I updated/added relevant documentation.
  • My code changes (if any) have tests.
  • If my branch is on fork, I have verified that scripts/e2e_test.sh passes.

jgindin added 3 commits June 19, 2026 16:17
Enables correct rendering of material icons inside the sandboxed preview
iframe running the ng-basic-catalog app.
* Use `QueryParser.` instead of `this.` when calling static functions
* Ensure returned config.json doesn't have "JSON hijacking" prefixes
Remove the showComponentsGallery signal to expose
the components gallery link in the primary navigation sidebar.
Adds test coverage checking link visibility using shell harnesses.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces a components gallery feature, including a CatalogSchemaResolver to parse component schemas, a GalleryCatalog service to manage gallery state and presets, and default presets for various components. It also enables the Components Gallery link by default in the sidebar, handles JSON safety prefixes in StartupResolution, and updates QueryParser to use static checks. The review feedback highlights potential prototype pollution vulnerabilities in CatalogSchemaResolver when using the in operator, recommending hasOwnProperty instead, and points out a bug in GalleryCatalog where a required id property could overwrite the root component's default "target" ID.

Comment thread shell/src/app/gallery/schema/catalog-schema-resolver.ts Outdated
Comment thread shell/src/app/gallery/schema/catalog-schema-resolver.ts Outdated
Comment thread shell/src/app/gallery/services/gallery-catalog.ts Outdated
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

⚡ A2UI Composer PR Preview

Your automated preview is successfully live:
👉 Launch PR Preview

Note: This environment will be wiped automatically when the PR is merged or closed.

jgindin added 2 commits June 19, 2026 18:10
Adds CatalogSchemaResolver to recursively resolve allOf arrays and
internal $defs schema references within catalog component definitions.
Maps properties into clean type objects for tabular representation.
Adds GalleryCatalogService to maintain component selection and cache
parsed schema properties. Groups components into sorted categories
and maps selection to usage JSON payloads using mock presets.
@jgindin jgindin force-pushed the gallery-3-catalog-service branch from 9d1ef96 to a1cfaf7 Compare June 19, 2026 22:19
@jgindin jgindin requested a review from sugoi-yuzuru June 19, 2026 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant