Skip to content

#6731 Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol - #8580

Merged
AlexeyGirin merged 16 commits into
masterfrom
copilot/fix-ambiguous-phosphates-symbol
Nov 19, 2025
Merged

AlexeyGirin merged 16 commits into
masterfrom
copilot/fix-ambiguous-phosphates-symbol

Conversation

Copilot AI commented Nov 19, 2025 •

Copy link
Copy Markdown
Contributor

Ambiguous phosphates (alternatives and mixed) were displaying as % in sequence mode instead of the expected @ symbol used for other ambiguous structural monomers.

Changes

  • Updated AmbiguousSequenceItemRenderer.symbolToDisplay to include KetMonomerClass.Phosphate alongside existing CHEM and Sugar checks
// Before: only CHEM and Sugar returned '@'
if (
  this.node.monomer instanceof AmbiguousMonomer &&
  (this.node.monomer.monomerClass === KetMonomerClass.CHEM ||
    this.node.monomer.monomerClass === KetMonomerClass.Sugar)
) {
  return '@';
}

// After: Phosphate now included
if (
  this.node.monomer instanceof AmbiguousMonomer &&
  (this.node.monomer.monomerClass === KetMonomerClass.CHEM ||
    this.node.monomer.monomerClass === KetMonomerClass.Sugar ||
    this.node.monomer.monomerClass === KetMonomerClass.Phosphate)
) {
  return '@';
}

This aligns phosphate display behavior with other structural monomers in sequence view.

Original prompt

This section details on the original issue you should resolve

<issue_title>Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol</issue_title>
<issue_description>Steps to Reproduce

  1. Go to Macro - Sequence mode (clean canvas)
  2. Load from KET: Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol.zip

Actual behavior
Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol
Image

Expected behavior
Ambiguous phosphates (alternatives and mixed) in sequence shown as @ symbol
Image

Versions

  • Ketcher Version 3.2.0-rc.2 Build at 2025-03-17; 17:37:12
  • Indigo Version 1.30.0-rc.1.0-g9bdedaba9-wasm32-wasm-clang-19.0.0
  • Chrome Version 134.0.6998.89 (Official Build) (64-bit)
  • Win10

Issue found while testing: #5942</issue_description>

Comments on the Issue (you are @copilot in this section)

@SefaBilgii This issue is reproducible Image

Ketcher Version: 3.7.0-rc.1
OS: MacOs Sequoia Version 15.5
Browser : Chrome Version 138.0.7204.169
Indigo version 1.35.0-rc.1.0</comment_new>


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix ambiguous phosphates symbol from % to @ in sequence Fix ambiguous phosphates displaying as % instead of @ in sequence mode Nov 19, 2025
Copilot AI requested a review from AlexeyGirin November 19, 2025 06:05
@AlexeyGirin
AlexeyGirin marked this pull request as ready for review November 19, 2025 06:18
@AlexeyGirin AlexeyGirin changed the title Fix ambiguous phosphates displaying as % instead of @ in sequence mode #6731 Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol Nov 19, 2025
@AlexeyGirin
AlexeyGirin requested review from rrodionov91 and removed request for AlexeyGirin and NataliaLoginova November 19, 2025 06:19
Copilot AI and others added 2 commits November 19, 2025 09:58
* Initial plan

* Fix ghost image styling to match UX design

- Changed GhostMonomer and GhostRnaPreset components to use white fill with stroke instead of solid gray fill
- Updated all monomer shapes (sugar, phosphate, base) to have white background with #CAD3DD border
- Added strokeWidth of 2px to maintain proper visibility
- All tests pass and linting is clean

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Address code review feedback - use numeric strokeWidth

Changed strokeWidth from string "2" to numeric 2 for better SVG attribute handling

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Backmerge: #8000 – Monomer Wizard allows creation of monomer with Functional Group (#8279)

* #8294 - Do allow to collapse s-groups (superatom type) without name (#8297)

* Initial plan

* Disable Contract Abbreviation for s-groups without name

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Use optional chaining to safely check name property

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify empty name check using optional chaining

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7936 - Add tooltips to some attachment points in the monomer creation wizard

* Autotests: #8268 autotests continuation of attachment points editing in the monomer creation wizard (#8321)

* first

* 2

* 3

* 10

* 11

* 12

* 13

* 14

* 1111

* Final

* f2

* Autotests: #8239 - autotests tests for improving snake layout logic to include small molecules (#8320)

* - add tests;
- add test files;
- add screenshots

* - add tests;
- add test files;
- add screenshots

* - add tests;
- add screenshots

* Backmerge: #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module (#8271) (#8324)

* #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module (#8271)

* #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module

* Update autotests

* Update more autotests

* Skip failing tests

(cherry picked from commit b060f735c154dbb2b8c292f78c8409e6199000a7)

* fix

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #7932 - Add warning messages to the monomer creation wizard in case of unusual leaving group atoms (#8038)

