Moving away from Azure Devops #1

Merged
Janus007 merged 113 commits from refac into master 2026-02-03 00:04:27 +01:00
Owner
No description provided.
Janus007 added 113 commits 2026-02-03 00:03:53 +01:00
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
Adjusts grid layout for time axis and calendar container
Simplifies CSS grid positioning and template rows
Removes redundant border styling
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
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
Updates DateService to generate 7-day week dates
Enhances CSS grid layouts with minimum column width
Ensures consistent calendar column sizing across components
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
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
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
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
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
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
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
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
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
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
Introduces support for moving events between columns during drag
Tracks column changes and updates event positioning dynamically
Enables smooth cross-column event dragging experience
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
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
Prevents text selection for calendar-related custom elements to improve user interaction and prevent accidental text highlighting

Enhances UI consistency across calendar components
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
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
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
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
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
Adjusts color mix percentages for better visual contrast
Removes left border from event items

Improves overall event styling consistency
Consolidates and optimizes CSS files for calendar v2
Reduces CSS files from 8 to 4, improving project structure
Minimizes unused CSS rules and improves overall CSS efficiency

Simplifies PurgeCSS configuration and content targeting
Introduces sophisticated event layout algorithm for handling complex scheduling scenarios

Adds support for:
- Grid and stacked event rendering
- Automatic column allocation
- Nested event stacking
- Threshold-based event grouping

Improves visual representation of overlapping and concurrent events
Refactors element positioning during drag operations to:
- Use getBoundingClientRect for precise Y positioning
- Move events to events-layer for consistent dragging
- Ensure proper absolute positioning across different event layouts

Addresses positioning inconsistencies for grouped and stacked events
Introduces SwpEvent class to centralize event element data and calculations

Improves drag and resize event handling by extracting common logic
Simplifies calculation of event start/end times from element positions
Enhances type safety and reduces code complexity in event managers

Removes direct pixel/minute calculations from multiple managers
Extends calendar rendering to support all-day events in header drawer

Implements rendering logic for all-day events in header drawer:
- Fetches events for visible date range
- Filters and creates header items for all-day events
- Dynamically positions events with color classes
- Expands header drawer when events are present

Enhances event persistence with header drop detection
Enhances header drawer rendering to handle multi-day events
- Calculates column span for events across multiple days
- Adds support for events spanning beyond visible date range
- Updates event data attributes to include start and end dates
Improves header drawer rendering to support multi-row event stacking

Adds row-based layout algorithm for all-day events
Enables flexible height expansion based on event count
Provides more robust event placement across visible date range
Implements dynamic item positioning and layout recalculation for header drawer

- Adds ISO date tracking for header items
- Introduces dynamic row allocation algorithm
- Updates drawer expansion logic during drag operations
- Calculates and adjusts drawer height based on item tracks
Adds support for dragging events between header and grid views
Improves drag-and-drop state management and event persistence
Enables converting all-day events to timed events when dropped in grid

Refactors drag handling to support more flexible event interactions
Enhances drag leave logic for more precise event tracking
- Adds conditional cleanup for grid-to-header drag events
- Updates drag state management during column transitions
- Prevents premature ghost element removal
Refactors column identification with a new buildColumnKey method to support flexible date and resource tracking

Replaces separate dateKey and resourceId handling with a unified columnKey approach
Improves column rendering and event management with more consistent key generation
Simplifies cross-component event tracking and column lookups
Introduces more robust column key management across renderers and drag/resize operations

Decouples column key parsing from date extraction
Simplifies event positioning logic
Improves multi-resource view compatibility
Introduces flexible key-based filtering for calendar events across different view configurations

Adds new FilterTemplate class to:
- Define event matching rules based on view configuration
- Support multi-level grouping (team/resource/date)
- Handle dynamic key generation for columns and events

Enhances view configuration with explicit id properties and derived fields
Enhances calendar rendering with dynamic parent-child relationships between entities

