Repository navigation
Conversation
…A and LGA (epam#8491) * epam#8254 – Support having stereo bonds as bonds between AA and LGA * epam#8254 – Support stereo bonds for automatically assigned leaving atoms * epam#8254 – Convert bonds between monomers to stereo when expanding monomers * epam#8254 – Some refactoring * epam#8254 – Implement proper handling of cases when monomer bond goes TO stereo bonded LGA * epam#8254 – Implement stereo bonds support in between monomers when loading/switching modes * epam#8254 – Update autotests * - updated screenshots * - updated tests --------- Co-authored-by: Roman Rodionov <roman_rodionov@epam.com>
…hange the type of the expression (part 10) (epam#8545) * Initial plan * Remove redundant non-null assertions in struct.ts 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>
…ingly (epam#8577) * Initial plan * Fix array mutation issue by using spread syntax before reverse() 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>
…uldReactionRelayout) function to reduce its Cognitive Complexity from 53 to the 15 allowed. (epam#8570) * Initial plan * Refactor rxnMerge function to reduce cognitive complexity - Extract bond length calculation into calculateAverageBondLength() - Extract molecule rescaling into rescaleMolecules() - Extract fragment type determination into getFragmentType() - Extract molecule categorization into categorizeMolecules() - Move shiftMol helper to module level - Extract layout logic into layoutReactionFragments() - Extract merge logic into mergeWithoutLayout() - Extract plus sign addition into addPlusSigns() - Extract bounding box aggregation into aggregateBoundingBoxes() - Extract arrow creation logic into createReactionArrow() The main rxnMerge function now orchestrates these helper functions, making the code flow easier to read and reducing 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>
…hown as % symbol instead of @ symbol (epam#8580) * Initial plan * Fix: Add Phosphate class to ambiguous monomer @ symbol check Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #7372 "Ghost image" doesn't satisfy the UX design (#8309) * 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+ivanmasl…
…nt point (epam#8585) * Initial plan * Fix tooltip positioning for attachment points using getShiftedSegmentPosition Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix tooltip positioning to account for canvas offset in popup mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Revert reatom.ts changes - keep only InfoTooltip fix for popup mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix tooltip positioning for attachment points in popup mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * epam#8544 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 10) (epam#8545) * Initial plan * Remove redundant non-null assertions in struct.ts 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> * Initial plan * Fix tooltip positioning for attachment points using getShiftedSegmentPosition Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix tooltip positioning to account for canvas offset in popup mode 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>
* feat: Include 'Arrange as a Ring' button for Flex mode * fix: fix position Arrange as a Ring in context menu * fix: add 'Arrange as a Ring' button only in flex mode * test: update snapshots * fix: fix data attribute * fix: fix selected monomer function * test: update snapshots
…rewrite JS to TS) 12 (epam#8550) * Initial plan * Convert Check.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * #8556 System losts Modification types values while save it KET (#8557) * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * 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> * #7372 "Ghost image" doesn't satisfy the UX design (#8309) * 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: AlexeyGir…
…s rewrite JS to TS) 10 (epam#8519) * Initial plan * Convert Analyse.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix: Display values in Decimal places dropdowns Changed from `.toString()` to pass numeric values directly to Select component. The Select component expects values that match the option values, which are numbers (0-7), not strings. Converting to string caused a type mismatch preventing the selected value from being displayed. 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>
…rewrite JS to TS) 4 (epam#8514) * Initial plan * Convert ElementsTable.jsx to TypeScript with proper type definitions 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>
…rewrite JS to TS) 2 (epam#8512) * Initial plan * Convert PeriodTable.jsx to TypeScript with proper type definitions 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>
* - fixed build * fixes * f2 * f3 --------- Co-authored-by: Alexey Girin <agirin@mail.ru>
…monomers (epam#8604) * Initial plan * Disable Change direction and Attach S-Group for bonds between monomers Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8509 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 12 (#8550) * Initial plan * Convert Check.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * #8556 System losts Modification types values while save it KET (#8557) * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * 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> * #7372 "Ghost image" doesn't satisfy the UX design (#8309) * 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 …
* Initial plan * Create file structure and update first batch of test files Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Update remaining test files and remove fileFormats.ts Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove extraneous quotes from mol file * Clean up quotation marks in mol file Removed unnecessary quotation marks from the file. * Remove unnecessary characters from MOL file * Update one-unknown-superatom-contracted.mol * Update one-unknown-superatom-expanded.mol * Remove unnecessary quotes from mol file * Update functional-groups-expanded-contracted.mol * Clean up quotation marks in mol file Removed unnecessary quotation marks from the file. * Remove extra quotes from one-functional-group-expanded.mol * Remove extraneous quotes from mol file * Clean up quotation marks in mol file Removed unnecessary quotation marks at the beginning and end of the file. * Update unknown-superatom-expanded-contracted.mol * #8509 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 12 (#8550) * Initial plan * Convert Check.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * #8556 System losts Modification types values while save it KET (#8557) * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * 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> * #7372 "Ghost image" doesn't satisfy the UX design (#8309) * 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: impl…
…ept one - isContainsCoordinates (epam#8610) * Initial plan * Refactor SmilesFormatter: remove all methods except isContainsCoordinates Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove unused SmiSerializer and Smiles serialization code 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>
…#8569) * Initial plan * Fix deprecated event global usage in templatePreview.ts Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fixes * Initial plan * Fix deprecated event global usage in templatePreview.ts Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * f2 * Fixed build (#8607) * - fixed build * fixes * f2 * f3 --------- Co-authored-by: Alexey Girin <agirin@mail.ru> * Disable "Change direction" and "Attach S-Group..." for bonds between monomers (#8604) * Initial plan * Disable Change direction and Attach S-Group for bonds between monomers Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8509 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 12 (#8550) * Initial plan * Convert Check.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * #8556 System losts Modification types values while save it KET (#8557) * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * #8500 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 3 (#8513) * Initial plan * Refactor AtomInfo from JSX to TypeScript with proper type definitions 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> * #8503 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 6 (#8515) * Initial plan * Refactor OutinerRow.jsx to TypeScript with proper props validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Complete OutinerRow TypeScript migration 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> * #8506 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 9 (#8518) * Initial plan * Convert About.jsx to TypeScript with proper type definitions 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> * #8508 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 11 (#8520) * Initial plan * Convert FrozenInput from JSX to TSX with proper TypeScript 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> * Refactor: Variables are missing in props validation (let's rewrite JS to TS) 14 (#8522) * Initial plan * Refactor: Convert Recognize.jsx to TypeScript with proper prop types validation 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> * #8510 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 13 (#8523) * Initial plan * Convert ErrorsCheck.jsx to TypeScript with proper type definitions 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> * #8502 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 5 (#8524) * Initial plan * Refactor MainRow.jsx to TypeScript with prop type validation 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> * #8538 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 7) (#8539) * Initial plan * Remove redundant type assertions and non-null assertions 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> * #8540 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 8) (#8541) * Initial plan * Remove redundant type assertions and casts 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> * #8542 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 9) (#8543) * Initial plan * Remove redundant type assertions from DrawingEntitiesManager and sgroup 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> * #8546 Refactor: This assertion is unnecessary since it does not change the type of the expression (part 11) (#8547) * Initial plan * Remove redundant type assertions and non-null assertions 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> * Autotests: 8553 autotests update the monomer preview (#8558) * draft * Final * f2 * #8554 System losts AxoLabs alias while save it KET (#8555) * Initial plan * Add aliasAxoLabs to KET serialization 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> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * Create page object for Abbreviation Preview Tooltip (#8552) * Initial plan * Create AbbreviationPreviewTooltip page object and refactor tests 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> * Initial plan * Add modificationTypes and naturalAnalog to KET serialization Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove naturalAnalog assignment for CHEM monomers Remove naturalAnalog property assignment for non-CHEM monomers. * 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> * #7372 "Ghost image" doesn't satisfy the UX design (#8309) * 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 m…
… right-click menu (epam#8601)
… on a bond in macro mode (epam#8636) * fix: Delete option is available when right-clicking on a bond in macro mode * test: update snapshots
* Initial plan * Replace div role="button" with semantic button elements Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove redundant aria-disabled attribute in favor of native disabled Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * f1 * 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>
…rewrite JS to TS) 7 (epam#8616) * Initial plan * Convert TypeChoice.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Add explanatory comments for type compatibility and required props 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>
… this simple iteration (part 4) (epam#8620) * Initial plan * Refactor for loops to for-of loops in utils.js 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>
…m#8622) * Initial plan * Mark component props as read-only using Readonly utility type 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>
…rewrite JS to TS) 18 (epam#8632) * Initial plan * Refactor buttonlist.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix parameter naming: rename 'multipl' to 'multiple' in oneOrMore 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>
…rewrite JS to TS) 19 (epam#8633) * Initial plan * Convert ComboBox component from JSX to TypeScript with proper prop types Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Address code review feedback - improve type safety and JSX rendering 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>
…rewrite JS to TS) 20 (epam#8634) * Initial plan * Convert errorPopover.jsx to TypeScript with proper type definitions 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>
…rewrite JS to TS) 16 (epam#8630) * Initial plan * Refactor cliparea.jsx to TypeScript with proper prop type validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: Context menu remains visible after creating cyclic structure via right-click menu (epam#8601) * epam#7326 - Preview: Delete option is unavailable when right-clicking on a bond in macro mode (epam#8636) * fix: Delete option is available when right-clicking on a bond in macro mode * test: update snapshots * fix: Selection tool icon open dropdown menu as in Micro mode (epam#8621) * epam#8612 Refactor: Prefer tag over ARIA role (part 4) (epam#8615) * Initial plan * Replace div role="button" with semantic button elements Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Remove redundant aria-disabled attribute in favor of native disabled Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * f1 * 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> * epam#8504 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 7 (epam#8616) * Initial plan * Convert TypeChoice.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Add explanatory comments for type compatibility and required props 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> * epam#8619 Refactor: Expected a for-of loop instead of a for loop with this simple iteration (part 4) (epam#8620) * Initial plan * Refactor for loops to for-of loops in utils.js 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> * epam#8563 Refactor: Mark the props of the component as read-only (epam#8622) * Initial plan * Mark component props as read-only using Readonly utility type 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> * epam#8626 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 18 (epam#8632) * Initial plan * Refactor buttonlist.jsx to TypeScript with proper type definitions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix parameter naming: rename 'multipl' to 'multiple' in oneOrMore 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> * epam#8627 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 19 (epam#8633) * Initial plan * Convert ComboBox component from JSX to TypeScript with proper prop types Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Address code review feedback - improve type safety and JSX rendering 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> * epam#8628 Refactor: Variables are missing in props validation (let's rewrite JS to TS) 20 (epam#8634) * Initial plan * Convert errorPopover.jsx to TypeScript with proper type definitions 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> * Initial plan * f1 * 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: Kristina <kristina_kasyanovskaya@epam.com> Co-authored-by: Alexey Girin <agirin@mail.ru>
…buttons “Yes” and “Cancel” in the “Update Sequence” window, tooltips are displayed (epam#8714) * fix: in the “Modify RNA Builder” mode, when hovering over the buttons “Yes” and “Cancel” in the “Update Sequence” window, tooltips are displayed * test: update test logic & add data test-id
…ed within the loop body (epam#9237) * Refactor loop structures to use while instead of for for improved readability in utils.js and v3000.js * Refactor spacebarsplit function for improved readability and maintainability
* 9160/refactor:remove unused assignments * 9160/refactor:remove unused assignments * 9160/refactor:try to pass test in github * remove ubused assignments * fix:remove unnnessacary changes from structeditor * fix:revert * remove unused assigments * refactor:use lodash for form and structeditor
* Initial plan * fix: reject empty monomer group template names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: keep preset template updates while validating names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * test: cover whitespace-only preset names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: clarify empty preset name error text 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>
…rals should not be used for promise rejection (epam#9277) * 9276: fix promise rejection for literal usage * normalizeError utility added * added normalizeError utility into all necessary files
…pam#9095) * Initial plan * Add stereoLabel support to CoreAtom and AtomRenderer for macromolecules mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix magic number in positionStereoLabel method Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fixed size of stereolabel * fixed displaying abs stereoflags * fixed moving stereolabel after moving second bonds atom --------- 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: Aleksei Proskurnov <proskurn@gmail.com>
…m#9284) * Fix empty collection access in sequence tests and sgroup action * Fix: Always initialize `attachmentPoints` as an empty array, disregarding `attrs.attachmentPoints`.
…m#9221) * refactor analyse dialog to remove unused class methods * refactor: move analyseItems constant outside of Analyse component to prevent re-declaration
…e accessor (epam#9213) * Fix EditorHistory constructor return by using static accessor * fix: Disable `no-use-before-define` ESLint rule for the `_instance` property. * style: format EditorHistory.update arguments for improved readability. * refactor: improve type safety of EditorHistory singleton by adding an instance type guard.
Removed developers and QA groups from auto assign configuration.
…erations (epam#9296) * Initial plan * refactor: move async monomers library init out of CoreEditor constructor Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9260 - undo the changes on package-lock --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com>
* Initial plan * Add rotation and flip functionality for monomers in Macromolecules mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Add interactive rotation handle functionality with 15° snapping Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Address code review feedback: extract constants, improve comments 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: Roman Rodionov <roman_rodionov@epam.com>
* Fixed flaky tests * fixes * f2 * Update Node.js baseline to 22 (epam#9026) * Initial plan * update node version references 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> * epam#8999 Refactor: Polynomial regular expression used on uncontrolled data (epam#9000) * Initial plan * Replace regex trimRight with trimEnd 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> * epam#9003 Refactor: React Router vulnerable to XSS via Open Redirects (epam#9004) * Initial plan * chore: update react-router to 7.13.0 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> * epam#9005 Refactor: Next library has a Denial of Service with Server Components - Incomplete Fix Follow-Up (epam#9006) * Initial plan * chore: upgrade next/react for example-ssr 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> * epam#8987 Labels for monomer natural analog category is missing if filter applied (epam#8992) * Initial plan * fix: always show monomer group titles in RNA accordion Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * limit natural analog titles to relevant monomer groups 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 <alexey_girin@epam.com> * epam#9011 Refactor: qs arrayLimit bypass mitigation via parent dependency updates (epam#9015) * Initial plan * Update qs and body-parser overrides Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Update body-parser via parent dependency 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> * epam#9016 Refactor: update js-yaml dependencies to patched versions without overrides (epam#9019) * Initial plan * chore: override js-yaml to patched versions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * chore: bump js-yaml patch versions Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * chore: remove js-yaml overrides and update lock 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> * Align S-Group subtype combobox width and default option visibility (epam#8979) * Initial plan * Align S-Group subtype combobox width with other selects Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: show selected empty subtype option Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fixes * - fixed non specified value * - fixed unit tests * 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 <alexey_girin@epam.com> Co-authored-by: Roman Rodionov <roman_rodionov@epam.com> * Refactor: Potential fix for code scanning alert no. 22: Unvalidated dynamic method call (epam#9001) * Potential fix for code scanning alert no. 22: Unvalidated dynamic method call Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Fix unvalidated dynamic method call in parseSGroup.js (epam#9002) * Initial plan * Fix unvalidated dynamic method call in parseSGroup.js Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Optimize security fix by moving constants outside function scope 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: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * epam#9022 Refactor: PostCSS line return parsing error (epam#9023) * Initial plan * chore: fix package.json trailing comma Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * chore: remove postcss override 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> * Update CI to Node.js 22.11 (epam#9037) * epam#9032 - Flex mode icon is active after ketcher close and open again (epam#9049) (epam#9052) * epam#9032 - Flex mode icon is active after ketcher close and open again - added reset mode button state to default on destroy * - updated ketcher version to 3.12.0-rc.2 (cherry picked from commit d721b77) * epam#9047 - Leaving group atom position is incorrect for nucleotides created in monomer wizard (epam#9048) (epam#9051) - fixed leaving group atom position for nucleotides in monomer creation wizard (cherry picked from commit 34ad31d) * epam#7153 - Molecule from expanded monomer disappars on switching to Macromolecules mode (epam#8989) * fix dissapearing molecule from expanded monomer * fixed build * create fragment after removing s group * fixed build * removed redundant * added comment * epam#8974 autotests for ketcher 3110 bugs (epam#9031) * add cases * add cases and files * update code and screenshoots * remove step about screenshoot * changes after review * some changes for wariningMessageDialog * add changes * add changes after review * Autotests: 8331 autotests axolabs format support (epam#8339) * First * second * epam#9065 System shows natural analog category for phosphates (epam#9066) * Initial plan * chore: plan phosphate category fix Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: hide phosphate natural analogue groups Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fixes * f2 * f3 * revert: restore RNA phosphate grouping Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * chore: revert package-lock.json 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 <alexey_girin@epam.com> * Add fragment selection tool and rename structure selection tooltip (epam#8973) 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: Roman Rodionov <roman_rodionov@epam.com> * Backmerge: epam#9078 - Update the help document (3.12.) (epam#9079) * Delete documentation/images/S-Group-Properties-3.6.png * Add files via upload * Update help.md * epam#9084 - Ketcher saves incorrect attachment points configuration for new nucleotides (epam#9086) (epam#9088) (cherry picked from commit 5177c79) * - fixed vulnerability (epam#9100) * epam#7915 autotests enable flipping of all expanded monomers in a structure (epam#9083) * add test cases * add description for tests * epam#8254 Allow for stereo-bonds (up and down) to be a bond between AA and LGA (epam#9080) * add test cases * add changes * add svg format for macro * add description for the tests * Update the layout method * # 8383 Introduce library searching using HELM aliases, AxoLabs aliases, and modification types (epam#9059) * add test cases * update screenshoots * add description for tests * update code and screenshot * epam#9098 autotests alignment of sense and antisense strings in axolabs format (epam#9101) * add cases * add screenshots and tests * Changed call for page to the BeforeAll fixture. Stabled some flacky tests (epam#9107) * add cases (epam#9112) * epam#9113 The Copolymer S-Group type should not be displayed unless there are at least two structural repeating units (SRUs) in selection (epam#9117) * Initial plan * Plan for copolymer s-group availability Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Restrict copolymer s-group option Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Address code review feedback Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Refine copolymer option checks Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Simplify copolymer option logic Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Polish copolymer option filtering Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Tighten copolymer availability check Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Trim sgroup memo dependencies Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Simplify copolymer scheme selection Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Type annotate sgroup test helper Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Memoize schemes and count SRUs 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> * epam#7492 - autotests transform isolated test execution to clear canvas test execution for undo redo actionsspects (epam#9131) * Isolated test execution has been transformed to clear canvas test execution for undo redo actions. * Screenshots updated * epam#7493 Transformed isolated test execution to clear canvas test execution for right-click.spec.ts (epam#9133) * epam#9119 add expects and change repeating code (epam#9128) * add expects and change repeating code * add changes for failed test * epam#9108 Incorrect valence for nitrogen (epam#9124) * Initial plan * Allow nitrogen valence 5 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 <alexey_girin@epam.com> * epam#9126 Some keyboard shortcuts don't work on Macromolecules canvas (epam#9127) * Initial plan * Fix macromolecules hotkeys Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Adjust macromolecule hotkey tests Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Clarify sequence-mode hotkey comment Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Document bond hotkey options Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Refactor bond hotkey helper Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Tidy hotkey comments Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Revert macromolecule hotkey tests 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 <alexey_girin@epam.com> * refactor: reEmage and resimpleObject toggle points logic (epam#9222) * 9151:constructor should have readonly (epam#9241) * refactor:use nullish coeliscine (epam#9242) * Fix attachment point sorting comparator (epam#9281) * Fix reduce call in DistanceSnapView with initial value (epam#9268) * test: document intentional noop helper (epam#9264) * fix(core): avoid unused ClearTool instantiation in test (epam#9206) * Fix dialog keyboard handler accessibility issue (epam#9200) * fix(core): make EmptySnakeLayoutNode non-empty (epam#9265) * epam#9227 - The return value of "useState" should be destructured and named symmetrically (epam#9228) * Initial plan * Fix useState asymmetric naming: rename isStuctureChecking to isStructureChecking Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9223- Redundant casts and non-null assertions should be avoided (epam#9224) * Initial plan * Remove redundant TypeScript casts and non-null assertions Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Fix type errors: properly handle false values and keep necessary cast Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9223- remove redundant type assertion for actionmenu --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9217 - React props should be read-only (epam#9219) * Initial plan * Make React props read-only in 5 components Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Remove package-lock.json from commit * Remove package-lock.json from commit Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Restore package-lock.json to original state --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9211 - Switch cases should end with an unconditional "break" statement (epam#9212) * Initial plan * Initial analysis - identify switch case fall-through issues Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Fix switch case fall-through in action/index.js and state/index.js Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Refactor to reduce code duplication in switch cases Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Add JSDoc and improve variable naming Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Revert "Initial analysis - identify switch case fall-through issues" This reverts commit 2286028. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9259 - If statements should not be the only statement in else blocks (epam#9261) * Initial plan * Refactor: Replace nested if in else block with else if in CoreAtom.ts Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9293 Autotests: Cyclic imports in autotests (epam#9294) * Initial plan * fix(autotests): remove circular imports in tests utilities and monomer dialog Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * refactor(autotests): eliminate remaining cyclic imports in tests Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * refactor(autotests): rollback requested files and replace delay helper calls 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 <alexey_girin@epam.com> * epam#9251 - Redundant React fragments should be removed (epam#9252) * Initial plan * Remove redundant React fragment in ErrorsCheck component Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * Remove package-lock.json changes from PR Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * epam#9236 - Ternary operators should not be nested (epam#9247) * Initial plan * Refactor nested ternary operators in 4 files Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * 9236 - undo changes for package-lock * 9236 - refactor nested arrays for period table * 9236 - extract modification type attribute logic to reusable utility --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * 9167:fixed all branches in a conditional structure should not have exactly same implementation issue (epam#9230) * epam#9193:Refactor:(TypeScript) Objects and classes converted or coerced t… (epam#9196) * 9183:Refactor:(TypeScript) Objects and classes converted or coerced to strings should define * 9183/fix:delete unnecessary file * 9183/refactor:fix according to copilot review comment * fix:remove unused function * 9279: create cross-platform script for app build and run (epam#9280) * epam#9298: (TypeScript) Two branches in a conditional structure should not have exactly the same implementation (epam#9300) * refactor:implement duplicate branch cleanup in 2 reported lications * Revert "refactor:implement duplicate branch cleanup in 2 reported lications" This reverts commit 95dabd1. * refactor two branches same implementations * epam#9207- Unused React typed props should be removed (epam#9214) * 9207/fix:remove unused props * fix:refactor accroding comments * fix:rename current to diaog element * epam#9195 - Refactor: Use optional chaining instead of manual null checks (epam#9201) * Initial plan * Refactor: Use optional chaining instead of manual null checks Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Fix prettier formatting issues Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Fix code review issues: correct atom lookup and improve if statement logic Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9195 fix test issues * epam#9195 fix undo changes for package-lock * 9195 - replace undefineds with null * epam#9195 - replace null with undefined * epam#9195 - replace some undefineds with null --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9238 - Refactor: (TypeScript) Non-interactive DOM elements should not have interactive ARIA roles (epam#9262) * Enhance accessibility by adding ARIA roles and attributes to various components * Refactor ARIA roles to improve accessibility and semantic structure in ColorPicker, Form components, and SpecialSymbolsButton * Refactor ColorPicker to streamline ID generation for palette * fix snapshots * 9174: fix selector duplicated issue (epam#9302) * epam#9255 - Spacing between inline elements should be explicit (epam#9256) * Initial plan * Fix ambiguous JSX whitespace in RnaPresetTabs.tsx Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * Use explicit JSX space expression {' '} as per lint rule Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * Format JSX space expression on single line as per image Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * Use regular space instead of {' '} JSX expression Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> * 9162 used collection contents (epam#9208) * epam#9209 - Refactor: (JavaScript) Loop counters should not be assigned within the loop body (epam#9237) * Refactor loop structures to use while instead of for for improved readability in utils.js and v3000.js * Refactor spacebarsplit function for improved readability and maintainability * refactor: update according to Sonar errors (epam#9272) * epam#9160-(TypeScript) Unused assignments should be removed (epam#9226) * 9160/refactor:remove unused assignments * 9160/refactor:remove unused assignments * 9160/refactor:try to pass test in github * remove ubused assignments * fix:remove unnnessacary changes from structeditor * fix:revert * remove unused assigments * refactor:use lodash for form and structeditor * epam#8187 It is possible to create preset with empty name (epam#9075) * Initial plan * fix: reject empty monomer group template names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: keep preset template updates while validating names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * test: cover whitespace-only preset names Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fix: clarify empty preset name error text 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> * epam#9276- Literals should not be used for promise rejection #9276iterals should not be used for promise rejection (epam#9277) * 9276: fix promise rejection for literal usage * normalizeError utility added * added normalizeError utility into all necessary files * epam#9269: add anput references to labels for iframe in examples (epam#9275) * refactor: simplify async handling in cut and keydown event methods (epam#9305) * Support for enhanced stereochemistry markings in macromolecules mode (epam#9095) * Initial plan * Add stereoLabel support to CoreAtom and AtomRenderer for macromolecules mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fix magic number in positionStereoLabel method Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * fixed size of stereolabel * fixed displaying abs stereoflags * fixed moving stereolabel after moving second bonds atom --------- 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: Aleksei Proskurnov <proskurn@gmail.com> * epam#9282 - Empty collections should not be accessed or iterated (epam#9284) * Fix empty collection access in sequence tests and sgroup action * Fix: Always initialize `attachmentPoints` as an empty array, disregarding `attrs.attachmentPoints`. * epam#9218 - Unused methods of React components should be removed (epam#9221) * refactor analyse dialog to remove unused class methods * refactor: move analyseItems constant outside of Analyse component to prevent re-declaration * epam#9202 - Make EditorHistory constructor private and add getInstance accessor (epam#9213) * Fix EditorHistory constructor return by using static accessor * fix: Disable `no-use-before-define` ESLint rule for the `_instance` property. * style: format EditorHistory.update arguments for improved readability. * refactor: improve type safety of EditorHistory singleton by adding an instance type guard. * Update auto_assign.yml to simplify assignee groups (epam#9270) Removed developers and QA groups from auto assign configuration. * epam#8896- fix assertion error when adding ket file to canvas (epam#9315) * epam#9260 - Refactor: Constructors should not contain asynchronous operations (epam#9296) * Initial plan * refactor: move async monomers library init out of CoreEditor constructor Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * epam#9260 - undo the changes on package-lock --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> * Introducing rotation of monomers in Macromolecules mode (epam#9094) * Initial plan * Add rotation and flip functionality for monomers in Macromolecules mode Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Add interactive rotation handle functionality with 15° snapping Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Address code review feedback: extract constants, improve comments 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: Roman Rodionov <roman_rodionov@epam.com> * fixes * f2 * f3 * f5 * f6 --------- Co-authored-by: Ieva Bendikiene <bendikiene16@gmail.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> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: aproskurnov <proskurn@gmail.com> Co-authored-by: AnnaKosol <annakosolapova24@gmail.com> Co-authored-by: Ljubica Milovic <ljubica_milovic@epam.com> Co-authored-by: Pavel Lukin <124054458+zefiris87@users.noreply.github.com> Co-authored-by: Yaroslav Kovalsky <71060724+YatsekTest@users.noreply.github.com> Co-authored-by: SergeiBakirov <sergei_bakirov@epam.com> Co-authored-by: Yurii Danylenko <Givchik228@gmail.com> Co-authored-by: Gulia <83670176+guliaisaeva@users.noreply.github.com> Co-authored-by: azamatalt <108387789+azamatalt@users.noreply.github.com> Co-authored-by: beyzaevcen <95762073+beyzaevcen@users.noreply.github.com> Co-authored-by: oguzhanduran <86467364+oguzhanduran@users.noreply.github.com> Co-authored-by: Yurii Danylenko <yurii_danylenko@epam.com> Co-authored-by: umutzd-alt <umutozdemir997@outlook.com>
* Add files via upload * Delete documentation/images/3_lasso_menu.png * Delete documentation/images/Selection-tools-micro-3.13..png * Add files via upload * Add files via upload * Update help.md * Update help.md
…ixtures (epam#9326) * Initial plan * test: migrate clear-canvas lifecycle hooks to canvas fixtures Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * chore: finalize fixture migration validation Co-authored-by: AlexeyGirin <26869421+AlexeyGirin@users.noreply.github.com> * Fixes * f2 * f3 * f4 * f5 * f6 * www * f7 * f8 * f9 * f10 * f11 * f12 --------- 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 <alexey_girin@epam.com>
* fix(macromolecules): use semantic button for favorite toggle * refactor: replace div elements with native buttons for favorite toggles and update component snapshots. * f1 * f2 --------- Co-authored-by: Alexey Girin <alexey_girin@epam.com>
tonyd33
force-pushed
the
tony/update-3.14
branch
2 times, most recently
from
March 15, 2026 03:44
e50ace6 to
2ea7b80
Compare
tonyd33
force-pushed
the
tony/update-3.14
branch
2 times, most recently
from
March 15, 2026 04:46
0d51cc8 to
4e4a53c
Compare
tonyd33
force-pushed
the
tony/update-3.14
branch
from
March 15, 2026 23:14
4e4a53c to
9246fc8
Compare
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.
How the feature works? / How did you fix the issue?
(Screenshots, videos, or GIFs, if applicable)
Check list
#1234 – issue name