diff --git a/package-lock.json b/package-lock.json index 2aa6ec1..05f2570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "buffer": "^6.0.3", "cordova-plugin-geolocation": "^4.1.0", "crypto-browserify": "^3.12.0", + "font-gis": "^1.0.5", "git": "^0.1.5", "ionicons": "^6.0.3", "isomorphic-xml2js": "^0.1.3", @@ -9248,6 +9249,14 @@ } } }, + "node_modules/font-gis": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/font-gis/-/font-gis-1.0.5.tgz", + "integrity": "sha512-f3DRjxYydpH1ZhmXeFaOgOEYm8Y0UOrrkPCAr+Aqomd0x/iBSqXWvwMwKIrCgWAQuH5cSbD1wCN1OKg0nDuh0w==", + "dependencies": { + "vinyl-paths": "^3.0.1" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", @@ -18418,6 +18427,26 @@ "node": ">= 0.8" } }, + "node_modules/vinyl-paths": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vinyl-paths/-/vinyl-paths-3.0.1.tgz", + "integrity": "sha512-fpjimhur1emSbJSvy5dJjDklCFEh2LvQRSHPzMQlYFjPrdFMHAyzSe1fiLzykoqg9X2tqH8evhsOUDNT55a0sw==", + "dependencies": { + "through2": "^3.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vinyl-paths/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, "node_modules/vuvuzela": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", @@ -26290,6 +26319,14 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" }, + "font-gis": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/font-gis/-/font-gis-1.0.5.tgz", + "integrity": "sha512-f3DRjxYydpH1ZhmXeFaOgOEYm8Y0UOrrkPCAr+Aqomd0x/iBSqXWvwMwKIrCgWAQuH5cSbD1wCN1OKg0nDuh0w==", + "requires": { + "vinyl-paths": "^3.0.1" + } + }, "fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", @@ -32909,6 +32946,25 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, + "vinyl-paths": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vinyl-paths/-/vinyl-paths-3.0.1.tgz", + "integrity": "sha512-fpjimhur1emSbJSvy5dJjDklCFEh2LvQRSHPzMQlYFjPrdFMHAyzSe1fiLzykoqg9X2tqH8evhsOUDNT55a0sw==", + "requires": { + "through2": "^3.0.1" + }, + "dependencies": { + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, "vuvuzela": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", diff --git a/package.json b/package.json index 7898d52..0cddf05 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "buffer": "^6.0.3", "cordova-plugin-geolocation": "^4.1.0", "crypto-browserify": "^3.12.0", + "font-gis": "^1.0.5", "git": "^0.1.5", "ionicons": "^6.0.3", "isomorphic-xml2js": "^0.1.3", diff --git a/src/components/map/TracksBrowser.tsx b/src/components/map/TracksBrowser.tsx new file mode 100644 index 0000000..335caed --- /dev/null +++ b/src/components/map/TracksBrowser.tsx @@ -0,0 +1,60 @@ +import { + IonButton, + IonButtons, + IonContent, + IonItem, + IonList, + IonModal, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import React, { Fragment, useRef } from 'react'; +import { useFind } from 'react-pouchdb'; +import { enterAnimation, leaveAnimation } from '../../lib/animation'; +import phoneRoute from '../../theme/icons/font-gis/svg/routing/uEB08-phone-route-nons.svg'; + +const TrackBrowser: React.FC<{}> = () => { + const gpxes = useFind({ + selector: { + type: 'gpx', + }, + }); + + const modal = useRef(null); + + const dismiss = () => { + modal.current?.dismiss(); + }; + + return ( + + + GPS tracks + + + + Tracks + + dismiss()}>Close + + + + + {gpxes.map((gpx: any) => { + return + {gpx.gpx.metadata.time} + ; + })} + + + + + ); +}; + +export default TrackBrowser; diff --git a/src/components/map/font-gis.d.ts b/src/components/map/font-gis.d.ts new file mode 100644 index 0000000..c1ca01c --- /dev/null +++ b/src/components/map/font-gis.d.ts @@ -0,0 +1 @@ +declare module 'font-gis'; \ No newline at end of file diff --git a/src/components/map/map.tsx b/src/components/map/map.tsx index a748970..d586fef 100644 --- a/src/components/map/map.tsx +++ b/src/components/map/map.tsx @@ -25,6 +25,7 @@ import GpxRecord from './gpx-record'; import { initDb } from '../../db'; import TileServerChooserButton from './TileServerChooserButton'; import TileServerChooserDialog from './TileServerChooserDialog'; +import TrackBrowser from './TracksBrowser'; const Map: react.FC<{}> = (props: {}) => { const dispatch = useDispatch(); @@ -65,9 +66,10 @@ const Map: react.FC<{}> = (props: {}) => { - + + diff --git a/src/theme/icons/font-gis/svg/routing/stripns.xsl b/src/theme/icons/font-gis/svg/routing/stripns.xsl new file mode 100644 index 0000000..0f2f05b --- /dev/null +++ b/src/theme/icons/font-gis/svg/routing/stripns.xsl @@ -0,0 +1,33 @@ + + + + + Created on: Sep 27, 2022 + Author: vdv + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/theme/icons/font-gis/svg/routing/uEB08-phone-route-nons.svg b/src/theme/icons/font-gis/svg/routing/uEB08-phone-route-nons.svg new file mode 100644 index 0000000..e59feb4 --- /dev/null +++ b/src/theme/icons/font-gis/svg/routing/uEB08-phone-route-nons.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/theme/icons/font-gis/svg/routing/uEB08-phone-route.svg b/src/theme/icons/font-gis/svg/routing/uEB08-phone-route.svg new file mode 100644 index 0000000..d7d2977 --- /dev/null +++ b/src/theme/icons/font-gis/svg/routing/uEB08-phone-route.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + +