Commit graph

414 commits

Author SHA1 Message Date
Janus C. H. Knudsen
67b59e0993 Refines calendar event color and hover styling
Adjusts color mix percentages for better visual contrast
Removes left border from event items

Improves overall event styling consistency
2025-12-11 00:03:56 +01:00
Janus C. H. Knudsen
af6283d50d wip 2025-12-11 00:00:17 +01:00
Janus C. H. Knudsen
e145bc7c70 Refactors header grid layout with CSS subgrid
Updates header and viewport components to use CSS subgrid for more flexible layout

Improves grid structure by:
- Replacing fixed grid columns with subgrid
- Adjusting scrollbar and overflow properties
- Simplifying header and track element positioning
2025-12-10 23:55:46 +01:00
Janus C. H. Knudsen
679580702b Enhances header drawer behavior during drag operations
Adds expanded state tracking for header drawer during drag
Ensures drawer remains in the correct expanded/collapsed state based on initial condition

Improves user experience by maintaining consistent drawer state
2025-12-10 23:31:07 +01:00
Janus C. H. Knudsen
6723658fd9 Adds header drawer and event drag interactions
Introduces HeaderDrawerRenderer and HeaderDrawerLayoutEngine to support dragging events into an all-day header drawer

Enables dynamic event placement and conversion between timed and all-day events through new drag interactions
Implements flexible layout calculation for header items with column and row management

Extends DragDropManager to handle header zone interactions
Adds new event types for header drag events
2025-12-10 23:11:11 +01:00
Janus C. H. Knudsen
026d83eb32 Adds event resizing functionality to calendar
Introduces ResizeManager to handle dynamic event duration updates

Implements smooth height animation and grid-based snapping
Adds resize event tracking and timestamp display during resizing
Integrates resize handle creation and pointer event management
2025-12-10 22:16:40 +01:00
Janus C. H. Knudsen
cacd312936 Adds event drag timestamp updating during drag
Enhances event drag interactions by dynamically updating timestamp display

Implements grid-snapped time calculation during event dragging
Updates event time display with accurate start and end times
Converts minutes to formatted time range using existing date services
2025-12-10 21:49:49 +01:00
Janus C. H. Knudsen
ae48ff38d0 Adds user-select: none to calendar elements
Prevents text selection for calendar-related custom elements to improve user interaction and prevent accidental text highlighting

Enhances UI consistency across calendar components
2025-12-10 20:39:21 +01:00
Janus C. H. Knudsen
4e47df2e5c Refactor edge scroll management for drag operations
Simplifies EdgeScrollManager implementation with more focused and efficient auto-scrolling logic

Removes unnecessary complexity and scroll tracking
Optimizes scroll velocity calculation and boundary detection
Improves performance by using requestAnimationFrame for smooth scrolling
2025-12-10 19:22:13 +01:00
Janus C. H. Knudsen
10d8a444d8 Adds edge scroll functionality for drag interactions
Implements EdgeScrollManager to enable automatic scrolling during drag operations

Introduces new scroll management system that:
- Detects mouse proximity to container edges
- Provides variable scroll speed based on mouse position
- Compensates dragged elements during scrolling

Enhances drag-and-drop user experience with smooth scrolling
2025-12-10 19:12:38 +01:00
Janus C. H. Knudsen
8b95f2735f Adds drag column change event handling
Introduces support for moving events between columns during drag
Tracks column changes and updates event positioning dynamically
Enables smooth cross-column event dragging experience
2025-12-10 17:18:37 +01:00
Janus C. H. Knudsen
159b023f60 Adds drag-drop support for calendar events
Introduces comprehensive drag-drop functionality for calendar events
- Implements DragDropManager to handle event dragging
- Adds new CoreEvents for drag-drop interactions
- Supports smooth interpolation and grid snapping
- Provides flexible event handling with ghost element strategy
2025-12-10 17:07:03 +01:00
Janus C. H. Knudsen
a2b95515fd Adds resource scheduling and unavailability tracking
Introduces comprehensive schedule management for resources:
- Adds DateService with advanced time and date utilities
- Implements ResourceScheduleService for managing work hours
- Creates ScheduleRenderer to visualize unavailable time zones
- Extends resource model to support default weekly schedules

Enables granular tracking of resource availability and working hours
2025-12-10 00:27:19 +01:00
Janus C. H. Knudsen
400de8c9d5 Refactors renderer interfaces and implementations
Converts renderer interfaces to use 'I' prefix for better type clarity
Adds async support for rendering pipeline
Updates resource rendering to use ResourceService
Removes hardcoded resource data

Improves type safety and flexibility of rendering system
2025-12-09 23:16:13 +01:00
Janus C. H. Knudsen
7f6279a6f3 Enhance calendar view with resource-aware rendering
Adds support for filtering events and rendering across multiple views with resource-specific context

