Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add RxClippedRectUtils.observeClippedRect(gui) #513

Merged
merged 31 commits into from
Nov 6, 2024
Merged

Conversation

Quenty
Copy link
Owner

@Quenty Quenty commented Oct 24, 2024

This pull request introduces multiple new features, performance improvements, bug fixes, and refactorings, primarily focusing on enhancing observable functionality, memory optimization, and code structure. The changes include:

New Features

  • Observable and Utility Enhancements
    • Added RxClippedRectUtils.observeClippedRect(gui) to facilitate observation of clipped rectangles.
    • Introduced RectUtils package for utility functions related to rectangular shapes and geometry.
    • Implemented StateStack:PushBrio, allowing for state management with Brio-like behavior.
    • Added __iter implementations to enable iteration over specific data structures.
    • Enhanced avatar handling with new Promise-based rules.
    • Developed an initial version of an observable sorted list and accompanying observable list utilities.
    • Introduced ObservableSubscriptionTable:Fail(key) method for enhanced subscription management.
    • Incorporated Rx.combineLatestDefer for optimized handling of multiple observable streams.

Performance Improvements

  • Optimized iteration, memory usage, and observable subscriptions for increased efficiency.
  • Enhanced performance in category checks and symbol handling.
  • Cached canFire() result for improved performance in subscription and event handling.
  • Made use of ObservableSubscriptionTable and stopped debug validation in integrations for performance gains.

Bug Fixes

  • Fixed stack trace readability and clarity.
  • Corrected an issue with mouse scroll detection logic.
  • Ensured BodyColor observation is handled accurately.
  • Adjusted clipping state computation for unparented items to return zero.
  • Improved deletion checks and fixed various state issues for reliable functionality.

Refactoring and Code Cleanup

  • Refactored event handling to support reusable components beyond Signal.
  • Improved symbol handling and code readability.
  • Cleaned up minor code inconsistencies and enhanced overall structure for maintainability.

Documentation

  • Updated README.md to include new packages and reflect recent changes.

These changes enhance observability, improve performance, and offer a more structured and maintainable codebase.

📦 Published PR as canary version: Canary Versions

✨ Test out this PR locally via:

npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
npm install @quenty/[email protected]
# or 
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]
yarn add @quenty/[email protected]

Quenty added 30 commits November 6, 2024 14:11
@Quenty Quenty force-pushed the users/quenty/rect branch from ba35cc8 to 71c6a99 Compare November 6, 2024 22:11
@Quenty Quenty changed the title users/quenty/rect feat: Add RxClippedRectUtils.observeClippedRect(gui) Nov 6, 2024
@Quenty Quenty merged commit 78c11f0 into main Nov 6, 2024
3 checks passed
Copy link

github-actions bot commented Nov 6, 2024

🚀 PR was released in @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected], @quenty/[email protected] 🚀

@github-actions github-actions bot added the released This issue/pull request has been released. label Nov 6, 2024
@Quenty Quenty deleted the users/quenty/rect branch January 14, 2025 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released This issue/pull request has been released.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant