Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
charset = utf-8
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
max_line_length = 100
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,26 @@ pnpm-debug.log*
lerna-debug.log*

node_modules
.DS_Store
dist
dist-ssr
coverage
*.local

/cypress/videos/
/cypress/screenshots/

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

*.tsbuildinfo

.claude/
.crush/
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"singleQuote": true,
"printWidth": 100
}
8 changes: 8 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"recommendations": [
"Vue.volar",
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode"
]
}
77 changes: 49 additions & 28 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,56 @@

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- The machinery for a minimal viable prototype, including integration of EOxElements, a code editor, the style library BeerCSS and the necessary glue code to enable a basic experience of editing styles with auto-reloading for direct user feedback.
- Start using [human-readable changelogs](https://keepachangelog.com/en/1.1.0/) along with [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
- An app-wide error queue that gives user feedback through a snackbar at the bottom of the screen.
- A dialog component to import style files via file dialog, drag and drop or from a web address.
<!--
Available headings for changelog entries:
- **Added** - for new features
- **Changed** - for changes in existing functionality
- **Deprecated** - for soon-to-be removed features
- **Removed** - for now removed features
- **Fixed** - for any bug fixes
- **Security** - in case of vulnerabilities
-->

## [0.1.0] - 2025-01-12

<!--
Only used as format reference for our own tags.

[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.1.1...HEAD
[1.1.1]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
[0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
[0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
[0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
[0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
[0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
[0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
[0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1
-->
### Added
- Vue 3 + Vite application with EOX web components integration
- Interactive map component using @eox/map (OpenLayers-based)
- Code editor with ACE integration via @eox/jsonform component
- Layer control panel for managing map layers (@eox/layercontrol)
- Resizable sidebar with drag-to-resize functionality using mouse events
- Responsive ACE editor with dynamic sizing based on container height
- Local IBM Plex Mono font integration for code editor
- FlatGeoBuf (.fgb) data format support with automatic extent calculation
- Greenland Ice Thickness example with complex styling and variable support
- URL query parameter support (?example=greenland-ice-thickness) for auto-loading examples
- Format registry system for extensible data format handling
- Layer generation utilities for creating eox-map compatible layers
- Style variable preprocessing system for OpenLayers expression support
- Git commit guidelines with Keep a Changelog format requirements

### Changed
- Example structure now includes id, name, and format fields
- Layer control initialization to always render (hidden when not visible) for proper eox-map integration
- Layer styling pipeline to process variables before applying to map
- Example naming from "Cerulean FGB" to "Greenland Ice Thickness"

### Fixed
- FlatGeoBuf extent calculation and automatic map centering
- Layer styling persistence during code editor changes
- Invalid nested expressions in style configuration (["get", ["var", "key"]] patterns)
- Layer sanitization logic to preserve essential properties for eox-map
- Style variable preprocessing to correctly replace ["var", "key"] expressions with actual values
- Layer colors now display correctly on both initial load and during style editing
- Layer ID assignment in format registry for proper eox-map layer identification

### Technical Achievements
- Implemented prototype-based format handler pattern for extensible data processing
- Created complete layerConfig setup with schema, style, and legend properties for eox-map compatibility
- Established proper Vue 3 Composition API integration with web components
- Built responsive layout system with fixed positioning for complex UI arrangements
- Integrated ESLint + Prettier with auto-formatting on save
- Set up development workflow with hot module replacement via Vite
Loading