Introduces EntityResolver for dot-notation references
Supports belongsTo configuration in grouping
Implements flexible filtering across hierarchical entities

Improves rendering flexibility for complex organizational structures
Introduces department-level grouping and rendering in the calendar view

Extends the application to support:
- Department-based resource filtering
- Dynamic department header rendering
- Mock department data infrastructure

Enables more granular organizational views
Adds horizontal scrolling synchronization for header drawer
Ensures consistent horizontal scroll positioning for header components
Improves CSS grid configuration to ensure proper scrolling and content display

Adds grid template columns and width constraints for better responsive behavior
Ensures consistent overflow and layout management across viewport components
Enhances column key retrieval to use consistent key format
Adds null check for filter template to prevent potential errors
Uses buildKeyFromColumn() for more robust key generation
Introduces settings service for managing tenant-specific calendar configurations

Enables dynamic workweek presets with configurable work days
Improves view switching with enhanced UI components
Adds flexible calendar rendering based on tenant settings

Extends DateService to support workweek date generation
Introduces hideHeader option for date grouping configurations
Enables suppressing date headers in specific views like day view
Improves calendar view flexibility by conditionally rendering headers
Updates resource selection to dynamically use selected resource IDs
Improves selector visibility logic to show in day and picker views
Refactors calendar component initialization to a single, encapsulated entry point

Simplifies host application integration by:
- Centralizing complex setup in CalendarApp
- Implementing command-driven rendering via custom events
- Providing flexible, zero-knowledge calendar component
- Maintaining existing ViewConfig contract
Decouples view configuration from DemoApp logic by:
- Introducing ViewConfigService and MockViewConfigRepository
- Moving view configuration to centralized JSON data
- Simplifying DemoApp rendering process

Improves separation of concerns and makes view configurations more maintainable
Introduces CalendarApp as a reusable core component to centralize calendar rendering and navigation logic

Separates concerns between core application logic and demo implementation
Improves modularity and extensibility of calendar system
Decouples calendar navigation from direct DOM events
Adds new event constants for calendar navigation commands
Updates CalendarApp to handle navigation via event bus
Simplifies navigation logic and improves event-driven architecture
Migrates calendar commands from DOM events to EventBus for better decoupling
Adds support for workweek change and simplified rendering commands
Removes direction parameter from render method for cleaner implementation
Enhances calendar view with dynamic resource selection
Enables users to filter and customize calendar views by resources
Introduces new event for view updates and dynamic rendering

Supports flexible calendar view configuration
Separates calendar-specific events into a dedicated CalendarEvents constant
Removes calendar command events from CoreEvents
Updates imports and event bus references across related files
Restructures tenant settings to use individual records instead of a single document

Decouples settings sections into separate typed interfaces with unique IDs
Modifies data loading and service methods to support new record-based settings
Updates mock data and repository to align with new settings structure
Consolidates V2 codebase into main project directory
Updates build script to support simplified entry points
Removes redundant files and cleans up project organization

Simplifies module imports and entry points for calendar application
Improves date navigation by introducing dynamic period-based offsets for calendar views

Replaces week-based navigation with more flexible day offsets that support:
- Single-day and multi-day navigation
- Configurable work week presets with different period lengths
- More granular control over date range selection

Adds support for dynamic navigation periods through workweek preset configuration
Updates NavigationAnimator to animate header drawer during slide transitions

Adds optional header drawer animation to improve UI consistency when navigating between views
Creates an interactive HTML-based checkout overlay with dynamic cart functionality

Implements features:
- Product catalog with search capability
- Add/remove cart items
- Total price calculation
- Responsive design with modern UI components
Creates a responsive and interactive checkout prototype demonstrating a comprehensive payment flow

Includes:
- Multi-method payment selection
- Dynamic cart and total calculation
- Intuitive user interface for transaction management
Adds interactive cart item editing with expandable sections
Introduces dynamic discount calculation and display
Implements giftcard lookup and balance tracking functionality