* Autotests: 8322 autotests axolabs format support (#8329)

* first

* Final

* Backmerge: #7979 – Pressing right Command key on Mac causes errors in DevTool Console (left Command works fine) (#8278)

* Backmerge: #8005 – Changing name for attachment points works wrong (#8282)

* #7932 - Add warning messages to the monomer creation wizard in case of unusual leaving group atoms  (#8343)

* fix: fix buttons logic

* fix: fix primary button logic

* #8296 - Make Create Monomer tool disableable (#8346) (#8348)

- made create-monomer functionality disableable using buttons config
- bumped ketcher to 3.9.0-rc.3

(cherry picked from commit aff299e32b9aee2dd502ca82ad4ab70e607aac9b)

* Refactor: Replace logical OR (||) with nullish coalescing (??) operator for safer default values (#8148)

* Initial plan

* Refactor: Replace logical OR (||) with nullish coalescing (??) operator

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8214 - Refactor: Expected the Promise rejection reason to be an Error (part 1) (#8218)

* Initial plan

* Fix Promise rejection to use Error object in FileInputForm

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8215 - Refactor: Expected the Promise rejection reason to be an Error (part 2) (#8219)

* Initial plan

* Fix Promise rejections to use Error objects in remoteStructService

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8216 - Refactor: Expected the Promise rejection reason to be an Error (part 3) (#8220)

* Initial plan

* Refactor: Wrap FileReader error event in Error object for Promise rejection

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7997 - For non-potential-AAs the related context menu option (Mark as connection point,) should be disabled (#8349)

* fix: menu option mark as connection point disabled

* test: fix test

* fix: prevent modification list overflow in monomer preview tooltip (#8350)

* #8328 - Modification drop-down list is not ordered as required (Natural Amino Acid first, others alphabetically) (#8342)

* fix: fix Modification drop-down list

* fix: fix add-modification-type option

* fix: fix error message

* fix: add limit on the modififcations fields

* #8334 -Preview: Ketcher crashes completely when switching from Wizard mode to Macro mode

* Autotests: 8345 autotests sdf files for librarymonomer information (#8347)

* getTopBondByAttributes removal

* mapTwoAtoms update

* getBottomBondByAttributes removal

* fix

* Some functions removed

* Removing getBottomAtomByAttributes

* removing getFirstAtomCoordinatesByAttributes

* arrow and plus corrections

* removing clickOnPlus

* f

* f2

* f3

* f4

* Some clean up

* fix

* а2

* f3

* f4

* some clean up

* scu2

* f5

* f6

* f7

* draft

* draft2

* Final

* fix

* f2

* f3

* f4

* f5

* f6

* f7

* f8

* f9

* f10

* f11

* f12

* f13

* f14

* f15

* f16

* f17

* f18

* f19

* f20

* f21

* f22

* f23

* f24

* f25

* f26

* f27

* f28

* Autotests: 8361 autotests some refactoring (#8362)

* first

* f2

* f3

* f4

* f5

* f6

* f7

* f8

* f9

* f10

* #7928 - Allow for setting of HELM alias in the monomer creation wizard (#8360)

* - added helm alias field to monomer wizard

* - added helm alias field validation

* - removed helm alias field from chems

* Autotests: #8341 - autotests tests for add ability to update monomers library api in sdf format (#8372)

* - add tests;
- add screenshots

* - add tests;
- add screenshots

* - add tests;
- add screenshots

* - update tests;
- add test files;
- delete unused 'testData.ts'

* Autotests: #7960 - autotests get rid of doubleclickonbond function and replace it with getbondlocatordblclick (#8370)

* The function doubleClickOnBond is replaced with getBondLocator.dblclick(part 1)

* The function doubleClickOnBond is replaced with getBondLocator.dblclick(part 2)
The function declaration of doubleClickOnBond is removed

* #8377 - Add data-topology and data-reacting-center attributes for bonds (#8378)

* Initial plan

* Add data-topology and data-reacting-center attributes for bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Improve error handling in getBondFromMoleculeStruct with descriptive comment

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Improve code quality based on review feedback - simplify null checks and enhance comments

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

* f2

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Autotests: #7964 - add LabelEditDialog page object and update atom editing tests (#8375)

* Autotests: #7964 - add LabelEditDialog page object and update atom editing tests (#7964)

- Added new PO `LabelEditDialog.ts` for label editing modal (opened via long left click)
- Updated tests:
  - `atom-properties.spec.ts`
  - `Template-manipulations.spec.ts`
  - `right-click.spec.ts`
- Replaced direct `getByLabel` usage with `fillLabel` calls:
  - via new `LabelEditDialog` for long-click cases
  - via existing `AtomPropertiesDialog` for double-click or context-menu cases

* autotests(#7964): add longClickOnAtom and setLabel, refactor label editing tests

- Implemented longClickOnAtom helper in index.ts
- Added setLabel method in LabelEditDialog
- Updated atom-properties.spec.ts and view-only-mode.spec.ts to reuse it
- Used setOptions instead of fillLabel+apply in template-manipulations.spec.ts (per review)

* Removed no used import pressButton from is-query-structure-selected.spec.ts, because of git push failure

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* Autotests: 8376 autotests some refactoring (#8381)

* First

* f2

* f3

* f4

* f5

* f6

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* f7

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module (#8388)

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module

* fixes

* f2

* f3

---------

Co-authored-by: Alexey Girin <agirin@mail.ru>

* #8281 - Adjust subscription to library update event of Ketcher API  (#8382)

* #8212 - Refactor: Extract this nested ternary operation into an independent statement (part 4) (#8225)

* Initial plan

* Refactor nested ternary in Analyse.jsx into separate method

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8211 - Refactor: Extract this nested ternary operation into an independent statement (part 3) (#8224)

* Initial plan

* Refactor: Extract nested ternary operation in MainRow.jsx into renderCell function

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8210 - Refactor: Extract this nested ternary operation into an independent statement (part 2) (#8223)

* Initial plan

* Refactor: Extract nested ternary operations into independent functions

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8209 - Refactor: Extract this nested ternary operation into an independent statement (part 1) (#8222)

* Initial plan

* Refactor nested ternary operations into if-else statements

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7905 – Selection logic change and toolbar icons enabling for the monomer creation wizard (#8371)

* #7905 – Change selection logic

* #7905 – Enable Indigo functions

* #7905 – Support undo/redo for assigning attachment point via leaving atom and removing as assigned attachment point

* #7905 – Support undo/redo for reassign attachment point operation

* #7905 – Support undo/redo for reassign leaving atom operation

* #7905 – Support undo/redo for assign attachment atom operation

* #7905 – Fix build failure

* #7905 – Do not apply toggle explicit hydrogens for leaving group atoms in monomer creation wizard

* #7905 – Enable layout and clenaup tools, add label to HELM alias input

* #7905 – Revert initial notification change

* #7905 – Update screenshots

* #7905 – Update screenshots

* #7905 – Remove outdated test cases

* #5520 - Percentages for mixed bases ain't sorted from biggest to smallest in tooltip (#8288)

* Initial plan

* Fix sorting of mixed base percentages in tooltip

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode (#8336)

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode

* #8366 – Preview: Wrong name in context menu - “Circular layout” should be “Create cyclic structure”

* #8369 – Preview: Circular layout option is active even when structure does not meet minimal closure requirements

* #8368 - Preview: Context menu incorrectly allows “Circular layout” even when selection criteria are not met

* #8367 - Preview: Undo does not revert Circular layout - structure disappears, ghost bonds remain and cause console errors 

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>

* #4188 - Choosing wedged/hashed bond direction doesn't work from right-clicking context menu (#8233)

* Initial plan

* Fix bond direction change in context menu for stereo bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify bond type check logic

* Fix return statement formatting in useBondTypeChange

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #8351 Autotests for Ketcher 3.9.0 bugs (#8391)

* First draft

* Autotests: 8376 autotests some refactoring (#8381)

* First

* f2

* f3

* f4

* f5

* f6

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* f7

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module (#8388)

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module

* fixes

* f2

* f3

---------

Co-authored-by: Alexey Girin <agirin@mail.ru>

* draft

* 2

* 3

* 4

* 5

* 6

* 7

* #8281 - Adjust subscription to library update event of Ketcher API  (#8382)

* #8212 - Refactor: Extract this nested ternary operation into an independent statement (part 4) (#8225)

* Initial plan

* Refactor nested ternary in Analyse.jsx into separate method

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8211 - Refactor: Extract this nested ternary operation into an independent statement (part 3) (#8224)

* Initial plan

* Refactor: Extract nested ternary operation in MainRow.jsx into renderCell function

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8210 - Refactor: Extract this nested ternary operation into an independent statement (part 2) (#8223)

* Initial plan

* Refactor: Extract nested ternary operations into independent functions

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8209 - Refactor: Extract this nested ternary operation into an independent statement (part 1) (#8222)

* Initial plan

* Refactor nested ternary operations into if-else statements

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7905 – Selection logic change and toolbar icons enabling for the monomer creation wizard (#8371)

* #7905 – Change selection logic

* #7905 – Enable Indigo functions

* #7905 – Support undo/redo for assigning attachment point via leaving atom and removing as assigned attachment point

* #7905 – Support undo/redo for reassign attachment point operation

* #7905 – Support undo/redo for reassign leaving atom operation

* #7905 – Support undo/redo for assign attachment atom operation

* #7905 – Fix build failure

* #7905 – Do not apply toggle explicit hydrogens for leaving group atoms in monomer creation wizard

* #7905 – Enable layout and clenaup tools, add label to HELM alias input

* #7905 – Revert initial notification change

* #7905 – Update screenshots

* #7905 – Update screenshots

* #7905 – Remove outdated test cases

* #5520 - Percentages for mixed bases ain't sorted from biggest to smallest in tooltip (#8288)

* Initial plan

* Fix sorting of mixed base percentages in tooltip

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode (#8336)

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode

* #8366 – Preview: Wrong name in context menu - “Circular layout” should be “Create cyclic structure”

* #8369 – Preview: Circular layout option is active even when structure does not meet minimal closure requirements

* #8368 - Preview: Context menu incorrectly allows “Circular layout” even when selection criteria are not met

* #8367 - Preview: Undo does not revert Circular layout - structure disappears, ghost bonds remain and cause console errors 

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>

* #4188 - Choosing wedged/hashed bond direction doesn't work from right-clicking context menu (#8233)

* Initial plan

* Fix bond direction change in context menu for stereo bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify bond type check logic

* Fix return statement formatting in useBondTypeChange

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* fixes

* f2

* f3

* f4

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>
Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Roman Rodionov <roman_rodionov@epam.com>

* Refactor: #8153 - Deprecated APIs should not be used (part 2)  (#8154)

* Initial plan

* Replace deprecated APIs with modern alternatives

- Replace all substr() calls with slice() in v3000.js
- Replace readAsBinaryString() with readAsArrayBuffer() in fileOpener.js
- Replace document.execCommand() and document.queryCommandSupported() with Clipboard API checks in cliparea.jsx

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* f1

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Autotests: #7958 - autotests get rid of clickonbond function and replace it with getbondlocatorclick (#8409)

* The function clickOnBond is replaced with getBondLocator.click()
The function declaration of clickOnBond is removed

* The BondType and getBondByIndex are removed from import

* #7148 - Number of selected elements in context menu is wrong for sense/antisense chain (#8317)

* Initial plan

* Fix selection count for sense/antisense chains

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix ESLint error in test

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Address code review: Use proper type assertion instead of any

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7735 - System shows inner circles of aromatized benzene rings from collapsed monomers on Molecules canvas (#8197)

* Initial plan

* Fix aromatic circle rendering for collapsed monomers

Added check in ReLoop.show() to skip rendering aromatic circles when all atoms in the loop belong to a contracted MonomerMicromolecule. This prevents internal benzene ring circles from showing when collapsed monomers are displayed in Molecules mode.

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

* f2

* #7500 - Update the monomer preview   (#8134)

* feat: update the monomer preview

* fix: fix code after review

* test:update snapshots

* test:update snapshots

* test:update spanshots

* test:update spanshots

* test:update spanshots

* test: update snapshots

* Refactor: #8130 - Fix for many sonar issues (#8131)

* Fix accessibility and spacing issues from Sonar reports

* fixes

* f2

* f3

* f4

* Fix accessibility and spacing issues from Sonar reports

* f5

* f6

* f7

* f8

* f9

* f10

* f11

* Refactor: #8093 - Unexpected unknown property "user-focus"  (#8094)

* Initial plan

* Remove invalid CSS property 'user-focus' from RulerArea.module.less

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Apply prettier formatting to RulerArea.module.less

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8103 - Use 'String#startsWith' method instead (#8119)

* Initial plan

* Refactor: #8103 - Use 'String#startsWith' method instead

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: Add readonly modifiers to fields only assigned in constructors (part 2) (#8146)

* Initial plan

* Add readonly modifiers to fields that are only assigned in constructors

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8151 - Type constituents of unions and intersections should not be redundant (#8152)

* Initial plan

* Fix redundant types in unions and intersections

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8160 - Unnecessary constructors should be removed (#8161)

* Initial plan

* Refactor: Remove unnecessary empty constructors

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8162 - Make this public static property readonly (#8163)

* Initial plan

* Add readonly qualifier to public static viewName properties

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8164 - Duplicated font names should be removed  (#8165)

* Initial plan

* Remove duplicated font names in globals.css

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8156 - Promises should not be misused (#8170)

* Initial plan

* Fix promise misuse in fullscreen APIs and async event handler

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Refactor: #8099 - Remove this redundant type alias and replace its occurrences with "any" (#8171)

* Initial plan

* Remove redundant type aliases and replace with underlying types

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #4467 - Macro: Ket label should be renamed to Ket Format (#8191)

* Initial plan

* Rename Ket label to Ket Format in macromolecule editor

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fixes

* f2

* f3

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #7746 - System replace few spaces in monomer name to one space on monomer preview (#8192)

* Initial plan

* Fix monomer name spacing in preview tooltip by adding white-space: pre-wrap

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Also fix spacing in AmbiguousMonomerPreview ContentLine

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7421 - "Ghost image" of CHEM is white (different from "ghost image" of other monomer types) (#8196)

* Initial plan

* Fix CHEM ghost image color issue

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8067 - Do not save added or updated monomer in local storage (#8135) (#8140)

(cherry picked from commit 3474573d9e92d3a64ed305161e126b99f2a0eb76)

* #7740 - System should not allow to fill Symbol and Name fields if Type is not selected on Monomer creation wizard (#8194)

* Initial plan

* Disable Symbol and Name fields when Type is not selected

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Add test to verify Symbol and Name fields are disabled when Type is not selected

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #3742 - Macro: Wrong tooltip for "minimize window" button (shows "expand window") (#8190)

* Initial plan

* Fix: Update tooltip to show 'minimize window' when expanded

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

* f2

* f3

* f4

* f5

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Refactor: #8158 - Replace this union type with a type alias (#8159)

* Initial plan

* Refactor: Replace union types with type aliases

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix: Remove unused imports after type alias refactoring

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix: Remove unused BackBoneSequenceNode import

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Refactor: #8168 - Selectors should not be duplicated  (#8169)

* Initial plan

* Fix duplicate CSS/LESS selectors in globals.css and Accordion.module.less

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* feat(PO): add ReactionAutoMappingDialog page object (#8244)

- Added `ReactionAutoMappingDialog.ts` PO for reaction auto-mapping dialog.
- Introduced `constants.ts` with `AutoMapModeOption` enum.
- Removed `applyAutoMapMode` function from `index.ts`.
- Updated tests (`image-files.spec.ts`, `reaction-am-tool-veryfing-button.spec.ts`) to use PO instead of old function.
- Updated screenshots accordingly.

* Autotests: #7996 - autotests tests for expanding the snap functionality to monomer groups inside of a structure (#8238)

* - add test;
- add test file;
- add screenshots

* - add tests;
- add screenshots

* - add tests;
- add test file;
- add screenshots

* - add tests for API switching from molecules mode to macromolecules;
- add screenshots

* - delete exeptions

* - add test;
- add screenshot

* #7373 - "Grabbing hand" mouse cursor is absent on grabbing monomers from the library (#8232)

* Initial plan

* Add grabbing cursor when dragging monomers from library

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #5570 - PNG and SVG exported images should be identical to how the canvas looks like in case of Chiral label  (#8266)

* fix: send render-stereo-style per settings; align PNG/SVG with canvas

* fix: replace nested ternary with if/else in getSerilizedServerOptions (renderStereoStyle) for readability

* Backmerge: #8040 – R2 attachment point is missing for vinU monomer (#8272)

* Backmerge: #7978 – Create monomer process changes atom of not related part of the molecule (#8277)

* Backmerge: #8002 – No validation message shown for minimal monomer structure in Monomer Wizard (#8280)

* Backmerge: #8070 – Existing Presets in the library disappear after adding new preset via API (#8275)

* The function moveOnBond is replaced with getBondLocator.hover() (#8298)

The functions declaration of moveOnBond and waitForElementInCanvas are removed

* #7984 autotests allow for modification of the attachment points in the monomer creation wizard part 2 (#8252)

* First draft

* f22

* f3

* f4

* * Initial plan

* Disable Symbol and Name fields when Type is not selected

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Add test to verify Symbol and Name fields are disabled when Type is not selected

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #3742 - Macro: Wrong tooltip for "minimize window" button (shows "expand window") (#8190)

* Initial plan

* Fix: Update tooltip to show 'minimize window' when expanded

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

* f2

* f3

* f4

* f5

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Refactor: #8158 - Replace this union type with a type alias (#8159)

* Initial plan

* Refactor: Replace union types with type aliases

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix: Remove unused imports after type alias refactoring

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix: Remove unused BackBoneSequenceNode import

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Refactor: #8168 - Selectors should not be duplicated  (#8169)

* Initial plan

* Fix duplicate CSS/LESS selectors in globals.css and Accordion.module.less

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* feat(PO): add ReactionAutoMappingDialog page object (#8244)

- Added `ReactionAutoMappingDialog.ts` PO for reaction auto-mapping dialog.
- Introduced `constants.ts` with `AutoMapModeOption` enum.
- Removed `applyAutoMapMode` function from `index.ts`.
- Updated tests (`image-files.spec.ts`, `reaction-am-tool-veryfing-button.spec.ts`) to use PO instead of old function.
- Updated screenshots accordingly.

* Autotests: #7996 - autotests tests for expanding the snap functionality to monomer groups inside of a structure (#8238)

* - add test;
- add test file;
- add screenshots

* - add tests;
- add screenshots

* - add tests;
- add test file;
- add screenshots

* - add tests for API switching from molecules mode to macromolecules;
- add screenshots

* - delete exeptions

* - add test;
- add screenshot

* #7373 - "Grabbing hand" mouse cursor is absent on grabbing monomers from the library (#8232)

* Initial plan

* Add grabbing cursor when dragging monomers from library

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Ivan Maslov <165396466+ivanmaslow@users.noreply.github.com>
Co-authored-by: Mikhail Zhirnov <62464241+Zhirnoff@users.noreply.github.com>

* Backmerge: #8000 – Monomer Wizard allows creation of monomer with Functional Group (#8279)

* #8294 - Do allow to collapse s-groups (superatom type) without name (#8297)

* Initial plan

* Disable Contract Abbreviation for s-groups without name

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Use optional chaining to safely check name property

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify empty name check using optional chaining

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7936 - Add tooltips to some attachment points in the monomer creation wizard

* Autotests: #8268 autotests continuation of attachment points editing in the monomer creation wizard (#8321)

* first

* 2

* 3

* 10

* 11

* 12

* 13

* 14

* 1111

* Final

* f2

* Autotests: #8239 - autotests tests for improving snake layout logic to include small molecules (#8320)

* - add tests;
- add test files;
- add screenshots

* - add tests;
- add test files;
- add screenshots

* - add tests;
- add screenshots

* Backmerge: #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module (#8271) (#8324)

* #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module (#8271)

* #8270 – Migrate to Indigo v1.37.0-rc.2 in-browser module

* Update autotests

* Update more autotests

* Skip failing tests

(cherry picked from commit b060f735c154dbb2b8c292f78c8409e6199000a7)

* fix

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #7932 - Add warning messages to the monomer creation wizard in case of unusual leaving group atoms (#8038)

* Autotests: 8322 autotests axolabs format support (#8329)

* first

* Final

* Backmerge: #7979 – Pressing right Command key on Mac causes errors in DevTool Console (left Command works fine) (#8278)

* Backmerge: #8005 – Changing name for attachment points works wrong (#8282)

* #7932 - Add warning messages to the monomer creation wizard in case of unusual leaving group atoms  (#8343)

* fix: fix buttons logic

* fix: fix primary button logic

* #8296 - Make Create Monomer tool disableable (#8346) (#8348)

- made create-monomer functionality disableable using buttons config
- bumped ketcher to 3.9.0-rc.3

(cherry picked from commit aff299e32b9aee2dd502ca82ad4ab70e607aac9b)

* Refactor: Replace logical OR (||) with nullish coalescing (??) operator for safer default values (#8148)

* Initial plan

* Refactor: Replace logical OR (||) with nullish coalescing (??) operator

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8214 - Refactor: Expected the Promise rejection reason to be an Error (part 1) (#8218)

* Initial plan

* Fix Promise rejection to use Error object in FileInputForm

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8215 - Refactor: Expected the Promise rejection reason to be an Error (part 2) (#8219)

* Initial plan

* Fix Promise rejections to use Error objects in remoteStructService

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8216 - Refactor: Expected the Promise rejection reason to be an Error (part 3) (#8220)

* Initial plan

* Refactor: Wrap FileReader error event in Error object for Promise rejection

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7997 - For non-potential-AAs the related context menu option (Mark as connection point,) should be disabled (#8349)

* fix: menu option mark as connection point disabled

* test: fix test

* fix: prevent modification list overflow in monomer preview tooltip (#8350)

* #8328 - Modification drop-down list is not ordered as required (Natural Amino Acid first, others alphabetically) (#8342)

* fix: fix Modification drop-down list

* fix: fix add-modification-type option

* fix: fix error message

* fix: add limit on the modififcations fields

* #8334 -Preview: Ketcher crashes completely when switching from Wizard mode to Macro mode

* Autotests: 8345 autotests sdf files for librarymonomer information (#8347)

* getTopBondByAttributes removal

* mapTwoAtoms update

* getBottomBondByAttributes removal

* fix

* Some functions removed

* Removing getBottomAtomByAttributes

* removing getFirstAtomCoordinatesByAttributes

* arrow and plus corrections

* removing clickOnPlus

* f

* f2

* f3

* f4

* Some clean up

* fix

* а2

* f3

* f4

* some clean up

* scu2

* f5

* f6

* f7

* draft

* draft2

* Final

* fix

* f2

* f3

* f4

* f5

* f6

* f7

* f8

* f9

* f10

* f11

* f12

* f13

* f14

* f15

* f16

* f17

* f18

* f19

* f20

* f21

* f22

* f23

* f24

* f25

* f26

* f27

* f28

* Autotests: 8361 autotests some refactoring (#8362)

* first

* f2

* f3

* f4

* f5

* f6

* f7

* f8

* f9

* f10

* #7928 - Allow for setting of HELM alias in the monomer creation wizard (#8360)

* - added helm alias field to monomer wizard

* - added helm alias field validation

* - removed helm alias field from chems

* Autotests: #8341 - autotests tests for add ability to update monomers library api in sdf format (#8372)

* - add tests;
- add screenshots

* - add tests;
- add screenshots

* - add tests;
- add screenshots

* - update tests;
- add test files;
- delete unused 'testData.ts'

* Autotests: #7960 - autotests get rid of doubleclickonbond function and replace it with getbondlocatordblclick (#8370)

* The function doubleClickOnBond is replaced with getBondLocator.dblclick(part 1)

* The function doubleClickOnBond is replaced with getBondLocator.dblclick(part 2)
The function declaration of doubleClickOnBond is removed

* #8377 - Add data-topology and data-reacting-center attributes for bonds (#8378)

* Initial plan

* Add data-topology and data-reacting-center attributes for bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Improve error handling in getBondFromMoleculeStruct with descriptive comment

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Improve code quality based on review feedback - simplify null checks and enhance comments

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

* f2

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Autotests: #7964 - add LabelEditDialog page object and update atom editing tests (#8375)

* Autotests: #7964 - add LabelEditDialog page object and update atom editing tests (#7964)

- Added new PO `LabelEditDialog.ts` for label editing modal (opened via long left click)
- Updated tests:
  - `atom-properties.spec.ts`
  - `Template-manipulations.spec.ts`
  - `right-click.spec.ts`
- Replaced direct `getByLabel` usage with `fillLabel` calls:
  - via new `LabelEditDialog` for long-click cases
  - via existing `AtomPropertiesDialog` for double-click or context-menu cases

* autotests(#7964): add longClickOnAtom and setLabel, refactor label editing tests

- Implemented longClickOnAtom helper in index.ts
- Added setLabel method in LabelEditDialog
- Updated atom-properties.spec.ts and view-only-mode.spec.ts to reuse it
- Used setOptions instead of fillLabel+apply in template-manipulations.spec.ts (per review)

* Removed no used import pressButton from is-query-structure-selected.spec.ts, because of git push failure

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* Autotests: 8376 autotests some refactoring (#8381)

* First

* f2

* f3

* f4

* f5

* f6

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* f7

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module (#8388)

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module

* fixes

* f2

* f3

---------

Co-authored-by: Alexey Girin <agirin@mail.ru>

* #8281 - Adjust subscription to library update event of Ketcher API  (#8382)

* #8212 - Refactor: Extract this nested ternary operation into an independent statement (part 4) (#8225)

* Initial plan

* Refactor nested ternary in Analyse.jsx into separate method

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8211 - Refactor: Extract this nested ternary operation into an independent statement (part 3) (#8224)

* Initial plan

* Refactor: Extract nested ternary operation in MainRow.jsx into renderCell function

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8210 - Refactor: Extract this nested ternary operation into an independent statement (part 2) (#8223)

* Initial plan

* Refactor: Extract nested ternary operations into independent functions

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8209 - Refactor: Extract this nested ternary operation into an independent statement (part 1) (#8222)

* Initial plan

* Refactor nested ternary operations into if-else statements

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7905 – Selection logic change and toolbar icons enabling for the monomer creation wizard (#8371)

* #7905 – Change selection logic

* #7905 – Enable Indigo functions

* #7905 – Support undo/redo for assigning attachment point via leaving atom and removing as assigned attachment point

* #7905 – Support undo/redo for reassign attachment point operation

* #7905 – Support undo/redo for reassign leaving atom operation

* #7905 – Support undo/redo for assign attachment atom operation

* #7905 – Fix build failure

* #7905 – Do not apply toggle explicit hydrogens for leaving group atoms in monomer creation wizard

* #7905 – Enable layout and clenaup tools, add label to HELM alias input

* #7905 – Revert initial notification change

* #7905 – Update screenshots

* #7905 – Update screenshots

* #7905 – Remove outdated test cases

* #5520 - Percentages for mixed bases ain't sorted from biggest to smallest in tooltip (#8288)

* Initial plan

* Fix sorting of mixed base percentages in tooltip

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode (#8336)

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode

* #8366 – Preview: Wrong name in context menu - “Circular layout” should be “Create cyclic structure”

* #8369 – Preview: Circular layout option is active even when structure does not meet minimal closure requirements

* #8368 - Preview: Context menu incorrectly allows “Circular layout” even when selection criteria are not met

* #8367 - Preview: Undo does not revert Circular layout - structure disappears, ghost bonds remain and cause console errors 

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>

* #4188 - Choosing wedged/hashed bond direction doesn't work from right-clicking context menu (#8233)

* Initial plan

* Fix bond direction change in context menu for stereo bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify bond type check logic

* Fix return statement formatting in useBondTypeChange

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* #8351 Autotests for Ketcher 3.9.0 bugs (#8391)

* First draft

* Autotests: 8376 autotests some refactoring (#8381)

* First

* f2

* f3

* f4

* f5

* f6

* #8200 - Add parameter to Editor to disable saving new monomers to local storage   (#8364)

* fix: add parameter to Editor to disable saving new monomers to local storage

* fix:make monomer library persistence opt‑in via shouldPersist

* #7971 - Update the help document (3.9.) (#8384)

* Delete documentation/images/FG_chain.gif

* Delete documentation/images/Macro-canvas-3.8..png

* Delete documentation/images/Library-Tabs-3.8..png

* Delete documentation/images/Selection-for-Creating-a-Monomer-3.7..png

* Delete documentation/images/Entering-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/Exiting-the-Monomer-Creation-Wizard-3.7..png

* Delete documentation/images/New-Monomer-Micro-3.7..png

* Delete documentation/images/New-Monomer-Macro-3.7..png

* Delete documentation/images/New-Monomer-Library-3.7..png

* Delete documentation/images/Open-Structure-Macro-2-3.0..png

* Add files via upload

* Update help.md

* Update help.md

typos

* #7553 - Dropdown for switching between Macro and Micro modes does not appear in fullscreen mode (#7892)

* #7553 fix fullscreen mode switching dropdown

* #7553 fex: implement popup fullscreen mode with proper top-layer targeting

* #7553 fix test

* fix test

* #7553 Remove ref to custom class

* #7553 Refactor

* #8337 - Preview: No limit on the number of added modification fields; new fields extend beyond the visible wizard area and shift action buttons  (#8365)

* fix: add scroll im monomer wizart in popup

* fix: fix styles

* f7

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module (#8388)

* #8385 – Migrate to Indigo v1.38.0-rc.1 in-browser module

* fixes

* f2

* f3

---------

Co-authored-by: Alexey Girin <agirin@mail.ru>

* draft

* 2

* 3

* 4

* 5

* 6

* 7

* #8281 - Adjust subscription to library update event of Ketcher API  (#8382)

* #8212 - Refactor: Extract this nested ternary operation into an independent statement (part 4) (#8225)

* Initial plan

* Refactor nested ternary in Analyse.jsx into separate method

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8211 - Refactor: Extract this nested ternary operation into an independent statement (part 3) (#8224)

* Initial plan

* Refactor: Extract nested ternary operation in MainRow.jsx into renderCell function

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8210 - Refactor: Extract this nested ternary operation into an independent statement (part 2) (#8223)

* Initial plan

* Refactor: Extract nested ternary operations into independent functions

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #8209 - Refactor: Extract this nested ternary operation into an independent statement (part 1) (#8222)

* Initial plan

* Refactor nested ternary operations into if-else statements

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7905 – Selection logic change and toolbar icons enabling for the monomer creation wizard (#8371)

* #7905 – Change selection logic

* #7905 – Enable Indigo functions

* #7905 – Support undo/redo for assigning attachment point via leaving atom and removing as assigned attachment point

* #7905 – Support undo/redo for reassign attachment point operation

* #7905 – Support undo/redo for reassign leaving atom operation

* #7905 – Support undo/redo for assign attachment atom operation

* #7905 – Fix build failure

* #7905 – Do not apply toggle explicit hydrogens for leaving group atoms in monomer creation wizard

* #7905 – Enable layout and clenaup tools, add label to HELM alias input

* #7905 – Revert initial notification change

* #7905 – Update screenshots

* #7905 – Update screenshots

* #7905 – Remove outdated test cases

* #5520 - Percentages for mixed bases ain't sorted from biggest to smallest in tooltip (#8288)

* Initial plan

* Fix sorting of mixed base percentages in tooltip

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode (#8336)

* #7970 - Include 'Create cyclic structure' option in the context menu for Flex mode

* #8366 – Preview: Wrong name in context menu - “Circular layout” should be “Create cyclic structure”

* #8369 – Preview: Circular layout option is active even when structure does not meet minimal closure requirements

* #8368 - Preview: Context menu incorrectly allows “Circular layout” even when selection criteria are not met

* #8367 - Preview: Undo does not revert Circular layout - structure disappears, ghost bonds remain and cause console errors 

---------

Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>

* #4188 - Choosing wedged/hashed bond direction doesn't work from right-clicking context menu (#8233)

* Initial plan

* Fix bond direction change in context menu for stereo bonds

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Simplify bond type check logic

* Fix return statement formatting in useBondTypeChange

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* fixes

* f2

* f3

* f4

---------

Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com>
Co-authored-by: KukushkinDmi1riy <42671583+KukushkinDmi1riy@users.noreply.github.com>
Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Roman Rodionov <roman_rodionov@epam.com>

* Initial plan

* f2

* Refactor: #8153 - Deprecated APIs should not be used (part 2)  (#8154)

* Initial plan

* Replace deprecated APIs with modern alternatives

- Replace all substr() calls with slice() in v3000.js
- Replace readAsBinaryString() with readAsArrayBuffer() in fileOpener.js
- Replace document.execCommand() and document.queryCommandSupported() with Clipboard API checks in cliparea.jsx

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* f1

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>

* Autotests: #7958 - autotests get rid of clickonbond function and replace it with getbondlocatorclick (#8409)

* The function clickOnBond is replaced with getBondLocator.click()
The function declaration of clickOnBond is removed

* The BondType and getBondByIndex are removed from import

* Initial plan

* Initial plan

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>
Co-authored-by: Kristina <kristina_kasyanovskaya@epam.com>
Co-authored-by: Roman Rodionov <roman_rodionov@epam.com>
Co-authored-by: Ivan Maslov <165396466+ivanmaslow@users.noreply.github.com>
Co-authored-by: Mikhail Zhirnov <62464241+Zhirnoff@users.noreply.github.com>
Co-authored-by: Nikita Chistousov <nikita_chistousov@epam.com>
Co-authored-by: ViktoriaTkacheva <139227567+ViktoriaTkacheva@users.noreply.github.com>
Co-authored-by…
Copilot AI and others added 10 commits November 19, 2025 14:10
…s, rLogic) function to reduce its Cognitive Complexity from 96 to the 15 allowed. (#8571)

* Initial plan

* Refactor parsePropertyLines to reduce cognitive complexity

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
…ld be "readonly" (part 3) (#8562)

* Initial plan

* Add readonly modifier to fields only assigned in constructors

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
… of a ternary expression, as it is simpler to read. (part 8) (#8560)

* Initial plan

* Refactor: Replace || with ?? in ExtendedTable and Recognize components

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>
#8573)

* Initial plan

* Fix function parameters with default values ordering

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* Fix additional getStructure call sites

Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>

* fixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
Co-authored-by: Alexey Girin <agirin@mail.ru>
…d LGA (#8491)

* #8254 – Support having stereo bonds as bonds between AA and LGA

* #8254 – Support stereo bonds for automatically assigned leaving atoms

* #8254 – Convert bonds between monomers to stereo when expanding monomers

* #8254 – Some refactoring

* #8254 – Implement proper handling of cases when monomer bond goes TO stereo bonded LGA

* #8254 – Implement stereo bonds support in between monomers when loading/switching modes

* #8254 – Update autotests

* - updated screenshots

* - updated tests

---------

Co-authored-by: Roman Rodionov <roman_rodionov@epam.com>
Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com>
…us-phosphates-symbol' into copilot/fix-ambiguous-phosphates-symbol
@AlexeyGirin
AlexeyGirin merged commit cc917c2 into master Nov 19, 2025
15 checks passed
@AlexeyGirin
AlexeyGirin deleted the copilot/fix-ambiguous-phosphates-symbol branch November 19, 2025 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol

4 participants