feat: implement DeesDashboardgrid component with drag-and-drop functionality
- Added DeesDashboardgrid class for managing a grid of dashboard widgets. - Implemented widget dragging and resizing capabilities. - Introduced layout management with collision detection and margin resolution. - Created styles for grid layout, widget appearance, and animations. - Added support for customizable margins, cell height, and grid lines. - Included methods for adding, removing, and updating widgets dynamically. - Implemented context menu for widget actions and keyboard navigation support. - Established a responsive design with breakpoint handling for different layouts.
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
# WYSIWYG Block Cleanup Status
|
||||
|
||||
## Overview
|
||||
This document tracks the cleanup of `dees-wysiwyg-block.ts` after migrating all block types to the new block handler architecture.
|
||||
|
||||
## Completed ✅
|
||||
All cleanup tasks have been successfully completed on 2025-06-26.
|
||||
|
||||
## Cleanup Tasks
|
||||
|
||||
### 1. ✅ Remove Block-Specific Styles (lines 101-219)
|
||||
- [x] Remove `.block.heading-1/2/3` styles → Now in `heading.block.ts`
|
||||
- [x] Remove `.block.quote` styles → Now in `quote.block.ts`
|
||||
- [x] Remove `.block.list` styles → Now in `list.block.ts`
|
||||
- [x] Remove `.block.paragraph` styles → Now in `paragraph.block.ts`
|
||||
|
||||
### 2. ✅ Remove Code Block Specific Logic
|
||||
- [x] Remove code block rendering in `renderBlockContent()` (lines 508-521)
|
||||
- [x] Remove all `type === 'code'` conditional branches
|
||||
- [x] Simplify element selection to not special-case code blocks
|
||||
|
||||
### 3. ✅ Remove List Block Specific Logic
|
||||
- [x] Remove `focusListItem()` method (lines 814-821)
|
||||
- [x] Remove list-specific handling in `getContent()` (lines 732-734)
|
||||
- [x] Remove list-specific handling in `setContent()` (lines 764-765)
|
||||
- [x] Remove list content rendering in `firstUpdated()` (line 479)
|
||||
|
||||
### 4. ✅ Remove getPlaceholder() Method
|
||||
- [x] Remove entire method (lines 538-553)
|
||||
- [x] Update renderBlockContent() to not use placeholders
|
||||
|
||||
### 5. ✅ Clean Up Excessive Empty Lines
|
||||
- [x] Remove consecutive blank lines throughout the file
|
||||
|
||||
### 6. ✅ Centralize nonEditableTypes
|
||||
- [x] Create a single source of truth for non-editable block types
|
||||
- [x] Remove duplicate arrays
|
||||
|
||||
### 7. ✅ Simplify Handler Delegation
|
||||
- [x] Keep handler delegation pattern but ensure consistency
|
||||
|
||||
### 8. ✅ Remove Unused Properties (if confirmed unused)
|
||||
- [x] Keep `contentInitialized` - still used for tracking
|
||||
- [x] Keep `blockElement` - used for caching
|
||||
- [x] Keep cursor tracking properties - used for selection
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
### Block Types Now Fully Handled by Handlers:
|
||||
1. **Text blocks**: paragraph, heading-1/2/3, quote, code, list
|
||||
2. **Media blocks**: image, youtube, attachment
|
||||
3. **Content blocks**: divider, markdown, html
|
||||
|
||||
### Remaining Responsibilities of dees-wysiwyg-block.ts:
|
||||
1. Shadow DOM container management
|
||||
2. Handler delegation for all operations
|
||||
3. Generic block wrapper styles
|
||||
4. Selection/cursor tracking
|
||||
5. Event listener setup (until fully delegated to handlers)
|
||||
|
||||
## Future Improvements
|
||||
- Consider moving all event handling to block handlers
|
||||
- Simplify the handler delegation pattern
|
||||
- Move generic block styles to a shared location
|
||||
- Consider removing the need for special-casing any block types
|
@@ -1,87 +0,0 @@
|
||||
# WYSIWYG Block Migration Status
|
||||
|
||||
## Overview
|
||||
This document tracks the progress of migrating all WYSIWYG blocks to the new block handler architecture.
|
||||
|
||||
## Migration Progress
|
||||
|
||||
### ✅ Phase 1: Architecture Foundation
|
||||
- Created block handler base classes and interfaces
|
||||
- Created block registry system
|
||||
- Created common block styles and utilities
|
||||
|
||||
### ✅ Phase 2: Divider Block
|
||||
- Simple non-editable block as proof of concept
|
||||
- See `phase2-summary.md` for details
|
||||
|
||||
### ✅ Phase 3: Paragraph Block
|
||||
- First text block with full editing capabilities
|
||||
- Established patterns for text selection, cursor tracking, and content splitting
|
||||
- See commit history for implementation details
|
||||
|
||||
### ✅ Phase 4: Heading Blocks
|
||||
- All three heading levels (h1, h2, h3) using unified handler
|
||||
- See `phase4-summary.md` for details
|
||||
|
||||
### ✅ Phase 5: Other Text Blocks
|
||||
- [x] Quote block - Completed with custom styling
|
||||
- [x] Code block - Completed with syntax highlighting, line numbers, and copy button
|
||||
- [x] List block - Completed with bullet and numbered list support
|
||||
|
||||
### 🔄 Phase 6: Media Blocks (In Progress)
|
||||
- [x] Image block - Completed with click upload, drag-drop, and base64 encoding
|
||||
- [x] YouTube block - Completed with URL parsing and video embedding
|
||||
- [ ] Attachment block
|
||||
|
||||
### 📋 Phase 7: Content Blocks (Planned)
|
||||
- [ ] Markdown block
|
||||
- [ ] HTML block
|
||||
|
||||
## Block Handler Status
|
||||
|
||||
| Block Type | Handler Created | Registered | Tested | Notes |
|
||||
|------------|----------------|------------|---------|-------|
|
||||
| divider | ✅ | ✅ | ✅ | Complete |
|
||||
| paragraph | ✅ | ✅ | ✅ | Complete |
|
||||
| heading-1 | ✅ | ✅ | ✅ | Using HeadingBlockHandler |
|
||||
| heading-2 | ✅ | ✅ | ✅ | Using HeadingBlockHandler |
|
||||
| heading-3 | ✅ | ✅ | ✅ | Using HeadingBlockHandler |
|
||||
| quote | ✅ | ✅ | ✅ | Complete with custom styling |
|
||||
| code | ✅ | ✅ | ✅ | Complete with highlighting, line numbers, copy |
|
||||
| list | ✅ | ✅ | ✅ | Complete with bullet/numbered support |
|
||||
| image | ✅ | ✅ | ✅ | Complete with upload, drag-drop support |
|
||||
| youtube | ✅ | ✅ | ✅ | Complete with URL parsing, video embedding |
|
||||
| attachment | ❌ | ❌ | ❌ | Phase 6 |
|
||||
| markdown | ❌ | ❌ | ❌ | Phase 7 |
|
||||
| html | ❌ | ❌ | ❌ | Phase 7 |
|
||||
|
||||
## Files Modified During Migration
|
||||
|
||||
### Core Architecture Files
|
||||
- `blocks/block.base.ts` - Base handler interface and class
|
||||
- `blocks/block.registry.ts` - Registry for handlers
|
||||
- `blocks/block.styles.ts` - Common styles
|
||||
- `blocks/index.ts` - Main exports
|
||||
- `wysiwyg.blockregistration.ts` - Registration of all handlers
|
||||
|
||||
### Handler Files Created
|
||||
- `blocks/content/divider.block.ts`
|
||||
- `blocks/text/paragraph.block.ts`
|
||||
- `blocks/text/heading.block.ts`
|
||||
- `blocks/text/quote.block.ts`
|
||||
- `blocks/text/code.block.ts`
|
||||
- `blocks/text/list.block.ts`
|
||||
- `blocks/media/image.block.ts`
|
||||
- `blocks/media/youtube.block.ts`
|
||||
|
||||
### Main Component Updates
|
||||
- `dees-wysiwyg-block.ts` - Updated to use registry pattern
|
||||
|
||||
## Next Steps
|
||||
1. Begin Phase 6: Media blocks migration
|
||||
- Start with image block (most common media type)
|
||||
- Implement YouTube block for video embedding
|
||||
- Create attachment block for file uploads
|
||||
2. Follow established patterns from existing handlers
|
||||
3. Test thoroughly after each migration
|
||||
4. Update documentation as blocks are completed
|
@@ -1,7 +0,0 @@
|
||||
* We don't use lit html logic, no event binding, no nothing, but only use static`` here to handle dom operations ourselves
|
||||
* We try to have separated concerns in different classes
|
||||
* We try to have clean concise and managable code
|
||||
* lets log whats happening, so if something goes wrong, we understand whats happening.
|
||||
* Read https://developer.mozilla.org/en-US/docs/Web/API/Selection/getComposedRanges
|
||||
* Read https://developer.mozilla.org/en-US/docs/Web/API/Selection/getComposedRanges
|
||||
* Make sure to hand over correct shodowroots.
|
Reference in New Issue
Block a user