Improves event and date rendering to handle resource-based filtering
Introduces day view and extends existing calendar infrastructure to support more flexible view configurations
2025-12-09 22:31:28 +01:00
Janus C. H. Knudsen
6fc9be9534 wip 2025-12-09 21:32:30 +01:00
Janus C. H. Knudsen
f39e38986c wip 2025-12-09 21:24:17 +01:00
Janus C. H. Knudsen
016a504431 wip 2025-12-09 21:07:35 +01:00
Janus C. H. Knudsen
2ec4b93fa5 wip 2025-12-09 21:02:44 +01:00
Janus C. H. Knudsen
c16e432b29 Refactors rendering pipeline with flexible data handling
Removes hardcoded data from render context, allowing more dynamic renderer implementation

Changes include:
- Decoupling data retrieval from render context
- Simplifying renderer interface
- Supporting more flexible data traversal strategies

Prepares for more modular and adaptable rendering approach
2025-12-09 15:24:19 +01:00
Janus C. H. Knudsen
a3a1b9a421 Refactor calendar rendering with RenderBuilder
Simplifies calendar rendering process by introducing a new RenderBuilder pattern

Improves flexibility and modularity of grouping renderer chain
Decouples rendering logic from specific grouping types
Enables dynamic column span calculation and recursive rendering

Reduces complexity in CalendarOrchestrator
Enhances type safety and simplifies renderer interfaces
2025-12-09 00:51:41 +01:00
Janus C. H. Knudsen
27561750f8 Refactor CalendarOrchestrator with ts-linq-light
Replaces native array methods with ts-linq-light for improved functional programming
Simplifies data transformation and grouping logic
Enhances code readability and introduces more declarative data manipulation
2025-12-08 22:26:38 +01:00
Janus C. H. Knudsen
23fcaa9985 wip 2025-12-08 20:05:32 +01:00
Janus C. H. Knudsen
e581039b62 Refactors calendar data management and sync infrastructure
Introduces comprehensive data management system for calendar V2
- Adds IndexedDB storage with pluggable entity services
- Implements EventBus for decoupled event communication
- Creates data seeding mechanism for initial application setup
- Establishes sync and repository abstractions for flexible data handling
2025-12-08 00:26:16 +01:00
Janus C. H. Knudsen
dee977d4df Refactors header and scroll management logic
Updates ScrollManager to dynamically sync header spacer height using ResizeObserver

Removes explicit spacer animation from HeaderDrawerManager
Simplifies header and scroll interaction by moving height synchronization logic to ScrollManager
2025-12-07 23:25:02 +01:00
Janus C. H. Knudsen
899c600e44 Refactor calendar UI and time range configuration
Updates time axis and calendar to focus on 6-18 hour range
Modifies CSS to support nested selectors and time range configuration
Enhances DateService to support flexible week date generation
2025-12-07 21:54:12 +01:00
Janus C. H. Knudsen
e2c79c067f Extend calendar week view to 7 days
Updates DateService to generate 7-day week dates
Enhances CSS grid layouts with minimum column width
Ensures consistent calendar column sizing across components
2025-12-07 21:08:05 +01:00
Janus C. H. Knudsen
542b150888 wip 2025-12-07 19:14:30 +01:00
Janus C. H. Knudsen
9d011ff305 wip 2025-12-07 17:44:52 +01:00
Janus C. H. Knudsen
70e505526f Adds scroll synchronization for calendar view
Introduces ScrollManager to synchronize time axis and header scrolling

Improves user experience by keeping time axis and header aligned during scrolling
Enables dynamic vertical and horizontal scroll tracking for calendar components
2025-12-07 15:08:23 +01:00
Janus C. H. Knudsen
ed5b2beb4c wip 2025-12-07 14:48:20 +01:00
Janus C. H. Knudsen
a0c0ef9e8d Refactor calendar V2 core with DI and new features
Introduces dependency injection container and composition root
Adds core services like DateService and NavigationAnimator
Simplifies CalendarOrchestrator with improved store handling
Implements mock stores and demo application for V2 calendar
2025-12-07 14:31:16 +01:00
Janus C. H. Knudsen
1ad7d10266 Refactors calendar layout grid styles
Adjusts grid layout for time axis and calendar container
Simplifies CSS grid positioning and template rows
Removes redundant border styling
2025-12-06 10:52:20 +01:00
Janus C. H. Knudsen
cce4b77c96 wip 2025-12-06 01:25:03 +01:00
Janus C. H. Knudsen
b3f47e93e8 New renders+css 2025-12-06 01:22:04 +01:00
Janus C. H. Knudsen
73e284660f Adds EventId type for robust event ID handling
Introduces type-safe EventId with centralized normalization logic for clone and standard event IDs

Refactors event ID management across multiple components to use consistent ID transformation methods
Improves type safety and reduces potential ID-related bugs in drag-and-drop and event rendering
2025-12-03 14:43:25 +01:00
Janus C. H. Knudsen
d53af317bb Removes redundant event visibility filtering
Eliminates unnecessary event visibility check in layout engine

Assumes events are pre-filtered before reaching the layout calculation, simplifying the processing logic and reducing computational overhead

Removes local `isEventVisible` method and directly processes all input events
2025-11-26 14:42:42 +01:00
Janus C. H. Knudsen
be551f88e5 Enhances event color styling with flexible metadata system
Introduces a new color customization approach for calendar events using CSS custom properties and metadata

