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
4 changes: 4 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export GEOCORE_API_DOMAIN=https://geocore.api.geo.ca
export OIDC_CLIENT_ID=6so9eqbl6a258blnb9g5umjh03
export COGNITO_USERPOOL_ID=ca-central-1_uVmwsnfXK
export OIDC_CUSTOM_DOMAIN=https://ca-central-1uvmwsnfxk.auth.ca-central-1.amazoncognito.com
1,264 changes: 1,264 additions & 0 deletions data-samples/hnap/165841c4-2ee2-4ba9-82a7-866de92e623a.json

Large diffs are not rendered by default.

1,406 changes: 1,406 additions & 0 deletions data-samples/hnap/e1f7214b-a3d6-46f2-aaa4-a995360f3eea.json

Large diffs are not rendered by default.

11,133 changes: 661 additions & 10,472 deletions package-lock.json

Large diffs are not rendered by default.

28 changes: 22 additions & 6 deletions packages/hnap-bridge/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -607,11 +607,26 @@ function parseGeographicFeatures(geographicExtent) {
type: "Polygon",
coordinates: [
[
[parseFloat(geographicExtent.west), parseFloat(geographicExtent.south)],
[parseFloat(geographicExtent.east), parseFloat(geographicExtent.south)],
[parseFloat(geographicExtent.east), parseFloat(geographicExtent.north)],
[parseFloat(geographicExtent.west), parseFloat(geographicExtent.north)],
[parseFloat(geographicExtent.west), parseFloat(geographicExtent.south)],
[
parseFloat(geographicExtent.west),
parseFloat(geographicExtent.south),
],
[
parseFloat(geographicExtent.east),
parseFloat(geographicExtent.south),
],
[
parseFloat(geographicExtent.east),
parseFloat(geographicExtent.north),
],
[
parseFloat(geographicExtent.west),
parseFloat(geographicExtent.north),
],
[
parseFloat(geographicExtent.west),
parseFloat(geographicExtent.south),
],
],
],
},
Expand Down Expand Up @@ -776,4 +791,5 @@ async function getLatestGeocoreData(id) {
async function getPlugins(id) {
const geocoreData = await getLatestGeocoreData(id);
return geocoreData?.features?.[0]?.properties?.plugins;
}
}

98 changes: 49 additions & 49 deletions packages/web-app/package.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
{
"name": "app-geo-ca",
"version": "2.0.0",
"private": true,
"scripts": {
"dev": "sst bind vite dev --port 8080",
"build": "vite build",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.5",
"@sveltejs/kit": "^2.6.1",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"autoprefixer": "^10.4.20",
"constructs": "10.3.0",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.44.1",
"postcss": "^8.4.47",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.7",
"rollup": "^4.34.4",
"svelte": "^5.16.6",
"svelte-check": "^4.0.4",
"tailwindcss": "^3.4.13",
"tslib": "^2.7.0",
"typescript": "^5.6.2",
"vite": "^6.1.0"
},
"type": "module",
"dependencies": {
"@aws-sdk/client-dynamodb": "^3.662.0",
"@aws-sdk/client-s3": "^3.663.0",
"@aws-sdk/lib-dynamodb": "^3.662.0",
"aws-jwt-verify": "^4.0.1",
"deepmerge": "^4.3.1",
"devalue": "^5.1.1",
"import-meta-resolve": "^4.1.0",
"kleur": "^4.1.5",
"mrmime": "^2.0.0",
"set-cookie-parser": "^2.7.1",
"sirv": "^3.0.0",
"svelte-kit-sst": "2.43.5"
}
}
"name": "app-geo-ca",
"version": "2.0.0",
"private": true,
"scripts": {
"dev": "sst bind vite dev --port 8080",
"build": "vite build",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.2.5",
"@sveltejs/kit": "^2.6.1",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"autoprefixer": "^10.4.20",
"constructs": "10.3.0",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.44.1",
"postcss": "^8.4.47",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.7",
"rollup": "^4.34.4",
"svelte": "^5.16.6",
"svelte-check": "^4.0.4",
"tailwindcss": "^3.4.13",
"tslib": "^2.7.0",
"typescript": "^5.6.2",
"vite": "^6.1.0"
},
"type": "module",
"dependencies": {
"@aws-sdk/client-dynamodb": "^3.662.0",
"@aws-sdk/client-s3": "^3.663.0",
"@aws-sdk/lib-dynamodb": "^3.662.0",
"aws-jwt-verify": "^4.0.1",
"deepmerge": "^4.3.1",
"devalue": "^5.1.1",
"import-meta-resolve": "^4.1.0",
"kleur": "^4.1.5",
"mrmime": "^2.0.0",
"set-cookie-parser": "^2.7.1",
"sirv": "^3.0.0",
"svelte-kit-sst": "2.43.5"
}
}
19 changes: 19 additions & 0 deletions packages/web-app/src/lib/components/component-utils/poller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
export function poll(fn: Function, validate: Function, interval: number) {
let stop = false;
async function execute(resolve: Function, reject: Function) {
if (stop) return;

const result = await fn();
if (await validate(result) === true) {
resolve(result);
} else if (!stop) {
setTimeout(execute, interval, resolve, reject);
}
}

function clear() {
stop = true;
}

return [new Promise(execute), clear];
}
3 changes: 3 additions & 0 deletions packages/web-app/src/lib/components/map/map.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,9 @@