Improves user experience with smooth transitions and more flexible item management
Applies JetBrains Mono font across key components
Updates color scheme to use consistent teal palette
Adjusts font sizes and weights for improved readability

Enhances visual design tokens and styling for drawer components
Adds new customer panel with detailed profile and revenue visualization
Implements journal panel with historical entries and interaction
Introduces new SVG icons for improved user interface

Adds @sevenweirdpeople/swp-charting for customer revenue chart
Introduces a flexible 'Add Note' panel for customer journals with:
- Configurable note tags
- Visibility and marking options
- Interactive UI for note creation

Improves user experience for salon staff note management
Introduces new analysis functionality for hair and scalp tracking
Adds dynamic preview, form interactions, and styling for analysis entries
Enables users to log detailed hair and scalp condition assessments
Implements comprehensive customer management interface with:
- Dynamic table with sorting and search capabilities
- Responsive customer card panel with detailed profile information
- Interactive filtering and search functionality
- Modern, clean UI design with custom web components

Enhances user experience for customer data exploration and management
Enhances UI/UX with more dynamic toggle sliders
Improves tag management and interaction
Updates marketing consent toggles with new design

Adds more interactive customer information display
Introduces comprehensive styling and interaction for:
- Journal mini-tabs and entry layouts
- New activity timeline and filtering
- Responsive and visually enhanced UI components

Improves customer detail page with modern design patterns
Adds drag and drop interaction for rearranging cards on the customer and service detail pages

Improves user experience by allowing flexible card positioning
Implements dynamic drop indicators and column management
Supports intuitive card movement between columns
Improves employee selection with checkbox interaction
Adds visual refinements to employee and availability sections
Updates styling for employee levels and selection states
Removes unnecessary consent form toggle
Enhances schedule UI with closed day feature
- Adds visual styling for closed days
- Implements interactive day header toggling
- Introduces closed day state for schedule columns

Supports better schedule management for holidays and days off
Updates @sevenweirdpeople/swp-charting package to latest version (0.1.7)

Adds comprehensive employee details page with multiple tabs and interactive components including:
- Detailed employee profile information
- Work schedule and availability tracking
- Services and specialties management
- Salary and performance statistics

Integrates advanced charting capabilities for visualizing employee data
Introduces advanced drag-and-drop services selection interface with dynamic filtering and editing capabilities

Enables employees to:
- Customize service list with multi-select and drag functionality
- Search and filter available services
- Override individual service prices and durations
- Manage services across expandable panel

Supports responsive and interactive service management workflow
Adds interactive price and duration adjustment for services
Introduces visual indicators for overridden service values
Improves editing experience with responsive and intuitive controls

Implements granular service modifications with strikethrough and highlight effects
Updates package dependencies and charts for employee performance visualization

Includes:
- Upgrade to latest charting library version
- New chart displaying revenue and utilization metrics
- Forecast and actual data visualization with dual axis support
Replaces default system font with locally hosted Poppins font
Adds @font-face definitions for multiple font weights
Updates global font-family across various HTML pages

Improves typography consistency and performance by using local font files
Creates a detailed HTML prototype for cash reconciliation process
Includes comprehensive UI components for tracking daily cash operations
Implements interactive calculations and user input validation for cash counting
Refactors the cash reconciliation list view with improved UI and UX

Adds period display and filtering capabilities
Introduces table with enhanced status and period tracking
Implements SAF-T export functionality for selected reconciliations
Creates two new HTML prototypes for product management interface:
- Detailed product view with comprehensive management features
- Product listing page with search and filtering capabilities

Implements responsive design with custom web components
Introduces system and manual dark mode toggles across multiple pages
Implements consistent theming with CSS variables
Enhances user experience with responsive layout adjustments
Develops a responsive and feature-rich HTML layout with custom styling for the Salon OS application

Includes key UI components:
- Side navigation menu
- Top bar with search and profile actions
- Responsive theme switching
- Placeholder content for dashboard
- Detailed CSS design system with light/dark modes

