Repository navigation
#6731 Ambiguous phosphates (alternatives and mixed) in sequence shown as % symbol instead of @ symbol - #8580
Merged
Conversation
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
AlexeyGirin
marked this pull request as ready for review
November 19, 2025 06:18
AlexeyGirin
requested review from
rrodionov91
and removed request for
AlexeyGirin and
NataliaLoginova
November 19, 2025 06:19
* 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…
rrodionov91
approved these changes
Nov 19, 2025
…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
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.
Ambiguous phosphates (alternatives and mixed) were displaying as
%in sequence mode instead of the expected@symbol used for other ambiguous structural monomers.Changes
AmbiguousSequenceItemRenderer.symbolToDisplayto includeKetMonomerClass.Phosphatealongside existing CHEM and Sugar checksThis aligns phosphate display behavior with other structural monomers in sequence view.
Original prompt
%symbol instead of@symbol #6731💡 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.