<svelte:head>
<script src="https://canadian-geospatial-platform.github.io/geoview/public/cgpv-main.js"></script>
<!-- TODO: switch back to old link after geoview pull request with modifyDragged event accepted -->
<!-- <script src="https://lbercovitch.github.io/geoview-leah/cgpv-main.js"></script> -->
<!--<script src="https://canadian-geospatial-platform.github.io/geoview/public/cgpv-main.js"></script>-->
</svelte:head>

{#if mapType === 'resultList'}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,9 @@

<svelte:head>
<script src="https://canadian-geospatial-platform.github.io/geoview/public/cgpv-main.js"></script>
<!-- TODO: switch back to old link after geoview pull request with modifyDragged event accepted -->
<!-- <script src="https://lbercovitch.github.io/geoview-leah/cgpv-main.js"></script> -->
<!--<script src="https://canadian-geospatial-platform.github.io/geoview/public/cgpv-main.js"></script>-->
</svelte:head>

<div
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"input": "Inputs",
"output": "Outputs",
"reset": "Reset",
"submit": "Submit",
"jobStatusIntro": "The following is the status of the newly created Job:",
"createdOn": "Created On:",
"startedOn": "Started On:",
"updatedOn": "Updated On:",
"finishedOn": "Finished On:",
"statusColon": "Status:",
"progress": "Progress:",
"message": "Message:",
"result": "Result:",
"download": "Download",
"openIn2D": "Open in 2D",
"openIn3D": "Open in 3D",
"close": "Close",
"status": "Status"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"input": "Entrées",
"output": "Sortir",
"reset": "Réinitialiser",
"submit": "Soumettre",
"jobStatusIntro": "Voici le statut du travail nouvellement créé :",
"createdOn": "Créé le :",
"startedOn": "Commencé le :",
"updatedOn": "Mis à jour le :",
"finishedOn": "Terminé le :",
"statusColon": "Statut :",
"progress": "Progrès :",
"message": "Message :",
"result": "Résultat :",
"download": "Télécharger",
"openIn2D": "Ouvrir en 2D",
"openIn3D": "Ouvrir en 3D",
"close": "Fermer",
"status": "Statut"
}
83 changes: 83 additions & 0 deletions packages/web-app/src/lib/components/processes/input.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<script lang="ts">
import BoundingBox from '$lib/components/search-results/filters/bounding-box.svelte';

interface Props {
name: string;
definition: object;
value: any;
}

let {
name,
definition,
value = $bindable()
}: Props = $props();

const type = definition?.schema?.type;
const format = definition?.schema.format;

const min = definition?.schema?.minimum;
const max = definition?.schema?.maximum;
const defalt = definition?.schema?.default;

value = defalt;

let input = $state();

export function getValue() {
if (type == "object") {
if (format == "ogc-bbox") {
let bbox = input.getBBox();
return {bbox: [parseFloat(bbox.west), parseFloat(bbox.south), parseFloat(bbox.east), parseFloat(bbox.north)]};
}
} else {
return value;
}
}

const styleClass = "border-2 rounded border-custom-16 px-3.5 py-[0.5625rem]";

export function reset() {
if (type == "object") {
if (format == "ogc-bbox") {
// TODO: handle a default geom value?
input.resetFilters();
}
} else if (definition?.schema?.enum) {
if (defalt != null) {
input.value = defalt;
} else {
input.options.selectedIndex = 0;
}
} else if (type == "string" || type == "integer" || type == "number") {
input.value = defalt == null ? '' : defalt;
}
}
</script>


{#snippet render()}
{#if definition?.schema?.enum}
<select id="{name}" name="{name}" class={styleClass} bind:this={input} bind:value={value}>
{#each definition?.schema?.enum as option}
<option value={option}>{option}</option>
{/each}
</select>
{:else if type == "string"}
<input class={styleClass} id="{name}" name="{name}" type="text" bind:this={input} bind:value={value}>
{:else if type == "integer" || type == "number"}
<input class={styleClass} id="{name}" name="{name}" type="number" min={min} max={max} bind:this={input} bind:value={()=>{return value;}, (v) => {value = v;}}>
{:else if type == "object"}
{#if format == "ogc-bbox"}
<BoundingBox coordinatesId={name} active={true} bind:this={input} />
{/if}
{:else}
<p>Type: {type}</p>
{/if}
{/snippet}

<div class="flex flex-col gap-2 font-open-sans px-5 md:px-0">
<h4 class="font-custom-style-h3">{definition.title} ({name})</h4>
<p>{definition.description}</p>
<div>{@render render()}</div>
</div>
Loading