Provides foundational structure for application interface
Updates currency representation consistently to use 'DKK' instead of 'kr'
Standardizes number formatting across product, order, and pricing displays

Improves localization and visual consistency
Adds comprehensive dashboard HTML with responsive design and interactive elements

Implements:
- Dark/light mode color variables
- Responsive grid layout
- Interactive booking and notification sections
- Dynamic time and status tracking
- Custom web components for dashboard functionality
Moves inline styles to dedicated dashboard.css
Updates HTML to reference external stylesheet
Improves code organization and maintainability

Relates to refac branch
Enhances message and email previews by adding hover-based variable highlighting

Implements interactive feature that:
- Adds data attributes to preview elements
- Creates hover effects for variables
- Provides visual feedback when selecting message variables
Enhances booking experience with multi-step interactive interface
Adds responsive design and dynamic step navigation
Improves user interaction with floating next button and sidebar updates

Implements comprehensive booking flow with step-by-step progression
Introduces new waitlist functionality to allow customers to register for unavailable time slots

Includes:
- Waitlist trigger and section in booking interface
- Ability to select preferred time periods
- Date and optional message input
- Success overlay for waitlist submission

Updates salon address in multiple files
Introduces comprehensive product creation interface with dynamic barcode scanning functionality

Implements:
- Responsive product creation form
- Interactive barcode scanner with multiple states
- Mock product database for scanning
- Dynamic price and margin calculation
- Flexible UI components for product details
Includes example EAN codes for testing product scanning functionality
Enhances UI with debug section for easier testing of scanner feature

Improves development and testing experience
Implements AI-driven time slot selection algorithm for booking system

Adds intelligent slot scoring mechanism that considers:
- Minimizing calendar gaps
- Optimizing employee time utilization
- Providing recommended time slots for customers

Introduces new AI features across booking interfaces to improve scheduling efficiency
Introduces new HR section in employee profile with documents, certifications, and courses management

Adds initial website builder interface with block-based design system and theming capabilities

Enhances settings and indstillinger pages with new module configurations
Implements a new waitlist component with mini card, drawer, and interactive functionality

Introduces:
- Waitlist mini card with badge
- Drawer overlay with detailed waitlist entries
- Responsive CSS for various waitlist UI elements
- Interactive JavaScript for opening/closing drawer and handling actions
Implements client-side barcode scanning functionality with:
- Scan button and input handling
- Mock product database for EAN code lookup
- Dynamic cart item addition
- Visual feedback for scanning states

Enhances product checkout experience with quick product entry
Cleans up redundant HTML file from project directory

Eliminates an unused proof-of-concept booking page template
Updates design system documentation with comprehensive component overview
Enhances UI layout across multiple pages with consistent styling and new components
Adds support for charts, pagination, and responsive design elements

Improves overall system documentation and visual consistency
Refactors project structure to support modular, feature-driven development

Introduces comprehensive language localization support
Adds menu management with role-based access control
Implements dynamic sidebar and theme switching capabilities

Enhances project scalability and maintainability
Deletes .NET server-side project structure and replaces it with a static HTML sales page for Plantempus

Removes server-side components including:
- Language and localization services
- Menu and user role models
- Controllers and routing configuration

Adds comprehensive marketing landing page with responsive design and interactive sections
Adds core calendar package components including:
- Base services for events, resources, and settings
- Calendar app and orchestrator
- Build and bundling configuration
- IndexedDB storage setup

Prepares foundational architecture for calendar functionality
Introduces detailed documentation for calendar library, covering:
- Core features and architecture
- Installation and setup guide
- Event system reference
- Types and configuration options
- Extensibility and utilities

Prepares for initial library release with thorough documentation
Janus007 merged commit 2d179f41bf into master 2026-02-03 00:04:27 +01:00
Author
Owner

Fine and dandy

Fine and dandy
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Janus007/Calendar#1
No description provided.