24 مستودعات
Event systems that trigger specific functions when internal state reaches predefined thresholds.
Distinct from Event-Driven Hook Systems: Focuses on callbacks triggered by specific state thresholds (e.g., fully open) rather than general system hooks.
Explore 24 awesome GitHub repositories matching software engineering & architecture · State-Driven Callbacks. Refine with filters or upvote what's useful.
MJRefresh is a scroll view interaction library and a set of reusable UI components for implementing pull-to-refresh and infinite scrolling behaviors in mobile user interfaces. It provides customizable refresh indicators and controllers that manage reload callbacks and loading states within scrollable containers. The library allows for the replacement of standard loading indicators with custom images, GIF sequences, and status labels to match specific visual branding. It includes a global configuration store to handle dynamic UI localization and the translation of refresh content across an app
Decouples scroll interaction from data fetching by triggering callbacks when internal state thresholds are reached.
AndroidSwipeLayout is an Android UI library and custom view framework that enables the creation of layouts that reveal hidden action buttons when a user performs a swipe gesture. It functions as a gesture-based UI component that triggers callbacks based on the real-time position of the swipe. The framework is designed to support complex interaction patterns, specifically allowing for the nesting of multiple swipeable components within one another. The library covers mobile gesture interaction and custom view orchestration, providing tools to track swipe states and synchronize UI changes duri
Triggers specific events at predefined thresholds to notify the application when a view is fully open or closed.
react-native-swiper is a cross-platform mobile carousel component that provides a swipeable interface for cycling through content panels. It supports both horizontal and vertical transitions and includes a visual pagination system using customizable indicators like dots or numbers to track the user's position. The component features a lazy-loading mechanism that defers the rendering of off-screen content to reduce memory usage and improve initial load times. It supports infinite looping, automated slide transitions via a timer, and programmatic navigation control to move the slider to specifi
Provides callbacks that trigger when the carousel settles on a specific slide index.
RestKit is an iOS REST API integration framework used to connect Apple platform applications to web services. It centers on RESTful resource modeling, transforming remote API data structures into typed local objects and database entities. The framework provides capabilities for remote data persistence by caching web service resources in a local database to enable offline access. It also handles network data serialization, using pluggable parsers to convert JSON or XML responses into application data models. Additional functionality includes multipart file uploading for sending binary data an
Triggers specific event handlers automatically when the device network reachability status changes.
use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns. It functions as a React gesture hook library and a general utility for tracking screen coordinates and movement patterns to drive interactive component behaviors. The library specializes in capturing complex mouse and touch interactions, including dragging, pinching, swiping, and scrolling. It provides a system for implementing drag and drop functionality and pinch-to-zoom interactions. The tool covers the development of interactive UI components by normalizing diverse input e
Triggers user-defined callback functions when gestures reach specific phases or state thresholds.
Slideout is a touch-gesture UI component and navigation menu designed for mobile web applications. It provides a side panel that slides across the screen to reveal navigation options, utilizing CSS transitions to animate the movement of the viewport. The component manages the expanded or collapsed state of the navigation menu and includes logic to restrict gestures for specific interface elements to prevent interaction conflicts. It employs a system for executing custom logic triggered by menu state transitions and user drag gestures.
Provides callback functions triggered when the menu reaches specific state milestones like open or close.
Swipe is a JavaScript library for creating touch-based sliders and interactive carousels. It provides a gesture-based navigation tool for building swipeable content interfaces that support touch navigation on mobile and web browsers. The library distinguishes itself through the use of GPU-accelerated transitions and animation frames to ensure smooth motion. It implements a continuous looping effect, allowing content to wrap around seamlessly during navigation. The tool covers the synchronization of slide states with touch inputs and the execution of custom functions when transitions complete
Triggers external callbacks only when the internal active index changes after a transition completes.
Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an
Executes registered functions automatically during specific transition phases like entry and exit.
jsmpeg is a JavaScript MPEG1 video decoder and canvas-based video renderer. It functions as a client-side media decoder that processes video frames in JavaScript, rendering them to an HTML5 canvas without relying on native browser video elements. The project provides a low-latency video player capable of receiving binary media data over WebSockets for real-time streaming. It also supports the progressive loading of static video files via Ajax to allow playback to begin before a file is fully downloaded. The system includes capabilities for playback state and event management, allowing for th
Triggers specific callbacks when playback transitions occur to synchronize application logic with the media player state.
Leva هي لوحة تحكم واجهة مستخدم (GUI) لـ React ومحرر معلمات في الوقت الفعلي يُستخدم لمراقبة وتعديل حالة التطبيق والمتغيرات دون تعديل الكود أو إعادة تحميل الصفحة. تعمل كمصحح حالة ديناميكي ومكتبة إدخال قابلة للتوسيع توفر واجهة مرئية لضبط القيم الرقمية والبوليانية والنصية بدقة داخل تطبيق ويب قيد التشغيل. يتميز المشروع بنظام إضافات يسمح بإنشاء مكونات إدخال مخصصة وسلوكيات متخصصة لدعم أنواع بيانات فريدة. ويستخدم استنتاج النوع لتعيين البيانات تلقائياً إلى أداة الواجهة المرئية المناسبة، على الرغم من إمكانية تجاوز هذا التعيين لفرض أنواع إدخال محددة. تدعم الواجهة فئات إدخال متنوعة، بما في ذلك النطاقات الرقمية، والمتجهات، ومنتقيات الألوان، وحقول رفع الوسائط. يمكن تنظيم عناصر التحكم في مجلدات هرمية، وعرضها بشكل مشروط بناءً على قيم أخرى، ومزامنتها مع مخازن بيانات خارجية. كما يراقب النظام دورة حياة التعديل، مما يتيح استدعاءات عند بدء المستخدمين للعمليات وإنهائها لتحسين الأداء للعمليات المكلفة.
Triggers callbacks when a user starts and finishes interacting with a control to optimize performance for expensive operations.
SideMenu هو مكتبة قائمة تنقل iOS وإطار عمل تنقل لتطبيقات الجوال مكتوب بـ Swift. يوفر مكونات قابلة لإعادة الاستخدام لتنفيذ قوائم جانبية منزلقة متحركة وأدراج تنقل داخل تطبيقات iOS. يدعم إطار العمل التنقل بالتمرير المستمر، مما يسمح للمستخدمين بالانتقال بين القوائم على جوانب متقابلة من الشاشة في حركة واحدة. ويتضمن نظام تنسيق لإدارة مثيلات قائمة متعددة عبر مستويات تنقل مختلفة وآلية تكوين عالمية لضمان سلوك ومظهر متسق عبر جميع شاشات التطبيق. تتعامل المكتبة مع ترجمة العرض القائمة على الإيماءات وعرض القائمة المنزلقة مع تأثيرات المنظر (parallax) المتكاملة. كما توفر عمليات استدعاء للرؤية مدفوعة بالحالة لإخطار وحدات تحكم العرض عندما تفتح القوائم أو تغلق.
Provides callbacks that trigger when the menu reaches specific open or closed state thresholds.
مكتبة التمرير السلس (Smooth Scrolling) لـ JavaScript هذه هي أداة واجهة أمامية ووحدة تحكم في حركة إطار العرض مصممة لتحريك الانتقالات إلى روابط الارتساء (Anchor links). تقوم باعتراض نقرات الروابط القياسية لاستبدال القفزات الفورية بحركة انسيابية نحو العناصر المستهدفة. توفر المكتبة أنماط تخفيف حركة قابلة للتكوين وعناصر تحكم في السرعة لإدارة التسارع والتباطؤ. تتضمن آلية لإلغاء الرسوم المتحركة النشطة فوراً وتدعم تشغيل التمرير البرمجي عبر استدعاءات الوظائف المباشرة. تتعامل الأداة مع إزاحات التموضع لمنع إخفاء المحتوى المستهدف خلف الرؤوس الثابتة وتزامن شريط عنوان المتصفح أثناء الانتقالات. كما تتميز بنظام استدعاء (Callback) يعتمد على الأحداث يقوم بتشغيل تأثيرات جانبية عند بدء أو انتهاء أو مقاطعة رسوم التمرير المتحركة.
Executes registered callbacks when scroll animations start or conclude to synchronize interface states.
توفر هذه المكتبة إطار عمل لتعريف آلات الحالة المحدودة (finite state machines) داخل فئات Ruby لإدارة دورات حياة الكائنات المعقدة. تعمل كمحرك سير عمل تصريحي، مما يسمح للمطورين بنمذجة حالات الكائنات، والأحداث، والانتقالات من خلال لغة خاصة بالمجال (DSL) سهلة القراءة. من خلال التكامل المباشر مع طبقات استمرارية قاعدة البيانات، يضمن إطار العمل مزامنة تغييرات الحالة مع سجلات التخزين مع الحفاظ على سلامة البيانات من خلال إدارة المعاملات وقفل الصفوف. تتميز المكتبة بفرض قواعد عمل صارمة من خلال حراس الانتقال المشروط ومنع التعديل المباشر للحالة، مما يضمن حدوث جميع تغييرات دورة الحياة حصرياً من خلال أحداث محددة. وهي تدعم آلات حالة متعددة ومستقلة داخل فئة واحدة عن طريق تعيينها لحقول قاعدة بيانات متميزة، مما يوفر تحكماً معزولاً في دورة الحياة. علاوة على ذلك، تقوم تلقائياً بإنشاء طرق مثيل ديناميكية للاستعلام عن الحالات وتشغيل الأحداث، إلى جانب نطاقات استعلام قاعدة البيانات التي تبسط تصفية الكائنات بناءً على حالتها الحالية. بعيداً عن إدارة دورة الحياة الأساسية، تتضمن المكتبة أدوات لتعريب أسماء الحالات لدعم الواجهات متعددة اللغات وتوفر خطافات (hooks) لتنفيذ منطق مخصص قبل أو بعد الانتقالات. كما تقدم أدوات مطابقة اختبار متخصصة للتحقق من تكوينات آلة الحالة ومنطق الانتقال داخل مجموعات الاختبار الآلية. يتضمن المشروع أدوات لتجميع الكود المصدري والتكوينات في توثيق منظم للمساعدة في مرجع النظام.
Triggers custom logic automatically before or after state transitions to perform lifecycle side effects.
SoundManager2 هو واجهة برمجة تطبيقات صوتية لـ JavaScript ومحرك صوتي عبر المتصفحات مصمم لتوفير تشغيل متسق عبر متصفحات وأجهزة ويب مختلفة. يعمل كغلاف صوتي لـ HTML5 ومدير تشغيل يقوم بتجريد واجهات برمجة التطبيقات الأصلية إلى واجهة موحدة، مما يضمن التوافق من خلال آلية تبديل تلقائية بين الخلفيات الصوتية المتاحة وبرامج الترميز. تتميز المكتبة ببث صوتي RTMP للاتصال الشبكي مع خوادم الوسائط ومحلل بيانات ID3 مدمج لاستخراج عناوين المسارات، ومعلومات الفنان، وعلامات النوع من الملفات الصوتية. كما تنفذ بث الصوت بنطاق البايت (Byte-range) لتحميل الملفات في أجزاء صغيرة، مما يتيح البحث والتشغيل دون تنزيل الملف بالكامل إلى الذاكرة. يغطي النظام قدرات واسعة في معالجة الصوت، بما في ذلك تحليل الإشارة في الوقت الفعلي للأشكال الموجية وطيف التردد، بالإضافة إلى معالجة تأثيرات الصوت لثني النبرة والمعادلة. يدير دورة حياة الموارد الكاملة لكائنات الصوت، ويوفر إدارة حالة التشغيل مع مراقبة قائمة على الأحداث، ويتضمن أدوات للتحقق من دعم تنسيق الصوت وتصحيح أخطاء التهيئة.
Uses a callback system to trigger application logic when audio enters or exits states like loading and completion.
MaterialDateTimePicker هي مكتبة لمكونات واجهة المستخدم المتوافقة مع Material Design لنظام Android، توفر أدوات قياسية لاختيار التواريخ والأوقات والقيم الزمنية المدمجة. تنفذ مجموعة من مربعات الحوار القابلة للتخصيص التي تتبع نظام Material Design لضمان تفاعلات واجهة مستخدم متسقة. تتميز المكتبة بمنتقي تاريخ ووقت مدمج ينسق العرض المتسلسل لمربعات حوار التقويم والساعة. وتوفر قيوداً محددة لكل من اختيار التاريخ والوقت، مما يسمح بتقييد النطاقات القابلة للاختيار، وأيام محددة، وفترات زمنية مطلوبة. تتم معالجة التكوين المرئي من خلال نظام تصميم قائم على السمات، يدعم ألوان التمييز المخصصة، وتبديل الوضع المظلم، وتخصيص نص زر الإجراء. يتم تنفيذ هذه المكونات كأجزاء حوار (dialog fragments) لإدارة دورة الحياة وتراكبات الشاشة داخل تطبيقات Android.
Implements callbacks to notify the host activity when the user selects a specific date or time.
Mixitup هي مكتبة رسوم متحركة لعناصر DOM ومحرك تخطيط شبكة خالٍ من التبعيات. تعمل كأداة تصفية محتوى جانب العميل ووحدة تحكم واجهة مستخدم قائمة على البيانات مصممة لإدارة الانتقال البصري السلس لعناصر HTML أثناء عمليات الإدراج والإزالة والفرز. يتخصص النظام في إنشاء واجهات معرض تفاعلية وتصفية محتوى ديناميكي. يسمح بإعادة تنظيم العناصر باستخدام سمات مخصصة أو تسلسلات عشوائية، مع مزامنة ترتيب ورؤية عناصر الواجهة مع نموذج بيانات أساسي. بعيداً عن التصفية والفرز، تغطي المكتبة إدارة عناصر DOM، بما في ذلك الإدراج والإزالة الديناميكية للأهداف. توفر قدرات لتحريك تغيير حجم الحاوية، وتحديد تأثيرات رسوم متحركة مخصصة، واستخدام تداخلات غير خطية لظهور العناصر.
Triggers custom callback functions at specific stages such as start, end, failure, or busy states.
mescroll is a JavaScript infinite scroll library and mobile web scroll manager designed to implement pull-to-refresh and pull-up-loading patterns. It provides a system for handling touch-based scrolling, managing pagination states, and integrating these behaviors within Vue applications. The library distinguishes itself through specialized support for chat interfaces, enabling reverse-order data loading and the ability to inject data in a reverse direction to simulate message histories. It also includes a state-persistent scroll cache to preserve vertical offsets and list data when users navi
Triggers developer-defined callback functions when scroll offsets reach predefined thresholds for refreshing or loading.
هذا المشروع عبارة عن مكتبة CSS سريعة الاستجابة ومراقب أبعاد العناصر. يوفر polyfill لاستعلامات حاوية CSS، مما يتيح تطبيق الأنماط بناءً على أبعاد عنصر محدد في البيئات التي لا يتوفر فيها دعم المتصفح الأصلي. تراقب المكتبة عرض وارتفاع عناصر DOM المستهدفة في الوقت الفعلي، مما يؤدي إلى تشغيل استدعاءات مخصصة كلما تغيرت الأبعاد. تقوم بتكييف مكونات واجهة المستخدم عن طريق تنفيذ تعديلات التخطيط وتغييرات النمط بناءً على عتبات الحجم المحددة مسبقاً بدلاً من حجم نافذة المتصفح الإجمالية. تدير الأداة هذه التكيفات من خلال عدة آليات، بما في ذلك حقن متغيرات CSS الديناميكية، وتبديل الفئات القائم على العتبة، واستخدام واجهة برمجة تطبيقات ResizeObserver لمزامنة أبعاد العناصر مع أوراق الأنماط.
Executes user-defined JavaScript functions when element dimensions cross specific size thresholds.
Trumbowyg هو محرر WYSIWYG خفيف الوزن بلغة JavaScript يُستخدم لإنشاء وتنسيق محتوى النص الغني وHTML مباشرة داخل متصفح الويب. يعمل كأداة من جانب العميل لتوليد ترميز HTML دلالي وتأليف محتوى الويب. يتميز المشروع ببنية نمطية قائمة على الإضافات تسمح بإضافة أوامر تنسيق جديدة وأزرار شريط أدوات. يوفر واجهة قابلة للتكوين حيث يمكن تخصيص تخطيط شريط الأدوات عبر مصفوفة محددة مسبقاً ويمكن ترجمة التسميات من خلال ملفات الترجمة. يغطي المحرر مجموعة واسعة من قدرات معالجة المحتوى، بما في ذلك تنسيق مظهر النص، وإدارة الجداول، وتضمين الوسائط المتعددة للصور والصوت. يتضمن تنقية HTML مدمجة لتصفية الترميز المنسوخ مقابل قائمة بيضاء من العلامات المسموح بها ويوفر أدوات لإدارة سجل التعديل من خلال وظائف التراجع والإعادة.
Triggers specific callbacks when the editor's internal state changes, such as focus shifts or content modifications.
react-waypoint is a React component and viewport tracking tool that executes functions based on the visibility of a DOM node within a scrollable area. It monitors when elements enter or leave the browser viewport or a specified scroll container to trigger callbacks. The project enables the implementation of infinite scrolling, asset lazy loading, and scroll-triggered animations. It allows for custom scroll container definitions and viewport boundary configurations using offsets to determine exactly when events fire. The tool provides element position tracking and visibility monitoring for bo
Provides callbacks that execute automatically when elements enter or exit the viewport state.