Repository navigation
Merge dev into main - #3
Merged
Merged
Conversation
…@angular/material@19
Updates non-standalone Directives, Component and Pipes to 'standalone:false' and removes 'standalone:true' from those who are standalone
Updates Angular Material to v19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
reactome/WebsiteAngular took ngx-reactome-cytoscape-style (as reactome-cytoscape-style) in February and ngx-reactome-style in August, and developed both there since -- 22 files and some 4000 lines in the cytoscape style alone. This makes this repository their home again: their sources as they are in WebsiteAngular, under the names published here, at 0.1.0 for the change. The cytoscape style no longer needs Angular; it needs chroma-js, and cytoscape 3.30 or later, which carries its own types (so @types/cytoscape goes). The old types/cytoscape/index.d.ts was entirely commented out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rite exports Found bringing it in. It worked in WebsiteAngular only because that app installs everything itself; installed from npm it would not have: - it imports lodash in three files but declared lodash.memoize, which it never imports, and imports cytoscape-layers without declaring it; - it imported rxjs's internal util/isPromise, no part of rxjs's API (and rxjs undeclared): a Promise check of its own now; - its package.json carried a hand-written `exports` naming esm2022/reactome-cytoscape-style.mjs, a file no build makes, so two of the published conditions pointed at nothing. ng-packagr writes the right ones; - drawer/types.ts used cytoscape's global namespace without importing it, which only compiled when another file had pulled cytoscape in (it broke the specs' compile): an explicit type import now. cytoscape-layers 3, which it is written against; lodash declared. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It did not build on dev: TypeScript 5.6+ rejects conditions that are always true, and these three were real faults -- - `[...map.get(x)!] || [fallback]`: an array is always truthy, so the fallback never applied, and a missing key threw in the spread instead; - `graph.nodes.map(...) || []` (twice): the `|| []` could never apply. Also: - DIAGRAM_CONFIG_TOKEN was declared at the bottom of the file and named in the constructor's @Inject above it: the decorator read it before it existed. It is declared above the service now. - The cytoscape style exports `Types` by name (no default export), so the diagram imports it that way. - vectorious's package `exports` lists its module before its types, so bundler resolution found no declarations: mapped to them in tsconfig. Its five specs are the generated "should create" kind and fail for want of providers (DIAGRAM_CONFIG_TOKEN, ActivatedRoute) and a standalone component declared in a module; they did not run on dev either, since the library did not build. Left for the test-runner change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
src/custom-theme.scss was removed in 5bf6c74 but angular.json still listed it, so `ng build` of the demo app failed on dev. Its three specs pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, docs From an adversarial review of this branch: - ngx-reactome-diagram's package.json still said Angular 17, cytoscape- layers 2 and lodash.memoize, never named the cytoscape style it needs, and left out six packages its bundle imports; at an unchanged 0.0.34 a new tarball also reused the old one's name. It now declares what the build imports, at 0.1.0. Checked: both packed libraries install into an Angular 21 project with no conflict and every peer resolved. - The cytoscape style removed all of a node's inline style when a molecule's structure could not be shown, the zoom's opacity with it: a trivial molecule fell back to opacity 0 until the next zoom, which a diagram that cannot be zoomed never has. Only the four background properties the structure set are removed now. - A structure still loading is recognised as a thenable, not with `instanceof Promise`, which a native promise fails where zone.js has replaced the global. - The diagram set --opacity, which the style renamed --compartment-opacity: its compartments had silently gone lighter. - RNADrug was missing from the diagram's node types: such nodes drew unstyled. - The style's README imported a `Reactome` export that does not exist, from a package name that is not this one, and told readers to set properties on a read-only computed style. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The load was awaited with no rejection handler: a failed load left the container spinning. It is treated as a structure that could not be found. (Flagged by WebsiteAngular's no-floating-promises lint.) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…raph The library's source is again identical to WebsiteAngular's, where each fix was made with a test that failed first: caches keyed on what a drawing depends on rather than the node id, settings turned off and CSS zeros kept, palette variables parsed without throwing, the structure layers' opacity, visibility and failed-structure handling, drug unselect, Style.update on the graph given, and exported asset files. The diagram finds the zoom handlers of the graph it is changing with interactivityOf(cy), not through the Style, which holds only the last graph it was bound to. The two new specs are vitest specs, like the one already here; they run once the workspace moves from Karma to vitest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in WebsiteAngular's style libraries, on Angular 21
…ecs real Karma could not run the style library's specs, which are written for Vitest, and the diagram's were generated boilerplate that failed: two declared standalone components, one fetched a list of diagrams and asserted nothing. Builders move from @angular-devkit/build-angular to @angular/build (429 packages fewer), tests to @angular/build:unit-test on jsdom. A typeRoots left inside angularCompilerOptions, which the compiler merges into the TypeScript options, hid vitest's types; it is gone. The diagram's specs now test behaviour, and found three faults, each shown failing first: - reading the state from the address told no subscriber, and told them when nothing had changed: the change check was inverted; - ids in the address stayed strings: the number test matched the letter d; - a configuration without diagramUrl replaced the default with undefined. DiagramIteratorComponent is removed: unexported, unused, declared in no module, and its template had never compiled. ngx-reactome-style is Sass only, so it has no test target. `npm run build` builds in dependency order; `npm test` runs every project. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ESLint with WebsiteAngular's rules (typescript-eslint, angular-eslint): rules that catch bugs, or that the code is clean of, are errors; the rest, mostly `any` flowing through the code, are warnings held at lint-baseline.json by scripts/check-lint.mjs, which fails when any rule's count rises. `npm run check:lint` runs it. The Angular migrations WebsiteAngular has made (inject, signals, output()) are counted warnings here until this code makes them. The 14 errors are fixed: a floating promise, unused variables, imports and a never-called function, optional chains, and two deprecated APIs. The diagram library carried an app's leftovers -- a main.ts importing an app.module that no longer exists, index.html, favicon, styles and a theme -- none used by the build; they are removed. @angular/animations was used only by the deprecated provider and is removed with it. tsconfig adds noUnusedLocals, noUnusedParameters, noUncheckedSideEffectImports and isolatedModules, and Angular's typeCheckHostBindings, strictStandalone and extended diagnostics as errors; their findings, five unused declarations, are fixed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nothing checked this repository before: a library could stop building, or its tests stop running, and nobody would hear of it until a consumer tried to install it. The workflow builds the libraries in dependency order, runs the lint gate and every project's tests, builds the demo app, and packs each library as it would be published. Node comes from .nvmrc, as in WebsiteAngular. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mers Review of this PR found that the change-check fix broke set(): the state service only told its subscribers of its own changes through the address, by way of the inverted check reading an unchanged value as a change. With the check corrected, a click in the diagram set the selection and nothing heard -- so other copies of the entity stayed unselected and the view no longer fitted to them. set() now emits once the address has the value, as before; with the router blocked (the curator tool's case) it still emits nothing. Tested both ways, the first shown failing first. Debug logging on every diagram load, event and state change is removed from the published library, and no-console is an error so it stays gone; warnings, errors and failed data assertions remain. A configuration without diagramUrl now loads from reactome.org rather than the dev server: until the previous commit that default was unreachable, and a published library should load the public release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The project service gave spec files the nearest tsconfig.json, which does not load Vitest's globals, so expect() and vi were `any`: 49 of the baseline's warnings were that, and each new test added more -- the previous commit's two tests broke the gate. Specs now use the spec configs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test with Vitest, lint, stricter compiler, and CI
main and dev were started separately and share no history: main holds only GitHub's initial commit, the CC0 licence and a one-line README heading. This joins them so dev can merge into main, and dev_curator, which branches from dev, can follow. The licence is kept; the README is dev's, which describes the libraries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings
devintomain, after whichdevis deleted.What it brings:
Both were reviewed adversarially before they merged.
Why there's a merge commit:
mainanddevshare no history.mainholds only GitHub's initial commit (the CC0LICENSEand a one-line README). The first commit here joins the two histories.dev, the only addition isLICENSE.dev's.Once
mainhasdev's history,dev_curator, which branches fromdev, can merge intomainnormally.🤖 Generated with Claude Code