├── .gitignore ├── AGPL3.txt ├── LICENSE ├── README.md ├── eslint.config.js ├── index.html ├── package.json ├── postcss.config.js ├── public ├── demo-map.ocd ├── favicon.ico └── logo.svg ├── src ├── App.css ├── App.jsx ├── ApplyGrivation.tsx ├── ControlDescriptionLayer.jsx ├── ControlDescriptionSheet.jsx ├── CourseLayer.jsx ├── CourseOptions.jsx ├── CourseOptions.test.jsx ├── Courses.jsx ├── EventMapMismatchDialog.jsx ├── FilePicker.jsx ├── MapComponent.jsx ├── MapSection.jsx ├── PrintAndExport.jsx ├── SelectMap.jsx ├── SelectMap.test.jsx ├── Sidebar.jsx ├── StartScreen.jsx ├── Toolbar.test.tsx ├── Toolbar.tsx ├── __mocks__ │ ├── worker-mock.js │ └── zustand.js ├── course-feature-style.js ├── custom.d.ts ├── index.css ├── index.js ├── logo.svg ├── main.jsx ├── models │ ├── control.ts │ ├── coordinate.js │ ├── coordinate.test.js │ ├── course-appearance.ts │ ├── course.ts │ ├── event.test.js │ ├── event.ts │ ├── print-area.ts │ └── special-object.ts ├── ocad-tiler.d.ts ├── ol │ ├── ExtentInteraction.js │ ├── use-select.js │ └── use-vector.js ├── react-app-env.d.ts ├── reportWebVitals.js ├── services │ ├── coordinates.js │ ├── create-svg.js │ ├── create-svg.test.js │ ├── download-blob.js │ ├── epsg.js │ ├── fetch-symbol-svg.js │ ├── fetch.js │ ├── iof-xml.ts │ ├── lang.ts │ ├── map.js │ ├── ppen.js │ ├── ppen.test.js │ ├── print.js │ ├── print.test.js │ ├── svg-to-bitmap.js │ ├── svg-utils.js │ ├── use-controls.js │ ├── use-map-layer.js │ ├── use-number-positions.js │ ├── use-number-positions.test.js │ ├── use-special-objects.js │ ├── user-control-connections.js │ └── xml-utils.js ├── setupTests.js ├── store.test.js ├── store.ts ├── test-utils.js ├── test │ └── setup.js ├── tile.worker.js ├── tools │ ├── CreateCourse.tsx │ ├── EditControls.jsx │ ├── Objects.tsx │ ├── PrintArea.jsx │ └── use-other-controls.ts ├── ts-utils.ts ├── ui │ ├── Alert.jsx │ ├── Button.jsx │ ├── Checkbox.jsx │ ├── Dropdown.jsx │ ├── Input.jsx │ ├── Input.module.css │ ├── Section.jsx │ ├── Spinner.jsx │ ├── Toggle.jsx │ ├── Toggle.module.css │ └── ToolButton.tsx └── use-clip.js ├── tailwind.config.js ├── test-data ├── basic-1.ocd └── ppen │ ├── test1.ppen │ └── test2.ppen ├── tsconfig.json ├── vite.config.js └── vitest.config.ts /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/.gitignore -------------------------------------------------------------------------------- /AGPL3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/AGPL3.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/README.md -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/eslint.config.js -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/postcss.config.js -------------------------------------------------------------------------------- /public/demo-map.ocd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/public/demo-map.ocd -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/public/logo.svg -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/App.css -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/App.jsx -------------------------------------------------------------------------------- /src/ApplyGrivation.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ApplyGrivation.tsx -------------------------------------------------------------------------------- /src/ControlDescriptionLayer.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ControlDescriptionLayer.jsx -------------------------------------------------------------------------------- /src/ControlDescriptionSheet.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ControlDescriptionSheet.jsx -------------------------------------------------------------------------------- /src/CourseLayer.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/CourseLayer.jsx -------------------------------------------------------------------------------- /src/CourseOptions.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/CourseOptions.jsx -------------------------------------------------------------------------------- /src/CourseOptions.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/CourseOptions.test.jsx -------------------------------------------------------------------------------- /src/Courses.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/Courses.jsx -------------------------------------------------------------------------------- /src/EventMapMismatchDialog.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/EventMapMismatchDialog.jsx -------------------------------------------------------------------------------- /src/FilePicker.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/FilePicker.jsx -------------------------------------------------------------------------------- /src/MapComponent.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/MapComponent.jsx -------------------------------------------------------------------------------- /src/MapSection.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/MapSection.jsx -------------------------------------------------------------------------------- /src/PrintAndExport.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/PrintAndExport.jsx -------------------------------------------------------------------------------- /src/SelectMap.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/SelectMap.jsx -------------------------------------------------------------------------------- /src/SelectMap.test.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/SelectMap.test.jsx -------------------------------------------------------------------------------- /src/Sidebar.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/Sidebar.jsx -------------------------------------------------------------------------------- /src/StartScreen.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/StartScreen.jsx -------------------------------------------------------------------------------- /src/Toolbar.test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/Toolbar.test.tsx -------------------------------------------------------------------------------- /src/Toolbar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/Toolbar.tsx -------------------------------------------------------------------------------- /src/__mocks__/worker-mock.js: -------------------------------------------------------------------------------- 1 | export default class WorkerMock { 2 | postMessage() {} 3 | } 4 | -------------------------------------------------------------------------------- /src/__mocks__/zustand.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/__mocks__/zustand.js -------------------------------------------------------------------------------- /src/course-feature-style.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/course-feature-style.js -------------------------------------------------------------------------------- /src/custom.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/custom.d.ts -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/index.css -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/index.js -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/logo.svg -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/main.jsx -------------------------------------------------------------------------------- /src/models/control.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/control.ts -------------------------------------------------------------------------------- /src/models/coordinate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/coordinate.js -------------------------------------------------------------------------------- /src/models/coordinate.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/coordinate.test.js -------------------------------------------------------------------------------- /src/models/course-appearance.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/course-appearance.ts -------------------------------------------------------------------------------- /src/models/course.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/course.ts -------------------------------------------------------------------------------- /src/models/event.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/event.test.js -------------------------------------------------------------------------------- /src/models/event.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/event.ts -------------------------------------------------------------------------------- /src/models/print-area.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/print-area.ts -------------------------------------------------------------------------------- /src/models/special-object.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/models/special-object.ts -------------------------------------------------------------------------------- /src/ocad-tiler.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ocad-tiler.d.ts -------------------------------------------------------------------------------- /src/ol/ExtentInteraction.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ol/ExtentInteraction.js -------------------------------------------------------------------------------- /src/ol/use-select.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ol/use-select.js -------------------------------------------------------------------------------- /src/ol/use-vector.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ol/use-vector.js -------------------------------------------------------------------------------- /src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/reportWebVitals.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/reportWebVitals.js -------------------------------------------------------------------------------- /src/services/coordinates.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/coordinates.js -------------------------------------------------------------------------------- /src/services/create-svg.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/create-svg.js -------------------------------------------------------------------------------- /src/services/create-svg.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/create-svg.test.js -------------------------------------------------------------------------------- /src/services/download-blob.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/download-blob.js -------------------------------------------------------------------------------- /src/services/epsg.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/epsg.js -------------------------------------------------------------------------------- /src/services/fetch-symbol-svg.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/fetch-symbol-svg.js -------------------------------------------------------------------------------- /src/services/fetch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/fetch.js -------------------------------------------------------------------------------- /src/services/iof-xml.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/iof-xml.ts -------------------------------------------------------------------------------- /src/services/lang.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/lang.ts -------------------------------------------------------------------------------- /src/services/map.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/map.js -------------------------------------------------------------------------------- /src/services/ppen.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/ppen.js -------------------------------------------------------------------------------- /src/services/ppen.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/ppen.test.js -------------------------------------------------------------------------------- /src/services/print.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/print.js -------------------------------------------------------------------------------- /src/services/print.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/print.test.js -------------------------------------------------------------------------------- /src/services/svg-to-bitmap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/svg-to-bitmap.js -------------------------------------------------------------------------------- /src/services/svg-utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/svg-utils.js -------------------------------------------------------------------------------- /src/services/use-controls.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/use-controls.js -------------------------------------------------------------------------------- /src/services/use-map-layer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/use-map-layer.js -------------------------------------------------------------------------------- /src/services/use-number-positions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/use-number-positions.js -------------------------------------------------------------------------------- /src/services/use-number-positions.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/use-number-positions.test.js -------------------------------------------------------------------------------- /src/services/use-special-objects.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/use-special-objects.js -------------------------------------------------------------------------------- /src/services/user-control-connections.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/user-control-connections.js -------------------------------------------------------------------------------- /src/services/xml-utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/services/xml-utils.js -------------------------------------------------------------------------------- /src/setupTests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/setupTests.js -------------------------------------------------------------------------------- /src/store.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/store.test.js -------------------------------------------------------------------------------- /src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/store.ts -------------------------------------------------------------------------------- /src/test-utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/test-utils.js -------------------------------------------------------------------------------- /src/test/setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/test/setup.js -------------------------------------------------------------------------------- /src/tile.worker.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tile.worker.js -------------------------------------------------------------------------------- /src/tools/CreateCourse.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tools/CreateCourse.tsx -------------------------------------------------------------------------------- /src/tools/EditControls.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tools/EditControls.jsx -------------------------------------------------------------------------------- /src/tools/Objects.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tools/Objects.tsx -------------------------------------------------------------------------------- /src/tools/PrintArea.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tools/PrintArea.jsx -------------------------------------------------------------------------------- /src/tools/use-other-controls.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/tools/use-other-controls.ts -------------------------------------------------------------------------------- /src/ts-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ts-utils.ts -------------------------------------------------------------------------------- /src/ui/Alert.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Alert.jsx -------------------------------------------------------------------------------- /src/ui/Button.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Button.jsx -------------------------------------------------------------------------------- /src/ui/Checkbox.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Checkbox.jsx -------------------------------------------------------------------------------- /src/ui/Dropdown.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Dropdown.jsx -------------------------------------------------------------------------------- /src/ui/Input.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Input.jsx -------------------------------------------------------------------------------- /src/ui/Input.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Input.module.css -------------------------------------------------------------------------------- /src/ui/Section.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Section.jsx -------------------------------------------------------------------------------- /src/ui/Spinner.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Spinner.jsx -------------------------------------------------------------------------------- /src/ui/Toggle.jsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Toggle.jsx -------------------------------------------------------------------------------- /src/ui/Toggle.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/Toggle.module.css -------------------------------------------------------------------------------- /src/ui/ToolButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/ui/ToolButton.tsx -------------------------------------------------------------------------------- /src/use-clip.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/src/use-clip.js -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /test-data/basic-1.ocd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/test-data/basic-1.ocd -------------------------------------------------------------------------------- /test-data/ppen/test1.ppen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/test-data/ppen/test1.ppen -------------------------------------------------------------------------------- /test-data/ppen/test2.ppen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/test-data/ppen/test2.ppen -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/vite.config.js -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/perliedman/o-scout/HEAD/vitest.config.ts --------------------------------------------------------------------------------