- Adds support for dynamic color assignment via event metadata
- Implements a flexible color utility class system
- Replaces hardcoded event type colors with a more generic color-mix() approach
- Provides broader color palette for event styling
2025-11-25 23:48:30 +01:00
Janus C. H. Knudsen
d8b9f6dabd Refactor calendar datasource and event management
Enhances calendar flexibility by introducing group-based column spanning and improving cross-mode event handling

Adds support for:
- Dynamic column grouping in date and resource modes
- Consistent event drag-and-drop across different calendar views
- More robust all-day event layout calculations

Improves event management logic to handle resource and date mode transitions more elegantly
2025-11-25 19:04:06 +01:00
Janus C. H. Knudsen
17909696ed Refactor event rendering with column-based event management
Improves event rendering by integrating event filtering directly into column data sources

Key changes:
- Moves event filtering responsibility to IColumnDataSource
- Simplifies event rendering pipeline by pre-filtering events per column
- Supports both date and resource-based calendar modes
- Enhances drag and drop event update mechanism

Optimizes calendar rendering performance and flexibility
2025-11-22 23:38:52 +01:00
Janus C. H. Knudsen
eeaeddeef8 Adds resource-based calendar view mode
Introduces new ResourceColumnDataSource and ResourceHeaderRenderer to support column rendering by resources instead of dates

Enables dynamic calendar mode switching between date and resource views
Updates core managers and services to support async column retrieval
Refactors data source interfaces to use Promise-based methods

Improves calendar flexibility and resource management capabilities
2025-11-22 19:42:12 +01:00
Janus C. H. Knudsen
a7d365b186 Implement event-driven audit trail sync architecture
Redesigns synchronization infrastructure using audit-based approach

- Replaces disconnected sync logic with event-driven architecture
- Adds AuditService to log entity changes with JSON diffs
- Implements chained events for reliable sync process
- Fixes EventBus injection and event emission in services
- Removes unused OperationQueue

Provides comprehensive audit trail for entity changes and backend synchronization
2025-11-22 11:52:56 +01:00
Janus C. H. Knudsen
185330402e Refactor event payload types and event handling
Extracts common event payload interfaces for entity saved, deleted, and audit logged events

Improves type safety and reduces code duplication by centralizing event payload definitions
2025-11-21 23:33:48 +01:00
Janus C. H. Knudsen
9ea98e3a04 Adds audit logging and sync management infrastructure
Introduces comprehensive audit trail system with:
- AuditService to track entity changes
- SyncManager for background sync of audit entries
- New CoreEvents for entity and audit tracking
- Simplified sync architecture with event-driven approach

Prepares system for enhanced compliance and change tracking
2025-11-21 23:23:04 +01:00
Janus C. H. Knudsen
dcd76836bd Refactors repository layer and IndexedDB architecture
Eliminates redundant repository abstraction layer by directly using EntityService methods

Implements key improvements:
- Removes unnecessary repository wrappers
- Introduces polymorphic DataSeeder for mock data loading
- Renames IndexedDBService to IndexedDBContext
- Fixes database injection timing with lazy access pattern
- Simplifies EventManager to use services directly

Reduces code complexity and improves separation of concerns
2025-11-20 21:45:09 +01:00
Janus C. H. Knudsen
5648c7c304 Adds comprehensive mock data repositories and seeding infrastructure
Implements polymorphic data seeding mechanism for initial application setup

- Adds Mock repositories for Event, Booking, Customer, and Resource entities
- Creates DataSeeder to automatically populate IndexedDB from JSON sources
- Enhances index.ts initialization process with data seeding step
- Adds mock JSON data files for comprehensive test data

Improves offline-first and development testing capabilities
2025-11-20 15:25:38 +01:00
Janus C. H. Knudsen
871f5c5682 Upgrades @novadi/core and refactors dependency registration
Updates package dependencies to latest version of @novadi/core

Simplifies dependency and service registration by removing automatic array resolution of stores, API repositories, and entity services

Adds DateColumnDataSource as a new column data source implementation
2025-11-18 22:34:12 +01:00
Janus C. H. Knudsen
cd2466426b Adds mock events data for November 2025
Expands mock events JSON with detailed schedule entries
Includes multiple event types: work, meetings, breaks, and all-day events
Provides realistic sample data covering November 17-23, 2025
2025-11-18 22:34:04 +01:00
Janus C. H. Knudsen
9d270217bd Refactor data source and configuration management
Abstracts column data source with interface
Updates managers to use configuration-driven view and date
Decouples datasource creation from individual managers

Improves flexibility and dependency injection for calendar components
2025-11-18 22:33:48 +01:00
Janus C. H. Knudsen
0f10d44037 Refactors date handling in calendar components
Updates event and column date parsing to use identifier instead of data attribute

Improves date handling consistency across multiple calendar managers and renderers
Replaces direct Date casting with dateService.parseISO() for more robust date parsing
2025-11-18 16:43:50 +01:00