From be33825c2dcb38124e1427594e9f43d822fe524a Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 23 May 2024 13:57:56 -0700
Subject: [PATCH 01/80] Initial Skeleton
---
.gitignore | 2 +
.../src/components/Map/Component.form.ts | 62 ++++++++++
components/src/components/Map/Component.ts | 33 ++++++
.../Map/editForm/Component.edit.data.ts | 25 ++++
.../Map/editForm/Component.edit.display.ts | 108 ++++++++++++++++++
.../Map/editForm/Component.edit.validation.ts | 22 ++++
components/src/components/index.ts | 4 +-
7 files changed, 255 insertions(+), 1 deletion(-)
create mode 100644 components/src/components/Map/Component.form.ts
create mode 100644 components/src/components/Map/Component.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.data.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.display.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.validation.ts
diff --git a/.gitignore b/.gitignore
index f3ab92d0e..6b1ea70ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,5 @@ build
!app/frontend/.env
!local-infrastructure/.env
.history
+realm-export.json
+chefs_build
\ No newline at end of file
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
new file mode 100644
index 000000000..d82d83b81
--- /dev/null
+++ b/components/src/components/Map/Component.form.ts
@@ -0,0 +1,62 @@
+import baseEditForm from 'formiojs/components/_classes/component/Component.form';
+
+import EditData from './editForm/Component.edit.data';
+import EditDisplay from './editForm/Component.edit.display';
+import EditValidation from './editForm/Component.edit.validation';
+
+import SimpleApi from '../Common/Simple.edit.api';
+import SimpleConditional from '../Common/Simple.edit.conditional';
+
+export default function(...extend) {
+ return baseEditForm([
+ EditDisplay,
+ {
+ key: 'data',
+ ignore: true,
+ },
+ {
+ key: 'api',
+ ignore: true
+ },
+ {
+ key: 'layout',
+ ignore: true
+ },
+ {
+ key: 'conditional',
+ ignore: true
+ },
+ {
+ key: 'validation',
+ ignore: true
+ },
+ {
+ key: 'logic',
+ ignore: true
+ },
+ {
+ label: 'Data',
+ key: 'customData',
+ weight: 10,
+ components: EditData
+ },
+ {
+ label: 'Validation',
+ key: 'customValidation',
+ weight: 20,
+ components: EditValidation
+ },
+ {
+ label: 'API',
+ key: 'customAPI',
+ weight: 30,
+ components: SimpleApi
+ },
+ {
+ label: 'Conditional',
+ key: 'customConditional',
+ weight: 40,
+ components: SimpleConditional
+ }
+ ], ...extend);
+}
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
new file mode 100644
index 000000000..086bde836
--- /dev/null
+++ b/components/src/components/Map/Component.ts
@@ -0,0 +1,33 @@
+/* tslint:disable */
+import { Components } from 'formiojs';
+const ParentComponent = (Components as any).components.Field;
+import editForm from './Component.form';
+
+import { Constants } from '../Common/Constants';
+
+
+const ID = 'map';
+const DISPLAY = 'Map';
+
+export default class MapComponent extends (ParentComponent as any) {
+ static schema(...extend) {
+ return MapComponent.schema({
+ type: ID,
+ label: DISPLAY,
+ key: ID,
+ }, ...extend);
+ }
+
+ public static editForm = editForm;
+ static get builderInfo() {
+ return {
+ title: DISPLAY,
+ group: 'simple',
+ icon: 'map',
+ weight: 1,
+ documentation: Constants.DEFAULT_HELP_LINK,
+ schema: MapComponent.schema()
+ };
+ }
+
+}
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
new file mode 100644
index 000000000..9c28c5944
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -0,0 +1,25 @@
+import common from '../../Common/Simple.edit.data';
+export default [
+ ...common,
+ {
+ weight: 200,
+ type: 'radio',
+ label: 'Text Case',
+ key: 'case',
+ tooltip: 'When data is entered, you can change the case of the value.',
+ input: true,
+ values: [
+ {
+ value: 'mixed',
+ label: 'Mixed (Allow upper and lower case)'
+ },
+ {
+ value: 'uppercase',
+ label: 'Uppercase'
+ },{
+ value: 'lowercase',
+ label: 'Lowercase'
+ }
+ ]
+ }
+];
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
new file mode 100644
index 000000000..6a3c34c35
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -0,0 +1,108 @@
+import common from '../../Common/Simple.edit.display';
+export default
+ {
+ key: 'display',
+ components: [
+ ...common,
+ {
+ key: 'refreshOnChange',
+ ignore: true
+ },
+ {
+ key: 'className',
+ ignore: true,
+ },
+ {
+ key: 'widget',
+ ignore: true
+ },
+ {
+ key: 'widget.type',
+ ignore: true
+ },
+ {
+ key: 'prefix',
+ ignore: true
+ },
+ {
+ key: 'suffix',
+ ignore: true
+ },
+ {
+ weight: 410,
+ type: 'textfield',
+ input: true,
+ key: 'inputMask',
+ label: 'Input Mask',
+ tooltip: 'An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the jquery.inputmask documentation for more information.',
+ customConditional(context) {
+ return !context.data.allowMultipleMasks;
+ }
+ },
+ {
+ weight: 413,
+ type: 'checkbox',
+ input: true,
+ key: 'allowMultipleMasks',
+ label: 'Allow Multiple Masks'
+ },
+ {
+ weight: 1350,
+ type: 'checkbox',
+ input: true,
+ key: 'spellcheck',
+ defaultValue: true,
+ label: 'Allow Spellcheck'
+ },
+ {
+ weight: 417,
+ type: 'datagrid',
+ input: true,
+ key: 'inputMasks',
+ label: 'Input Masks',
+ customConditional(context) {
+ return context.data.allowMultipleMasks === true;
+ },
+ reorder: true,
+ components: [
+ {
+ type: 'textfield',
+ key: 'label',
+ label: 'Label',
+ input: true
+ },
+ {
+ type: 'textfield',
+ key: 'mask',
+ label: 'Mask',
+ input: true
+ }
+ ]
+ },
+ {
+ key: 'autocomplete',
+ ignore: true,
+ },
+ {
+ weight: 1300,
+ key: 'mask',
+ ignore: true
+ },
+ {
+ weight: 1200,
+ type: 'checkbox',
+ label: 'Show Word Counter',
+ tooltip: 'Show a live count of the number of words.',
+ key: 'showWordCount',
+ input: true
+ },
+ {
+ weight: 1201,
+ type: 'checkbox',
+ label: 'Show Character Counter',
+ tooltip: 'Show a live count of the number of characters.',
+ key: 'showCharCount',
+ input: true
+ }
+ ]
+ }
diff --git a/components/src/components/Map/editForm/Component.edit.validation.ts b/components/src/components/Map/editForm/Component.edit.validation.ts
new file mode 100644
index 000000000..e0ac0d5e4
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.validation.ts
@@ -0,0 +1,22 @@
+import common from '../../Common/Simple.edit.validation';
+export default [
+ ...common,
+ {
+ weight: 110,
+ key: 'validate.minLength',
+ label: 'Minimum Length',
+ placeholder: 'Minimum Length',
+ type: 'number',
+ tooltip: 'The minimum length requirement this field must meet.',
+ input: true
+ },
+ {
+ weight: 120,
+ key: 'validate.maxLength',
+ label: 'Maximum Length',
+ placeholder: 'Maximum Length',
+ type: 'number',
+ tooltip: 'The maximum length requirement this field must meet.',
+ input: true
+ }
+];
diff --git a/components/src/components/index.ts b/components/src/components/index.ts
index 8361f59d1..46eb2c816 100755
--- a/components/src/components/index.ts
+++ b/components/src/components/index.ts
@@ -45,6 +45,7 @@ import simplesignatureadvanced from './SimpleSignatureAdvanced/Component';
import simplebuttonadvanced from './SimpleButtonAdvanced/Component';
import bcaddress from './BCAddress/Component';
import simplebcaddress from './SimpleBCAddress/Component';
+import map from './Map/Component'
export default {
orgbook,
@@ -93,5 +94,6 @@ export default {
simplesignatureadvanced,
simplebuttonadvanced,
bcaddress,
- simplebcaddress
+ simplebcaddress,
+ map
};
From 814fa7c36fd0633a125cef5821ffadb4ab54655d Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Thu, 23 May 2024 14:02:22 -0700
Subject: [PATCH 02/80] component creation reference
---
.../src/components/designer/FormDesigner.vue | 1 +
components/package-lock.json | 6 +++
components/package.json | 1 +
.../src/components/Map/Common/Constants.ts | 4 ++
components/src/components/Map/Component.ts | 52 +++++++++++++++++++
components/src/components/index.ts | 4 +-
6 files changed, 67 insertions(+), 1 deletion(-)
create mode 100644 components/src/components/Map/Common/Constants.ts
create mode 100644 components/src/components/Map/Component.ts
diff --git a/app/frontend/src/components/designer/FormDesigner.vue b/app/frontend/src/components/designer/FormDesigner.vue
index 02f30bf17..8be4e901a 100644
--- a/app/frontend/src/components/designer/FormDesigner.vue
+++ b/app/frontend/src/components/designer/FormDesigner.vue
@@ -184,6 +184,7 @@ export default {
simplefile: this.form.userType !== this.ID_MODE.PUBLIC,
bcaddress: true,
simplebcaddress: true,
+ MapComponent: true,
},
},
},
diff --git a/components/package-lock.json b/components/package-lock.json
index 2d6935783..98a073220 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "Apache-2.0",
"dependencies": {
+ "@bcgov/smk": "^1.2.1",
"autocompleter": "^7.0.1",
"formiojs": "^4.14.6",
"lodash": "^4.17.21",
@@ -301,6 +302,11 @@
"to-fast-properties": "^2.0.0"
}
},
+ "node_modules/@bcgov/smk": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@bcgov/smk/-/smk-1.2.1.tgz",
+ "integrity": "sha512-FBpBefqAm2uLfGmbwRZwORzt6+RQAuiQ93DVweQBwgJ5eggq25SmpX15atg+R86RlQnnvWSLu+AC4QMey3X92g=="
+ },
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
diff --git a/components/package.json b/components/package.json
index a0cb08779..70e717b89 100755
--- a/components/package.json
+++ b/components/package.json
@@ -47,6 +47,7 @@
"components"
],
"dependencies": {
+ "@bcgov/smk": "^1.2.1",
"autocompleter": "^7.0.1",
"formiojs": "^4.14.6",
"lodash": "^4.17.21",
diff --git a/components/src/components/Map/Common/Constants.ts b/components/src/components/Map/Common/Constants.ts
new file mode 100644
index 000000000..969ac7b2a
--- /dev/null
+++ b/components/src/components/Map/Common/Constants.ts
@@ -0,0 +1,4 @@
+export abstract class Constants {
+ static readonly DEFAULT_HELP_LINK: string = 'https://github.com/bcgov/common-hosted-form-service/wiki';
+ static readonly ADV: string = '';
+}
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
new file mode 100644
index 000000000..a8b7c1563
--- /dev/null
+++ b/components/src/components/Map/Component.ts
@@ -0,0 +1,52 @@
+import { Components } from 'formiojs';
+//import SMK from '@bcgov/smk';
+
+const FieldComponent = Components.components.field;
+
+class MapComponent extends FieldComponent {
+ static schema(...extend: any[]) {
+ return FieldComponent.schema({
+ type: 'map',
+ label: 'Map',
+ key: 'map',
+ input: true,
+ ...extend,
+ });
+ }
+
+ static get builderInfo() {
+ return {
+ title: 'Map',
+ group: 'basic',
+ icon: 'map',
+ weight: 70,
+ schema: MapComponent.schema(),
+ };
+ }
+
+ render() {
+ return super.render(
+ this.renderTemplate('input', {
+ input: `map goes here
`,
+ })
+ );
+ }
+
+ attach(element: HTMLElement) {
+ super.attach(element);
+ this.loadMap();
+ }
+
+ loadMap() {
+ const mapContainer = document.getElementById('map');
+ if (mapContainer) {
+ console.log('inside Map');
+ // SMK.init({ container: 'map' }).then((smk) => {
+ // // Additional SMK configuration goes here
+ // });
+ }
+ }
+}
+
+Components.addComponent('map', MapComponent);
+export default MapComponent;
diff --git a/components/src/components/index.ts b/components/src/components/index.ts
index 8361f59d1..13289e107 100755
--- a/components/src/components/index.ts
+++ b/components/src/components/index.ts
@@ -45,6 +45,7 @@ import simplesignatureadvanced from './SimpleSignatureAdvanced/Component';
import simplebuttonadvanced from './SimpleButtonAdvanced/Component';
import bcaddress from './BCAddress/Component';
import simplebcaddress from './SimpleBCAddress/Component';
+import MapComponent from './Map/Component';
export default {
orgbook,
@@ -93,5 +94,6 @@ export default {
simplesignatureadvanced,
simplebuttonadvanced,
bcaddress,
- simplebcaddress
+ simplebcaddress,
+ MapComponent,
};
From 74eb54e0e2104dde96d91c5250f3d1a8648d4920 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 27 May 2024 09:20:56 -0700
Subject: [PATCH 03/80] SMK Skeleton Integration
---
app/frontend/package-lock.json | 1508 +++++++++++++++++++-
app/frontend/package.json | 1 +
app/frontend/public/index.html | 1 +
components/src/components/Map/Component.ts | 7 +-
components/src/components/index.ts | 3 -
5 files changed, 1479 insertions(+), 41 deletions(-)
diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json
index ed5230553..1407b2b07 100644
--- a/app/frontend/package-lock.json
+++ b/app/frontend/package-lock.json
@@ -10,6 +10,7 @@
"license": "Apache-2.0",
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
+ "@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
@@ -98,6 +99,91 @@
"resolved": "https://registry.npmjs.org/@bcgov/bc-sans/-/bc-sans-1.0.1.tgz",
"integrity": "sha512-4suRUBFeHcuFkwXXJu9pKJNB5Z2G3bpuLEHIq203KVCKC8KrsnqvsyUOf645TypgLwqOTOYCETiXYzfxF4gLAw=="
},
+ "node_modules/@bcgov/smk": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@bcgov/smk/-/smk-1.2.1.tgz",
+ "integrity": "sha512-FBpBefqAm2uLfGmbwRZwORzt6+RQAuiQ93DVweQBwgJ5eggq25SmpX15atg+R86RlQnnvWSLu+AC4QMey3X92g=="
+ },
+ "node_modules/@bcgov/smk-cli": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@bcgov/smk-cli/-/smk-cli-1.2.0.tgz",
+ "integrity": "sha512-szTNQiZYMpM8+/Qzsafj/lPlw0jIKGhy97bRiN3skfdCKu5qZdB56nVxSmFL1sK3zfalG5Qw4Az746x84sdE2g==",
+ "dependencies": {
+ "@bcgov/smk": ">=1.2.0",
+ "@tmcw/togeojson": "~4.5.0",
+ "@xmldom/xmldom": "~0.8.5",
+ "chalk": "~4.1.0",
+ "cors": "~2.8.5",
+ "csv-parse": "~4.16.0",
+ "express": "~4.17.3",
+ "fgdb": "~1.0.0",
+ "figlet": "~1.5.0",
+ "glob": "7.1.2",
+ "inquirer": "~7.3.3",
+ "lodash": "~4.17.21",
+ "material-design-icons-iconfont": "6.1.1",
+ "minimist": "~1.2.5",
+ "multer": "~1.4.5-lts.1",
+ "node-fetch": "~2.6.7",
+ "open": "~7.4.0",
+ "proj4": "~2.7.5",
+ "semver": "~7.3.5",
+ "shapefile": "~0.6.6",
+ "shelljs": "~0.8.5",
+ "touch": "~3.1.0",
+ "unzipper": "~0.10.11",
+ "xml2js": "~0.4.23"
+ },
+ "bin": {
+ "smk": "index.js"
+ }
+ },
+ "node_modules/@bcgov/smk-cli/node_modules/glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@bcgov/smk-cli/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@bcgov/smk-cli/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@bcgov/smk-cli/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
@@ -1016,6 +1102,11 @@
"resolved": "https://registry.npmjs.org/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz",
"integrity": "sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw=="
},
+ "node_modules/@tmcw/togeojson": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@tmcw/togeojson/-/togeojson-4.5.0.tgz",
+ "integrity": "sha512-lNuuhW7nvN1T7xII9eRTi9zuPwYfFl43/1u/Xgi88tedX4ePfwJB5dqc31N7z6sWeR+7EES274ESNrK1gsW53A=="
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -1346,6 +1437,14 @@
"vuetify": "^3.0.0"
}
},
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -1363,6 +1462,18 @@
"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
"integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ=="
},
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/acorn": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -1426,11 +1537,35 @@
"resolved": "https://registry.npmjs.org/animation-frame-polyfill/-/animation-frame-polyfill-1.0.2.tgz",
"integrity": "sha512-PvO5poSMoHhaoNNgHPo+oqs/0L9UqjsUbqv0iOXVqLh6HX85fsOVQTUrzSBvjdZz7hydARlgLELyzJJKIrPJAQ=="
},
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -1439,7 +1574,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1463,6 +1597,11 @@
"node": ">= 8"
}
},
+ "node_modules/append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
+ },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -1481,11 +1620,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
"node_modules/array-from": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
"integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg=="
},
+ "node_modules/array-source": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/array-source/-/array-source-0.0.4.tgz",
+ "integrity": "sha512-frNdc+zBn80vipY+GdcJkLEbMWj3xmzArYApmUGxoiV8uAu/ygcs9icPdsGdA26h0MkHUMW6EN2piIvVx+M5Mw=="
+ },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
@@ -1547,8 +1696,7 @@
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -1569,6 +1717,26 @@
}
]
},
+ "node_modules/big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
+ "dependencies": {
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -1578,12 +1746,61 @@
"node": ">=8"
}
},
+ "node_modules/bluebird": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
+ },
"node_modules/blueimp-md5": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
"integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==",
"dev": true
},
+ "node_modules/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.8.1",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.9.7",
+ "raw-body": "2.4.3",
+ "type-is": "~1.6.18"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -1599,7 +1816,6 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1633,8 +1849,42 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "devOptional": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "node_modules/buffer-indexof-polyfill": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
+ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
+ "engines": {
+ "node": ">=0.2.0"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
"node_modules/cac": {
"version": "6.7.14",
@@ -1684,11 +1934,21 @@
"node": ">=4"
}
},
+ "node_modules/chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
+ "dependencies": {
+ "traverse": ">=0.3.0 <0.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1700,6 +1960,11 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
"node_modules/check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
@@ -1748,6 +2013,25 @@
"node": ">= 6"
}
},
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/clipboard": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
@@ -1770,7 +2054,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -1781,8 +2064,7 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/combined-stream": {
"version": "1.0.8",
@@ -1798,8 +2080,7 @@
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "devOptional": true
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"node_modules/compare-versions": {
"version": "5.0.3",
@@ -1809,8 +2090,21 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
},
"node_modules/concordance": {
"version": "5.0.4",
@@ -1841,6 +2135,25 @@
"proto-list": "~1.2.1"
}
},
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/contra": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz",
@@ -1856,6 +2169,19 @@
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true
},
+ "node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
"node_modules/core-js": {
"version": "3.31.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz",
@@ -1866,6 +2192,23 @@
"url": "https://opencollective.com/core-js"
}
},
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/create-point-cb": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-point-cb/-/create-point-cb-1.2.0.tgz",
@@ -1936,6 +2279,11 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
},
+ "node_modules/csv-parse": {
+ "version": "4.16.3",
+ "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz",
+ "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg=="
+ },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2111,6 +2459,19 @@
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
+ "node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
+ },
"node_modules/dialog-polyfill": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.5.6.tgz",
@@ -2213,6 +2574,14 @@
"crossvent": "1.5.5"
}
},
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
"node_modules/editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@@ -2237,6 +2606,24 @@
"semver": "bin/semver"
}
},
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
@@ -2306,6 +2693,11 @@
"@esbuild/win32-x64": "0.20.2"
}
},
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2534,16 +2926,101 @@
"node": ">=0.10.0"
}
},
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
+ "node_modules/express": {
+ "version": "4.17.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
+ "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.2",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.2",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.9.7",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.17.2",
+ "serve-static": "1.14.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/external-editor/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -2589,6 +3066,47 @@
"node-fetch": "~2.6.1"
}
},
+ "node_modules/fgdb": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fgdb/-/fgdb-1.0.0.tgz",
+ "integrity": "sha512-2ZaznM1bhXk9e5xBdLzAR8H9yGFB2N51QTfMsHnynyJkqqmPMXSvSH5U6qzsyt73aTLQCFeViSQz5an4PKg4XA==",
+ "dependencies": {
+ "jszip": "~0.2.1",
+ "lie": "^3.0.0",
+ "long": "~1.1.2",
+ "proj4": "^2.3.6"
+ }
+ },
+ "node_modules/figlet": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz",
+ "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -2601,6 +3119,14 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/file-source": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/file-source/-/file-source-0.6.1.tgz",
+ "integrity": "sha512-1R1KneL7eTXmXfKxC10V/9NeGOdbsAXJ+lQ//fvvcHUgtaZcZDWNJNblxAoVOyV1cj45pOtUrR3vZTBwqcW8XA==",
+ "dependencies": {
+ "stream-source": "0.3"
+ }
+ },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -2613,6 +3139,36 @@
"node": ">=8"
}
},
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -2740,11 +3296,26 @@
"vanilla-picker": "^2.12.1"
}
},
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -2759,10 +3330,58 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "deprecated": "This package is no longer supported.",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/fstream/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fstream/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/functions-have-names": {
"version": "1.2.3",
@@ -2889,6 +3508,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ },
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@@ -2941,7 +3565,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -2993,6 +3616,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -3011,6 +3645,21 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
+ "node_modules/http-errors": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/http-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
@@ -3086,6 +3735,11 @@
"node": ">= 4"
}
},
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
"node_modules/immutable": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
@@ -3121,7 +3775,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -3130,8 +3783,7 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "1.3.8",
@@ -3139,6 +3791,29 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
+ "node_modules/inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/internal-slot": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
@@ -3152,6 +3827,22 @@
"node": ">= 0.4"
}
},
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -3257,6 +3948,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -3271,6 +3973,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -3280,6 +3996,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -3438,6 +4162,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -3659,6 +4394,11 @@
"resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.7.tgz",
"integrity": "sha512-ARADHortktl9IZ1tr4GHwGPIAzgz3mLNCbR/YjWtRtc/O0o634O3NeFlpLjv95EvuDA5dc8z6yfgbS8nUc4zcQ=="
},
+ "node_modules/jszip": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-0.2.1.tgz",
+ "integrity": "sha512-Djh0bVj/EiqNTlwKC10xsOf+HtdD6mVq4m7DWdRoUvChB0aj2BThnGl+Kl4uDlRuxlp+EvjZ2ZOo0niTJlh+LQ=="
+ },
"node_modules/jwt-decode": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
@@ -3686,6 +4426,19 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/listenercount": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
+ "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ=="
+ },
"node_modules/local-pkg": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
@@ -3724,6 +4477,14 @@
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "node_modules/long": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/long/-/long-1.1.5.tgz",
+ "integrity": "sha512-TU6nAF5SdasnTr28c7e74P4Crbn9o3/zwo1pM22Wvg2i2vlZ4Eelxwu4QT7j21z0sDBlJDEnEZjXTZg2J8WJrg==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/loupe": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
@@ -3778,6 +4539,11 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/material-design-icons-iconfont": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.1.tgz",
+ "integrity": "sha512-nkoXybeXoofanNagj4tbM6+/LALWpWxYX5ee861to5VQrKgb0/TskTw28Svwn0OGDKajuqK7ShFOsIBxIygGKA=="
+ },
"node_modules/md5-hex": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
@@ -3790,6 +4556,43 @@
"node": ">=8"
}
},
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mgrs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz",
+ "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA=="
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
@@ -3809,11 +4612,18 @@
"node": ">= 0.6"
}
},
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -3821,11 +4631,30 @@
"node": "*"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/mitt": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
"integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
},
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
"node_modules/mlly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.3.0.tgz",
@@ -3863,6 +4692,28 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"devOptional": true
},
+ "node_modules/multer": {
+ "version": "1.4.5-lts.1",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+ "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
+ "dependencies": {
+ "append-field": "^1.0.0",
+ "busboy": "^1.0.0",
+ "concat-stream": "^1.5.2",
+ "mkdirp": "^0.5.4",
+ "object-assign": "^4.1.1",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
@@ -3891,6 +4742,14 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/node-fetch": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
@@ -3957,6 +4816,14 @@
"integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
"dev": true
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
@@ -4005,15 +4872,54 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
"dependencies": {
"wrappy": "1"
}
},
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -4031,6 +4937,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -4090,6 +5004,14 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -4103,7 +5025,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4117,6 +5038,25 @@
"node": ">=8"
}
},
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "node_modules/path-source": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/path-source/-/path-source-0.1.3.tgz",
+ "integrity": "sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==",
+ "dependencies": {
+ "array-source": "0.0",
+ "file-source": "0.6"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
"node_modules/pathe": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
@@ -4312,12 +5252,38 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/proj4": {
+ "version": "2.7.5",
+ "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.7.5.tgz",
+ "integrity": "sha512-5ecXUXbHAfvdhfBQpU7EhUfPCQGUCPmVup/4gnZA3bJY3JcK/xxzm4QQDz1xiXokN6ux65VDczlCtBtKrTSpAQ==",
+ "dependencies": {
+ "mgrs": "1.0.0",
+ "wkt-parser": "^1.3.1"
+ }
+ },
"node_modules/proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
"integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
"dev": true
},
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -4352,6 +5318,17 @@
"vue": "^3.0.0"
}
},
+ "node_modules/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
@@ -4422,12 +5399,69 @@
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
},
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
+ "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "1.8.1",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/react-is": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true
},
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readable-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -4440,6 +5474,17 @@
"node": ">=8.10.0"
}
},
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/redux": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
@@ -4489,6 +5534,22 @@
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -4498,6 +5559,18 @@
"node": ">=4"
}
},
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -4581,6 +5654,14 @@
"integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
"dev": true
},
+ "node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -4604,11 +5685,40 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sass": {
"version": "1.63.4",
@@ -4627,6 +5737,11 @@
"node": ">=14.0.0"
}
},
+ "node_modules/sax": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
+ },
"node_modules/saxes": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
@@ -4677,6 +5792,88 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
+ "node_modules/send": {
+ "version": "0.17.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
+ "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "1.8.1",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/serve-static": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
+ "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shapefile": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/shapefile/-/shapefile-0.6.6.tgz",
+ "integrity": "sha512-rLGSWeK2ufzCVx05wYd+xrWnOOdSV7xNUW5/XFgx3Bc02hBkpMlrd2F1dDII7/jhWzv0MSyBFh5uJIy9hLdfuw==",
+ "dependencies": {
+ "array-source": "0.0",
+ "commander": "2",
+ "path-source": "0.1",
+ "slice-source": "0.4",
+ "stream-source": "0.3",
+ "text-encoding": "^0.6.4"
+ },
+ "bin": {
+ "dbf2json": "bin/dbf2json",
+ "shp2json": "bin/shp2json"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4698,6 +5895,41 @@
"node": ">=8"
}
},
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/shelljs/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -4723,11 +5955,21 @@
"integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==",
"dev": true
},
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
"node_modules/signature_pad": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-4.1.5.tgz",
"integrity": "sha512-VOE846UbQMeLBbcR08KwjwE1wNLgp3gqC7yr/AELkgSMs/BdRpxIZna6K5XyZJpA7IWq9GiInw1C8PLm57VO6Q=="
},
+ "node_modules/slice-source": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/slice-source/-/slice-source-0.4.1.tgz",
+ "integrity": "sha512-YiuPbxpCj4hD9Qs06hGAz/OZhQ0eDuALN0lRWJez0eD/RevzKqGdUx1IOMUnXgpr+sXZLq3g8ERwbAH0bCb8vg=="
+ },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -4765,6 +6007,14 @@
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true
},
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/std-env": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz",
@@ -4782,16 +6032,54 @@
"node": ">= 0.4"
}
},
+ "node_modules/stream-source": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/stream-source/-/stream-source-0.3.5.tgz",
+ "integrity": "sha512-ZuEDP9sgjiAwUVoDModftG0JtYiLUV8K4ljYD1VyUMRWtbVf92474o4kuuul43iZ8t/hRuiDAx1dIJSvirrK/g=="
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/string-hash": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
},
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -4827,7 +6115,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4835,6 +6122,17 @@
"node": ">=8"
}
},
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -4893,12 +6191,23 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/text-encoding": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
+ "integrity": "sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==",
+ "deprecated": "no longer maintained"
+ },
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
+ },
"node_modules/ticky": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz",
@@ -4950,6 +6259,17 @@
"@popperjs/core": "^2.9.0"
}
},
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -4962,6 +6282,22 @@
"node": ">=8.0"
}
},
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/touch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
+ "bin": {
+ "nodetouch": "bin/nodetouch.js"
+ }
+ },
"node_modules/tough-cookie": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
@@ -4982,6 +6318,19 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
+ "node_modules/traverse": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -5020,6 +6369,23 @@
"resolved": "https://registry.npmjs.org/type-func/-/type-func-1.0.3.tgz",
"integrity": "sha512-YA90CUk+i00tWESPNRMahywXhAz+12NLJLKlOWrgHIbqaFXjdZrWstRghaibOW/IxhPjui4SmXxO/03XSGRIjA=="
},
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+ },
"node_modules/ufo": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz",
@@ -5035,6 +6401,31 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unzipper": {
+ "version": "0.10.14",
+ "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
+ "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
+ "dependencies": {
+ "big-integer": "^1.6.17",
+ "binary": "~0.3.0",
+ "bluebird": "~3.4.1",
+ "buffer-indexof-polyfill": "~1.0.0",
+ "duplexer2": "~0.1.4",
+ "fstream": "^1.0.12",
+ "graceful-fs": "^4.2.2",
+ "listenercount": "~1.0.1",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "~1.0.4"
+ }
+ },
"node_modules/upath": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
@@ -5067,8 +6458,15 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
},
"node_modules/uuid": {
"version": "9.0.0",
@@ -5100,6 +6498,14 @@
"@sphinxxxx/color-conversion": "^2.2.2"
}
},
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/vite": {
"version": "5.2.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz",
@@ -6483,6 +7889,11 @@
"node": ">=8"
}
},
+ "node_modules/wkt-parser": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.3.tgz",
+ "integrity": "sha512-ZnV3yH8/k58ZPACOXeiHaMuXIiaTk1t0hSUVisbO0t4RjA5wPpUytcxeyiN2h+LZRrmuHIh/1UlrR9e7DHDvTw=="
+ },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -6495,8 +7906,7 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.13.0",
@@ -6528,12 +7938,40 @@
"node": ">=12"
}
},
+ "node_modules/xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
"node_modules/yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
diff --git a/app/frontend/package.json b/app/frontend/package.json
index 42fdb9f7c..d668012a2 100644
--- a/app/frontend/package.json
+++ b/app/frontend/package.json
@@ -31,6 +31,7 @@
},
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
+ "@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
diff --git a/app/frontend/public/index.html b/app/frontend/public/index.html
index 5e1d6e99a..1dfc07d33 100755
--- a/app/frontend/public/index.html
+++ b/app/frontend/public/index.html
@@ -1,5 +1,6 @@
+
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index a8b7c1563..0a44c69e2 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -26,9 +26,10 @@ class MapComponent extends FieldComponent {
render() {
return super.render(
- this.renderTemplate('input', {
- input: `map goes here
`,
- })
+ this
+ // this.renderTemplate('input', {
+ // input: `map goes here
`,
+ // })
);
}
diff --git a/components/src/components/index.ts b/components/src/components/index.ts
index c1c66f751..13289e107 100755
--- a/components/src/components/index.ts
+++ b/components/src/components/index.ts
@@ -46,7 +46,6 @@ import simplebuttonadvanced from './SimpleButtonAdvanced/Component';
import bcaddress from './BCAddress/Component';
import simplebcaddress from './SimpleBCAddress/Component';
import MapComponent from './Map/Component';
-import map from './Map/Component'
export default {
orgbook,
@@ -97,6 +96,4 @@ export default {
bcaddress,
simplebcaddress,
MapComponent,
- simplebcaddress,
- map
};
From 1a3145385c0bbd4ff2177d8acb31a09c3b309082 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 27 May 2024 10:00:48 -0700
Subject: [PATCH 04/80] Added map component changes
---
.../src/components/Map/Common/Constants.d.ts | 4 +
.../src/components/Map/Common/Constants.js | 4 +
.../src/components/Map/Common/Constants.ts | 4 -
components/src/components/Map/Component.d.ts | 16 +++
.../src/components/Map/Component.form.d.ts | 1 +
.../{Component.form.ts => Component.form.js} | 5 +-
components/src/components/Map/Component.js | 60 ++++++++++
components/src/components/Map/Component.ts | 53 ---------
.../Map/editForm/Component.edit.data.d.ts | 29 +++++
...nt.edit.data.ts => Component.edit.data.js} | 4 +-
.../Map/editForm/Component.edit.display.d.ts | 81 +++++++++++++
.../Map/editForm/Component.edit.display.js | 107 +++++++++++++++++
.../Map/editForm/Component.edit.display.ts | 108 ------------------
.../editForm/Component.edit.validation.d.ts | 26 +++++
...dation.ts => Component.edit.validation.js} | 0
15 files changed, 331 insertions(+), 171 deletions(-)
create mode 100644 components/src/components/Map/Common/Constants.d.ts
create mode 100644 components/src/components/Map/Common/Constants.js
delete mode 100644 components/src/components/Map/Common/Constants.ts
create mode 100644 components/src/components/Map/Component.d.ts
create mode 100644 components/src/components/Map/Component.form.d.ts
rename components/src/components/Map/{Component.form.ts => Component.form.js} (97%)
create mode 100644 components/src/components/Map/Component.js
delete mode 100644 components/src/components/Map/Component.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.data.d.ts
rename components/src/components/Map/editForm/{Component.edit.data.ts => Component.edit.data.js} (94%)
create mode 100644 components/src/components/Map/editForm/Component.edit.display.d.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.display.js
delete mode 100644 components/src/components/Map/editForm/Component.edit.display.ts
create mode 100644 components/src/components/Map/editForm/Component.edit.validation.d.ts
rename components/src/components/Map/editForm/{Component.edit.validation.ts => Component.edit.validation.js} (100%)
diff --git a/components/src/components/Map/Common/Constants.d.ts b/components/src/components/Map/Common/Constants.d.ts
new file mode 100644
index 000000000..0b0a10000
--- /dev/null
+++ b/components/src/components/Map/Common/Constants.d.ts
@@ -0,0 +1,4 @@
+export declare abstract class Constants {
+ static readonly DEFAULT_HELP_LINK: string;
+ static readonly ADV: string;
+}
diff --git a/components/src/components/Map/Common/Constants.js b/components/src/components/Map/Common/Constants.js
new file mode 100644
index 000000000..0ca555292
--- /dev/null
+++ b/components/src/components/Map/Common/Constants.js
@@ -0,0 +1,4 @@
+export class Constants {
+ static DEFAULT_HELP_LINK = 'https://github.com/bcgov/common-hosted-form-service/wiki';
+ static ADV = '';
+}
diff --git a/components/src/components/Map/Common/Constants.ts b/components/src/components/Map/Common/Constants.ts
deleted file mode 100644
index 969ac7b2a..000000000
--- a/components/src/components/Map/Common/Constants.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export abstract class Constants {
- static readonly DEFAULT_HELP_LINK: string = 'https://github.com/bcgov/common-hosted-form-service/wiki';
- static readonly ADV: string = '';
-}
diff --git a/components/src/components/Map/Component.d.ts b/components/src/components/Map/Component.d.ts
new file mode 100644
index 000000000..37f1f712e
--- /dev/null
+++ b/components/src/components/Map/Component.d.ts
@@ -0,0 +1,16 @@
+import { Components } from 'formiojs';
+declare const FieldComponent: typeof Components.components.field;
+declare class MapComponent extends FieldComponent {
+ static schema(...extend: any[]): import("formiojs").ExtendedComponentSchema;
+ static get builderInfo(): {
+ title: string;
+ group: string;
+ icon: string;
+ weight: number;
+ schema: import("formiojs").ExtendedComponentSchema;
+ };
+ render(): any;
+ attach(element: HTMLElement): void;
+ loadMap(): void;
+}
+export default MapComponent;
diff --git a/components/src/components/Map/Component.form.d.ts b/components/src/components/Map/Component.form.d.ts
new file mode 100644
index 000000000..c1e415834
--- /dev/null
+++ b/components/src/components/Map/Component.form.d.ts
@@ -0,0 +1 @@
+export default function (...extend: any[]): any;
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.js
similarity index 97%
rename from components/src/components/Map/Component.form.ts
rename to components/src/components/Map/Component.form.js
index d82d83b81..c8355339f 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.js
@@ -1,13 +1,10 @@
import baseEditForm from 'formiojs/components/_classes/component/Component.form';
-
import EditData from './editForm/Component.edit.data';
import EditDisplay from './editForm/Component.edit.display';
import EditValidation from './editForm/Component.edit.validation';
-
import SimpleApi from '../Common/Simple.edit.api';
import SimpleConditional from '../Common/Simple.edit.conditional';
-
-export default function(...extend) {
+export default function (...extend) {
return baseEditForm([
EditDisplay,
{
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.js
new file mode 100644
index 000000000..bb02203a9
--- /dev/null
+++ b/components/src/components/Map/Component.js
@@ -0,0 +1,60 @@
+import { Components } from 'formiojs';
+const FieldComponent = Components.components.field;
+
+class MapComponent extends FieldComponent {
+ static schema(...extend) {
+ return FieldComponent.schema({
+ type: 'map',
+ label: 'Map',
+ key: 'map',
+ input: true,
+ ...extend,
+ });
+ }
+ static get builderInfo() {
+ return {
+ title: 'Map',
+ group: 'basic',
+ icon: 'map',
+ weight: 70,
+ schema: MapComponent.schema(),
+ };
+ }
+
+ render() {
+ return super.render(
+ `
+
+
+
+
+ `
+ )
+ }
+ attach(element) {
+ super.attach(element);
+ this.loadMap();
+ }
+ loadMap() {
+ const mapContainer = document.getElementById('map');
+ if (mapContainer) {
+ console.log('inside Map');
+ // SMK.init({ container: 'map' }).then((smk) => {
+ // // Additional SMK configuration goes here
+ // });
+ }
+ }
+
+}
+
+const testComponent = (data) =>{
+ const printData = (d) =>{ console.log(d)}
+ console.log(data)
+ printData(data)
+}
+Components.addComponent('map', MapComponent);
+export default MapComponent;
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
deleted file mode 100644
index 0a44c69e2..000000000
--- a/components/src/components/Map/Component.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Components } from 'formiojs';
-//import SMK from '@bcgov/smk';
-
-const FieldComponent = Components.components.field;
-
-class MapComponent extends FieldComponent {
- static schema(...extend: any[]) {
- return FieldComponent.schema({
- type: 'map',
- label: 'Map',
- key: 'map',
- input: true,
- ...extend,
- });
- }
-
- static get builderInfo() {
- return {
- title: 'Map',
- group: 'basic',
- icon: 'map',
- weight: 70,
- schema: MapComponent.schema(),
- };
- }
-
- render() {
- return super.render(
- this
- // this.renderTemplate('input', {
- // input: `map goes here
`,
- // })
- );
- }
-
- attach(element: HTMLElement) {
- super.attach(element);
- this.loadMap();
- }
-
- loadMap() {
- const mapContainer = document.getElementById('map');
- if (mapContainer) {
- console.log('inside Map');
- // SMK.init({ container: 'map' }).then((smk) => {
- // // Additional SMK configuration goes here
- // });
- }
- }
-}
-
-Components.addComponent('map', MapComponent);
-export default MapComponent;
diff --git a/components/src/components/Map/editForm/Component.edit.data.d.ts b/components/src/components/Map/editForm/Component.edit.data.d.ts
new file mode 100644
index 000000000..010dcbdd8
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.data.d.ts
@@ -0,0 +1,29 @@
+declare const _default: ({
+ weight: number;
+ type: string;
+ label: string;
+ tooltip: string;
+ key: string;
+ input: boolean;
+ placeholder?: undefined;
+} | {
+ type: string;
+ label: string;
+ key: string;
+ weight: number;
+ placeholder: string;
+ tooltip: string;
+ input: boolean;
+} | {
+ weight: number;
+ type: string;
+ label: string;
+ key: string;
+ tooltip: string;
+ input: boolean;
+ values: {
+ value: string;
+ label: string;
+ }[];
+})[];
+export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.js
similarity index 94%
rename from components/src/components/Map/editForm/Component.edit.data.ts
rename to components/src/components/Map/editForm/Component.edit.data.js
index 9c28c5944..4c548cb29 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.js
@@ -1,6 +1,6 @@
import common from '../../Common/Simple.edit.data';
export default [
- ...common,
+ ...common,
{
weight: 200,
type: 'radio',
@@ -16,7 +16,7 @@ export default [
{
value: 'uppercase',
label: 'Uppercase'
- },{
+ }, {
value: 'lowercase',
label: 'Lowercase'
}
diff --git a/components/src/components/Map/editForm/Component.edit.display.d.ts b/components/src/components/Map/editForm/Component.edit.display.d.ts
new file mode 100644
index 000000000..57d96c128
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.display.d.ts
@@ -0,0 +1,81 @@
+declare const _default: {
+ key: string;
+ components: ({
+ key: string;
+ ignore: boolean;
+ } | {
+ weight: number;
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ tooltip: string;
+ customConditional(context: any): boolean;
+ defaultValue?: undefined;
+ reorder?: undefined;
+ components?: undefined;
+ ignore?: undefined;
+ } | {
+ weight: number;
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ tooltip?: undefined;
+ defaultValue?: undefined;
+ reorder?: undefined;
+ components?: undefined;
+ ignore?: undefined;
+ } | {
+ weight: number;
+ type: string;
+ input: boolean;
+ key: string;
+ defaultValue: boolean;
+ label: string;
+ tooltip?: undefined;
+ reorder?: undefined;
+ components?: undefined;
+ ignore?: undefined;
+ } | {
+ weight: number;
+ type: string;
+ input: boolean;
+ key: string;
+ label: string;
+ customConditional(context: any): boolean;
+ reorder: boolean;
+ components: {
+ type: string;
+ key: string;
+ label: string;
+ input: boolean;
+ }[];
+ tooltip?: undefined;
+ defaultValue?: undefined;
+ ignore?: undefined;
+ } | {
+ weight: number;
+ key: string;
+ ignore: boolean;
+ type?: undefined;
+ input?: undefined;
+ label?: undefined;
+ tooltip?: undefined;
+ defaultValue?: undefined;
+ reorder?: undefined;
+ components?: undefined;
+ } | {
+ weight: number;
+ type: string;
+ label: string;
+ tooltip: string;
+ key: string;
+ input: boolean;
+ defaultValue?: undefined;
+ reorder?: undefined;
+ components?: undefined;
+ ignore?: undefined;
+ })[];
+};
+export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.display.js b/components/src/components/Map/editForm/Component.edit.display.js
new file mode 100644
index 000000000..2cf26efa4
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.display.js
@@ -0,0 +1,107 @@
+import common from '../../Common/Simple.edit.display';
+export default {
+ key: 'display',
+ components: [
+ ...common,
+ {
+ key: 'refreshOnChange',
+ ignore: true
+ },
+ {
+ key: 'className',
+ ignore: true,
+ },
+ {
+ key: 'widget',
+ ignore: true
+ },
+ {
+ key: 'widget.type',
+ ignore: true
+ },
+ {
+ key: 'prefix',
+ ignore: true
+ },
+ {
+ key: 'suffix',
+ ignore: true
+ },
+ {
+ weight: 410,
+ type: 'textfield',
+ input: true,
+ key: 'inputMask',
+ label: 'Input Mask',
+ tooltip: 'An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the jquery.inputmask documentation for more information.',
+ customConditional(context) {
+ return !context.data.allowMultipleMasks;
+ }
+ },
+ {
+ weight: 413,
+ type: 'checkbox',
+ input: true,
+ key: 'allowMultipleMasks',
+ label: 'Allow Multiple Masks'
+ },
+ {
+ weight: 1350,
+ type: 'checkbox',
+ input: true,
+ key: 'spellcheck',
+ defaultValue: true,
+ label: 'Allow Spellcheck'
+ },
+ {
+ weight: 417,
+ type: 'datagrid',
+ input: true,
+ key: 'inputMasks',
+ label: 'Input Masks',
+ customConditional(context) {
+ return context.data.allowMultipleMasks === true;
+ },
+ reorder: true,
+ components: [
+ {
+ type: 'textfield',
+ key: 'label',
+ label: 'Label',
+ input: true
+ },
+ {
+ type: 'textfield',
+ key: 'mask',
+ label: 'Mask',
+ input: true
+ }
+ ]
+ },
+ {
+ key: 'autocomplete',
+ ignore: true,
+ },
+ {
+ weight: 1300,
+ key: 'mask',
+ ignore: true
+ },
+ {
+ weight: 1200,
+ type: 'checkbox',
+ label: 'Show Word Counter',
+ tooltip: 'Show a live count of the number of words.',
+ key: 'showWordCount',
+ input: true
+ },
+ {
+ weight: 1201,
+ type: 'checkbox',
+ label: 'Show Character Counter',
+ tooltip: 'Show a live count of the number of characters.',
+ key: 'showCharCount',
+ input: true
+ }
+ ]
+};
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
deleted file mode 100644
index 6a3c34c35..000000000
--- a/components/src/components/Map/editForm/Component.edit.display.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-import common from '../../Common/Simple.edit.display';
-export default
- {
- key: 'display',
- components: [
- ...common,
- {
- key: 'refreshOnChange',
- ignore: true
- },
- {
- key: 'className',
- ignore: true,
- },
- {
- key: 'widget',
- ignore: true
- },
- {
- key: 'widget.type',
- ignore: true
- },
- {
- key: 'prefix',
- ignore: true
- },
- {
- key: 'suffix',
- ignore: true
- },
- {
- weight: 410,
- type: 'textfield',
- input: true,
- key: 'inputMask',
- label: 'Input Mask',
- tooltip: 'An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the jquery.inputmask documentation for more information.',
- customConditional(context) {
- return !context.data.allowMultipleMasks;
- }
- },
- {
- weight: 413,
- type: 'checkbox',
- input: true,
- key: 'allowMultipleMasks',
- label: 'Allow Multiple Masks'
- },
- {
- weight: 1350,
- type: 'checkbox',
- input: true,
- key: 'spellcheck',
- defaultValue: true,
- label: 'Allow Spellcheck'
- },
- {
- weight: 417,
- type: 'datagrid',
- input: true,
- key: 'inputMasks',
- label: 'Input Masks',
- customConditional(context) {
- return context.data.allowMultipleMasks === true;
- },
- reorder: true,
- components: [
- {
- type: 'textfield',
- key: 'label',
- label: 'Label',
- input: true
- },
- {
- type: 'textfield',
- key: 'mask',
- label: 'Mask',
- input: true
- }
- ]
- },
- {
- key: 'autocomplete',
- ignore: true,
- },
- {
- weight: 1300,
- key: 'mask',
- ignore: true
- },
- {
- weight: 1200,
- type: 'checkbox',
- label: 'Show Word Counter',
- tooltip: 'Show a live count of the number of words.',
- key: 'showWordCount',
- input: true
- },
- {
- weight: 1201,
- type: 'checkbox',
- label: 'Show Character Counter',
- tooltip: 'Show a live count of the number of characters.',
- key: 'showCharCount',
- input: true
- }
- ]
- }
diff --git a/components/src/components/Map/editForm/Component.edit.validation.d.ts b/components/src/components/Map/editForm/Component.edit.validation.d.ts
new file mode 100644
index 000000000..e2ae418b0
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.validation.d.ts
@@ -0,0 +1,26 @@
+declare const _default: ({
+ weight: number;
+ type: string;
+ defaultValue: boolean;
+ label: string;
+ tooltip: string;
+ key: string;
+ input: boolean;
+} | {
+ weight: number;
+ type: string;
+ label: string;
+ tooltip: string;
+ key: string;
+ input: boolean;
+ placeholder?: undefined;
+} | {
+ weight: number;
+ key: string;
+ label: string;
+ placeholder: string;
+ type: string;
+ tooltip: string;
+ input: boolean;
+})[];
+export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.validation.ts b/components/src/components/Map/editForm/Component.edit.validation.js
similarity index 100%
rename from components/src/components/Map/editForm/Component.edit.validation.ts
rename to components/src/components/Map/editForm/Component.edit.validation.js
From 9c7733e19b48b6c5a320ed7d0771fca7d10a88e5 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 28 May 2024 15:16:24 -0700
Subject: [PATCH 05/80] Init Leaflet Component
---
app/frontend/package-lock.json | 13 +++++++
app/frontend/package.json | 3 ++
components/src/components/Map/Component.js | 45 +++++++++++++++-------
3 files changed, 47 insertions(+), 14 deletions(-)
diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json
index 1407b2b07..5c411abce 100644
--- a/app/frontend/package-lock.json
+++ b/app/frontend/package-lock.json
@@ -10,6 +10,7 @@
"license": "Apache-2.0",
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
+ "@bcgov/smk": "^1.2.1",
"@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
@@ -22,6 +23,8 @@
"font-awesome": "^4.7.0",
"formiojs": "^4.14.13",
"keycloak-js": "^21.1.1",
+ "leaflet": "^1.9.4",
+ "leaflet-draw": "^1.0.4",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"moment": "^2.29.4",
@@ -4413,6 +4416,16 @@
"js-sha256": "^0.9.0"
}
},
+ "node_modules/leaflet": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
+ "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA=="
+ },
+ "node_modules/leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
diff --git a/app/frontend/package.json b/app/frontend/package.json
index d668012a2..1d78085e3 100644
--- a/app/frontend/package.json
+++ b/app/frontend/package.json
@@ -31,6 +31,7 @@
},
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
+ "@bcgov/smk": "^1.2.1",
"@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
@@ -43,6 +44,8 @@
"font-awesome": "^4.7.0",
"formiojs": "^4.14.13",
"keycloak-js": "^21.1.1",
+ "leaflet": "^1.9.4",
+ "leaflet-draw": "^1.0.4",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"moment": "^2.29.4",
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.js
index bb02203a9..fc507fb4a 100644
--- a/components/src/components/Map/Component.js
+++ b/components/src/components/Map/Component.js
@@ -1,5 +1,11 @@
import { Components } from 'formiojs';
const FieldComponent = Components.components.field;
+import L from "leaflet"
+import "leaflet-draw"
+import 'leaflet/dist/leaflet.css';
+import "leaflet-draw/dist/leaflet.draw-src.css";
+
+const CENTER = [48.41938669910753, -123.37030649185182]
class MapComponent extends FieldComponent {
static schema(...extend) {
@@ -24,28 +30,39 @@ class MapComponent extends FieldComponent {
render() {
return super.render(
`
-
-
-
+
`
)
}
attach(element) {
- super.attach(element);
+ const superAttach = super.attach(element);
this.loadMap();
+ return superAttach
}
loadMap() {
- const mapContainer = document.getElementById('map');
- if (mapContainer) {
- console.log('inside Map');
- // SMK.init({ container: 'map' }).then((smk) => {
- // // Additional SMK configuration goes here
- // });
+ const mapContainer = document.getElementById("mapContainer");
+ if(mapContainer){
+ const map = L.map(mapContainer,{drawControl:true}).setView(CENTER, 13);
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
+ attribution: '© OpenStreetMap contributors',
+ }).addTo(map);
+ var drawnItems = new L.FeatureGroup()
+ var drawControl = new L.Control.Draw({
+ edit:{
+ featureGroup: drawnItems
+ }
+ })
+ map.addControl(drawControl)
+
+ //event listener
+ map.on('draw:created', function(e){
+ console.log(e)
+ var type = e.layerType
+ var layer = e.layer
+
+ drawnItems.addLayer(layer)
+ })
}
}
From 9c73981e3c2c85f8a142f1c06c0b920e9d57958f Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 28 May 2024 17:15:17 -0700
Subject: [PATCH 06/80] Fixed marker bug, reduced options to point and circle,
prelim work on submission data
---
components/src/components/Map/Component.js | 48 ++++++++++++++--------
1 file changed, 32 insertions(+), 16 deletions(-)
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.js
index fc507fb4a..f0fd1a16e 100644
--- a/components/src/components/Map/Component.js
+++ b/components/src/components/Map/Component.js
@@ -1,11 +1,11 @@
-import { Components } from 'formiojs';
+import { Formio, Components } from 'formiojs';
const FieldComponent = Components.components.field;
import L from "leaflet"
import "leaflet-draw"
import 'leaflet/dist/leaflet.css';
import "leaflet-draw/dist/leaflet.draw-src.css";
-const CENTER = [48.41938669910753, -123.37030649185182]
+const CENTER = [48.41939025932759,-123.37029576301576]
class MapComponent extends FieldComponent {
static schema(...extend) {
@@ -30,7 +30,7 @@ class MapComponent extends FieldComponent {
render() {
return super.render(
`
-
+
`
)
@@ -42,36 +42,52 @@ class MapComponent extends FieldComponent {
}
loadMap() {
const mapContainer = document.getElementById("mapContainer");
+ const form = document.getElementsByClassName("formio")
if(mapContainer){
- const map = L.map(mapContainer,{drawControl:true}).setView(CENTER, 13);
+ const map = L.map(mapContainer).setView(CENTER, 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors',
- }).addTo(map);
- var drawnItems = new L.FeatureGroup()
- var drawControl = new L.Control.Draw({
+ }).addTo(map);
+
+
+
+ if(form && form[0]?.classList.contains("formbuilder")){
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ }
+
+ //Initialize Draw Layer
+ let drawnItems = new L.FeatureGroup()
+ map.addLayer(drawnItems)
+ //Add Drawing Controllers
+ let drawControl = new L.Control.Draw({
+ draw:{
+ circlemarker:false,
+ polygon: false,
+ polyline: false,
+ rectangle:false,
+ },
edit:{
featureGroup: drawnItems
}
})
+ //Attach Controls to map
map.addControl(drawControl)
- //event listener
+ //event listener for drawn objects
map.on('draw:created', function(e){
- console.log(e)
- var type = e.layerType
- var layer = e.layer
+ //console.log(e)
+ let type = e.layerType
+ let layer = e.layer
drawnItems.addLayer(layer)
+ console.log(drawnItems._layers)
+
})
}
}
}
-const testComponent = (data) =>{
- const printData = (d) =>{ console.log(d)}
- console.log(data)
- printData(data)
-}
Components.addComponent('map', MapComponent);
export default MapComponent;
From 6e91baf5f5282982bf70c718bc36f0d6f6e5fcb8 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 31 May 2024 15:45:59 -0700
Subject: [PATCH 07/80] refactor map component
---
components/src/components/Map/Component.js | 55 ++++-----------------
components/src/components/Map/MapService.js | 45 +++++++++++++++++
2 files changed, 54 insertions(+), 46 deletions(-)
create mode 100644 components/src/components/Map/MapService.js
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.js
index f0fd1a16e..0962184f9 100644
--- a/components/src/components/Map/Component.js
+++ b/components/src/components/Map/Component.js
@@ -1,9 +1,6 @@
-import { Formio, Components } from 'formiojs';
+import { Components } from 'formiojs';
const FieldComponent = Components.components.field;
-import L from "leaflet"
-import "leaflet-draw"
-import 'leaflet/dist/leaflet.css';
-import "leaflet-draw/dist/leaflet.draw-src.css";
+import MapService from './MapService';
const CENTER = [48.41939025932759,-123.37029576301576]
@@ -43,48 +40,14 @@ class MapComponent extends FieldComponent {
loadMap() {
const mapContainer = document.getElementById("mapContainer");
const form = document.getElementsByClassName("formio")
- if(mapContainer){
- const map = L.map(mapContainer).setView(CENTER, 13);
- L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
- attribution: '© OpenStreetMap contributors',
- }).addTo(map);
-
-
-
- if(form && form[0]?.classList.contains("formbuilder")){
- map.dragging.disable();
- map.scrollWheelZoom.disable();
- }
-
- //Initialize Draw Layer
- let drawnItems = new L.FeatureGroup()
- map.addLayer(drawnItems)
- //Add Drawing Controllers
- let drawControl = new L.Control.Draw({
- draw:{
- circlemarker:false,
- polygon: false,
- polyline: false,
- rectangle:false,
- },
- edit:{
- featureGroup: drawnItems
- }
- })
- //Attach Controls to map
- map.addControl(drawControl)
-
- //event listener for drawn objects
- map.on('draw:created', function(e){
- //console.log(e)
- let type = e.layerType
- let layer = e.layer
-
- drawnItems.addLayer(layer)
- console.log(drawnItems._layers)
-
- })
+ const drawOptions = {
+ circlemarker:false,
+ polygon: false,
+ polyline: false,
+ rectangle:false
}
+ MapService({mapContainer, drawOptions, center:CENTER, form})
+
}
}
diff --git a/components/src/components/Map/MapService.js b/components/src/components/Map/MapService.js
new file mode 100644
index 000000000..7cf71a297
--- /dev/null
+++ b/components/src/components/Map/MapService.js
@@ -0,0 +1,45 @@
+import L from "leaflet"
+import "leaflet-draw"
+import 'leaflet/dist/leaflet.css';
+import "leaflet-draw/dist/leaflet.draw-src.css";
+
+export default function MapService(options){
+ const {mapContainer, center, drawOptions, form } = options;
+ if(mapContainer){
+ const map = L.map(mapContainer).setView(center, 13);
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
+ attribution: '© OpenStreetMap contributors',
+ }).addTo(map);
+
+
+
+ if(form && form[0]?.classList.contains("formbuilder")){
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ }
+
+ //Initialize Draw Layer
+ let drawnItems = new L.FeatureGroup()
+ map.addLayer(drawnItems)
+ //Add Drawing Controllers
+ let drawControl = new L.Control.Draw({
+ draw:drawOptions,
+ edit:{
+ featureGroup: drawnItems
+ }
+ })
+ //Attach Controls to map
+ map.addControl(drawControl)
+
+ //event listener for drawn objects
+ map.on('draw:created', function(e){
+ //console.log(e)
+ let type = e.layerType
+ let layer = e.layer
+
+ drawnItems.addLayer(layer)
+ console.log(drawnItems._layers)
+
+ })
+ }
+}
\ No newline at end of file
From a878ac498f110cc9c8173052d7130fcdea7e5787 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 3 Jun 2024 09:09:36 -0700
Subject: [PATCH 08/80] refactoring intermediate step
---
components/src/components/Map/Component.d.ts | 16 ----------------
.../src/components/Map/Component.form.d.ts | 1 -
components/src/components/Map/Component.js | 10 +++++-----
.../components/Map/{ => services}/MapService.js | 0
4 files changed, 5 insertions(+), 22 deletions(-)
delete mode 100644 components/src/components/Map/Component.d.ts
delete mode 100644 components/src/components/Map/Component.form.d.ts
rename components/src/components/Map/{ => services}/MapService.js (100%)
diff --git a/components/src/components/Map/Component.d.ts b/components/src/components/Map/Component.d.ts
deleted file mode 100644
index 37f1f712e..000000000
--- a/components/src/components/Map/Component.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Components } from 'formiojs';
-declare const FieldComponent: typeof Components.components.field;
-declare class MapComponent extends FieldComponent {
- static schema(...extend: any[]): import("formiojs").ExtendedComponentSchema;
- static get builderInfo(): {
- title: string;
- group: string;
- icon: string;
- weight: number;
- schema: import("formiojs").ExtendedComponentSchema;
- };
- render(): any;
- attach(element: HTMLElement): void;
- loadMap(): void;
-}
-export default MapComponent;
diff --git a/components/src/components/Map/Component.form.d.ts b/components/src/components/Map/Component.form.d.ts
deleted file mode 100644
index c1e415834..000000000
--- a/components/src/components/Map/Component.form.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export default function (...extend: any[]): any;
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.js
index 0962184f9..3cf8b77c4 100644
--- a/components/src/components/Map/Component.js
+++ b/components/src/components/Map/Component.js
@@ -1,10 +1,10 @@
import { Components } from 'formiojs';
const FieldComponent = Components.components.field;
-import MapService from './MapService';
+// import MapService from './services/MapService';
const CENTER = [48.41939025932759,-123.37029576301576]
-class MapComponent extends FieldComponent {
+class Component extends FieldComponent {
static schema(...extend) {
return FieldComponent.schema({
type: 'map',
@@ -46,11 +46,11 @@ class MapComponent extends FieldComponent {
polyline: false,
rectangle:false
}
- MapService({mapContainer, drawOptions, center:CENTER, form})
+ // MapService({mapContainer, drawOptions, center:CENTER, form})
}
}
-Components.addComponent('map', MapComponent);
-export default MapComponent;
+// Components.addComponent('map', MapComponent);
+export default Component;
diff --git a/components/src/components/Map/MapService.js b/components/src/components/Map/services/MapService.js
similarity index 100%
rename from components/src/components/Map/MapService.js
rename to components/src/components/Map/services/MapService.js
From 00b49536b5901d462d6a08f35eec91f2a0d69fa5 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 3 Jun 2024 10:52:48 -0700
Subject: [PATCH 09/80] Typescript conversion
---
.../components/Map/{Component.form.js => Component.form.ts} | 0
.../src/components/Map/{Component.js => Component.ts} | 6 +++---
2 files changed, 3 insertions(+), 3 deletions(-)
rename components/src/components/Map/{Component.form.js => Component.form.ts} (100%)
rename components/src/components/Map/{Component.js => Component.ts} (89%)
diff --git a/components/src/components/Map/Component.form.js b/components/src/components/Map/Component.form.ts
similarity index 100%
rename from components/src/components/Map/Component.form.js
rename to components/src/components/Map/Component.form.ts
diff --git a/components/src/components/Map/Component.js b/components/src/components/Map/Component.ts
similarity index 89%
rename from components/src/components/Map/Component.js
rename to components/src/components/Map/Component.ts
index 3cf8b77c4..9b5bf00a2 100644
--- a/components/src/components/Map/Component.js
+++ b/components/src/components/Map/Component.ts
@@ -1,10 +1,10 @@
import { Components } from 'formiojs';
-const FieldComponent = Components.components.field;
+const FieldComponent = (Components as any).components.field;
// import MapService from './services/MapService';
const CENTER = [48.41939025932759,-123.37029576301576]
-class Component extends FieldComponent {
+class Component extends (FieldComponent as any) {
static schema(...extend) {
return FieldComponent.schema({
type: 'map',
@@ -20,7 +20,7 @@ class Component extends FieldComponent {
group: 'basic',
icon: 'map',
weight: 70,
- schema: MapComponent.schema(),
+ schema: Component.schema(),
};
}
From 183e48df0dcb41d853f0e76478dac52994c23648 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Tue, 4 Jun 2024 10:32:01 -0700
Subject: [PATCH 10/80] fixed Unknown Component Render issue
---
.../src/components/designer/FormDesigner.vue | 2 +-
components/package-lock.json | 6 ++
components/package.json | 1 +
components/src/components/Map/Component.ts | 88 +++++++++----------
components/src/components/index.ts | 4 +-
5 files changed, 53 insertions(+), 48 deletions(-)
diff --git a/app/frontend/src/components/designer/FormDesigner.vue b/app/frontend/src/components/designer/FormDesigner.vue
index 8be4e901a..a40bcb83b 100644
--- a/app/frontend/src/components/designer/FormDesigner.vue
+++ b/app/frontend/src/components/designer/FormDesigner.vue
@@ -184,7 +184,7 @@ export default {
simplefile: this.form.userType !== this.ID_MODE.PUBLIC,
bcaddress: true,
simplebcaddress: true,
- MapComponent: true,
+ map: true,
},
},
},
diff --git a/components/package-lock.json b/components/package-lock.json
index 98a073220..0b324868f 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -12,6 +12,7 @@
"@bcgov/smk": "^1.2.1",
"autocompleter": "^7.0.1",
"formiojs": "^4.14.6",
+ "leaflet": "^1.9.4",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
@@ -4380,6 +4381,11 @@
"node": ">= 0.10"
}
},
+ "node_modules/leaflet": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
+ "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA=="
+ },
"node_modules/liftoff": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
diff --git a/components/package.json b/components/package.json
index 70e717b89..759daf3ae 100755
--- a/components/package.json
+++ b/components/package.json
@@ -50,6 +50,7 @@
"@bcgov/smk": "^1.2.1",
"autocompleter": "^7.0.1",
"formiojs": "^4.14.6",
+ "leaflet": "^1.9.4",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 9b5bf00a2..4afa3f19b 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -2,55 +2,53 @@ import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
// import MapService from './services/MapService';
-const CENTER = [48.41939025932759,-123.37029576301576]
+const CENTER = [48.41939025932759, -123.37029576301576];
-class Component extends (FieldComponent as any) {
- static schema(...extend) {
- return FieldComponent.schema({
- type: 'map',
- label: 'Map',
- key: 'map',
- input: true,
- ...extend,
- });
- }
- static get builderInfo() {
- return {
- title: 'Map',
- group: 'basic',
- icon: 'map',
- weight: 70,
- schema: Component.schema(),
- };
- }
-
- render() {
- return super.render(
- `
+export default class Component extends (FieldComponent as any) {
+ static schema(...extend) {
+ return FieldComponent.schema({
+ type: 'map',
+ label: 'Map',
+ key: 'map',
+ input: true,
+ ...extend,
+ });
+ }
+ static get builderInfo() {
+ return {
+ title: 'Map',
+ group: 'basic',
+ icon: 'map',
+ weight: 70,
+ schema: Component.schema(),
+ };
+ }
+
+ render() {
+ return super.render(
+ `
`
- )
- }
- attach(element) {
- const superAttach = super.attach(element);
- this.loadMap();
- return superAttach
- }
- loadMap() {
- const mapContainer = document.getElementById("mapContainer");
- const form = document.getElementsByClassName("formio")
- const drawOptions = {
- circlemarker:false,
- polygon: false,
- polyline: false,
- rectangle:false
- }
- // MapService({mapContainer, drawOptions, center:CENTER, form})
-
- }
-
+ );
+ }
+ attach(element) {
+ const superAttach = super.attach(element);
+ this.loadMap();
+ return superAttach;
+ }
+ loadMap() {
+ const mapContainer = document.getElementById('mapContainer');
+ const form = document.getElementsByClassName('formio');
+ const drawOptions = {
+ circlemarker: false,
+ polygon: false,
+ polyline: false,
+ rectangle: false,
+ };
+ // MapService({mapContainer, drawOptions, center:CENTER, form})
+ }
}
// Components.addComponent('map', MapComponent);
-export default Component;
+export {};
diff --git a/components/src/components/index.ts b/components/src/components/index.ts
index 13289e107..ae1f2cf05 100755
--- a/components/src/components/index.ts
+++ b/components/src/components/index.ts
@@ -45,7 +45,7 @@ import simplesignatureadvanced from './SimpleSignatureAdvanced/Component';
import simplebuttonadvanced from './SimpleButtonAdvanced/Component';
import bcaddress from './BCAddress/Component';
import simplebcaddress from './SimpleBCAddress/Component';
-import MapComponent from './Map/Component';
+import map from './Map/Component';
export default {
orgbook,
@@ -95,5 +95,5 @@ export default {
simplebuttonadvanced,
bcaddress,
simplebcaddress,
- MapComponent,
+ map,
};
From c12741a3fc87e98b8d8ca79bb05ab5765751b6ef Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 4 Jun 2024 15:14:45 -0700
Subject: [PATCH 11/80] Fixes for js->ts conversion, fixes for webpack css
import
---
components/package-lock.json | 197 ++++++++++++++++--
components/package.json | 4 +
components/src/components/Map/Component.ts | 88 ++++----
.../services/{MapService.js => MapService.ts} | 6 +-
components/webpack.config.js | 8 +
5 files changed, 241 insertions(+), 62 deletions(-)
rename components/src/components/Map/services/{MapService.js => MapService.ts} (91%)
diff --git a/components/package-lock.json b/components/package-lock.json
index 0b324868f..e9183741b 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -10,9 +10,13 @@
"license": "Apache-2.0",
"dependencies": {
"@bcgov/smk": "^1.2.1",
+ "@types/leaflet": "^1.9.12",
+ "@types/leaflet-draw": "^1.0.11",
"autocompleter": "^7.0.1",
+ "css-loader": "^7.1.2",
"formiojs": "^4.14.6",
"leaflet": "^1.9.4",
+ "leaflet-draw": "^1.0.4",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
@@ -610,11 +614,32 @@
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
},
+ "node_modules/@types/geojson": {
+ "version": "7946.0.14",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
+ "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
+ },
"node_modules/@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
},
+ "node_modules/@types/leaflet": {
+ "version": "1.9.12",
+ "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.12.tgz",
+ "integrity": "sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/leaflet-draw": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@types/leaflet-draw/-/leaflet-draw-1.0.11.tgz",
+ "integrity": "sha512-dyedtNm3aSmnpi6FM6VSl28cQuvP+MD7pgpXyO3Q1ZOCvrJKmzaDq0P3YZTnnBs61fQCKSnNYmbvCkDgFT9FHQ==",
+ "dependencies": {
+ "@types/leaflet": "*"
+ }
+ },
"node_modules/@types/mocha": {
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
@@ -1911,6 +1936,62 @@
"custom-event": "^1.0.0"
}
},
+ "node_modules/css-loader": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz",
+ "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.33",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.27.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-loader/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -3457,6 +3538,17 @@
"@babel/runtime": "^7.17.2"
}
},
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
"node_modules/idb": {
"version": "6.1.5",
"resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz",
@@ -4386,6 +4478,11 @@
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
"integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA=="
},
+ "node_modules/leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
"node_modules/liftoff": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
@@ -6261,10 +6358,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.23",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
- "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
- "dev": true,
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"funding": [
{
"type": "opencollective",
@@ -6280,19 +6376,90 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
+ "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
+ "dependencies": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
+ "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.4"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "dependencies": {
+ "icss-utils": "^5.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+ "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
"node_modules/postcss/node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "dev": true,
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"funding": [
{
"type": "github",
@@ -7303,10 +7470,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"engines": {
"node": ">=0.10.0"
}
@@ -8342,8 +8508,7 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"node_modules/uuid": {
"version": "3.4.0",
diff --git a/components/package.json b/components/package.json
index 759daf3ae..e62acf96f 100755
--- a/components/package.json
+++ b/components/package.json
@@ -48,9 +48,13 @@
],
"dependencies": {
"@bcgov/smk": "^1.2.1",
+ "@types/leaflet": "^1.9.12",
+ "@types/leaflet-draw": "^1.0.11",
"autocompleter": "^7.0.1",
+ "css-loader": "^7.1.2",
"formiojs": "^4.14.6",
"leaflet": "^1.9.4",
+ "leaflet-draw": "^1.0.4",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 4afa3f19b..475695aac 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -1,54 +1,56 @@
import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
-// import MapService from './services/MapService';
+import MapService from './services/MapService';
-const CENTER = [48.41939025932759, -123.37029576301576];
+const CENTER = [48.41939025932759,-123.37029576301576]
export default class Component extends (FieldComponent as any) {
- static schema(...extend) {
- return FieldComponent.schema({
- type: 'map',
- label: 'Map',
- key: 'map',
- input: true,
- ...extend,
- });
- }
- static get builderInfo() {
- return {
- title: 'Map',
- group: 'basic',
- icon: 'map',
- weight: 70,
- schema: Component.schema(),
- };
- }
-
- render() {
- return super.render(
- `
+ static schema(...extend) {
+ return FieldComponent.schema({
+ type: 'map',
+ label: 'Map',
+ key: 'map',
+ input: true,
+ ...extend,
+ });
+ }
+ static get builderInfo() {
+ return {
+ title: 'Map',
+ group: 'basic',
+ icon: 'map',
+ weight: 70,
+ schema: Component.schema(),
+ };
+ }
+
+ render() {
+ return super.render(
+ `
`
- );
- }
- attach(element) {
- const superAttach = super.attach(element);
- this.loadMap();
- return superAttach;
- }
- loadMap() {
- const mapContainer = document.getElementById('mapContainer');
- const form = document.getElementsByClassName('formio');
- const drawOptions = {
- circlemarker: false,
- polygon: false,
- polyline: false,
- rectangle: false,
- };
- // MapService({mapContainer, drawOptions, center:CENTER, form})
- }
+ )
+ }
+ attach(element) {
+ const superAttach = super.attach(element);
+ this.loadMap();
+ return superAttach
+ }
+ loadMap() {
+ const mapContainer = document.getElementById("mapContainer");
+ const form = document.getElementsByClassName("formio")
+ const drawOptions = {
+ circlemarker:false,
+ polygon: false,
+ polyline: false,
+ rectangle:false
+ }
+ MapService({mapContainer, drawOptions, center:CENTER, form})
+
+ }
+
}
-// Components.addComponent('map', MapComponent);
+//Components.addComponent('map', MapComponent);
export {};
diff --git a/components/src/components/Map/services/MapService.js b/components/src/components/Map/services/MapService.ts
similarity index 91%
rename from components/src/components/Map/services/MapService.js
rename to components/src/components/Map/services/MapService.ts
index 7cf71a297..11a751061 100644
--- a/components/src/components/Map/services/MapService.js
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,4 +1,4 @@
-import L from "leaflet"
+import * as L from "leaflet"
import "leaflet-draw"
import 'leaflet/dist/leaflet.css';
import "leaflet-draw/dist/leaflet.draw-src.css";
@@ -34,11 +34,11 @@ export default function MapService(options){
//event listener for drawn objects
map.on('draw:created', function(e){
//console.log(e)
- let type = e.layerType
+ let type = e.type
let layer = e.layer
drawnItems.addLayer(layer)
- console.log(drawnItems._layers)
+ drawnItems.eachLayer((l) => {console.log(l)})
})
}
diff --git a/components/webpack.config.js b/components/webpack.config.js
index c82fc573d..446560860 100755
--- a/components/webpack.config.js
+++ b/components/webpack.config.js
@@ -1,6 +1,14 @@
const path = require('path');
module.exports = {
+ module: {
+ rules: [
+ {
+ test: /\.css$/i,
+ use: ["css-loader"],
+ },
+ ],
+ },
entry: path.join(path.resolve(__dirname, 'lib'), 'index.js'),
output: {
library: 'BcGovFormioComponents',
From 36d590dc4c0ba82b03f62785f4fe0c7e7c2bbc1c Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 5 Jun 2024 14:25:54 -0700
Subject: [PATCH 12/80] fix for multi map on one page
---
components/src/components/Map/Component.ts | 8 ++--
.../src/components/Map/services/MapService.ts | 40 +++++++++++--------
2 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 475695aac..5ffee0057 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -23,11 +23,12 @@ export default class Component extends (FieldComponent as any) {
schema: Component.schema(),
};
}
-
+ componentID = super.elementInfo().component.id
render() {
+ console.log(super.data);
return super.render(
`
-
+
`
)
@@ -38,7 +39,7 @@ export default class Component extends (FieldComponent as any) {
return superAttach
}
loadMap() {
- const mapContainer = document.getElementById("mapContainer");
+ const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName("formio")
const drawOptions = {
circlemarker:false,
@@ -52,5 +53,4 @@ export default class Component extends (FieldComponent as any) {
}
-//Components.addComponent('map', MapComponent);
export {};
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 11a751061..cc6701290 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -3,12 +3,31 @@ import "leaflet-draw"
import 'leaflet/dist/leaflet.css';
import "leaflet-draw/dist/leaflet.draw-src.css";
+const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
+const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
+
export default function MapService(options){
+ if(options.mapContainer){
+ const {map,drawnItems} = initializeMap(options)
+
+ //event listener for drawn objects
+ map.on('draw:created', function(e){
+ //console.log(e)
+ let type = e.type
+ let layer = e.layer
+
+ drawnItems.addLayer(layer)
+ drawnItems.eachLayer((l) => {console.log(l)})
+
+ })
+ }
+}
+const initializeMap = (options) =>{
const {mapContainer, center, drawOptions, form } = options;
- if(mapContainer){
- const map = L.map(mapContainer).setView(center, 13);
- L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
- attribution: '© OpenStreetMap contributors',
+
+ const map = L.map(mapContainer).setView(center, 13);
+ L.tileLayer(DEFAULT_MAP_LAYER_URL, {
+ attribution:DEFAULT_LAYER_ATTRIBUTION ,
}).addTo(map);
@@ -30,16 +49,5 @@ export default function MapService(options){
})
//Attach Controls to map
map.addControl(drawControl)
-
- //event listener for drawn objects
- map.on('draw:created', function(e){
- //console.log(e)
- let type = e.type
- let layer = e.layer
-
- drawnItems.addLayer(layer)
- drawnItems.eachLayer((l) => {console.log(l)})
-
- })
- }
+ return {map,drawnItems}
}
\ No newline at end of file
From ec4904322b0957ef206f603086097e96a467ca78 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 11 Jun 2024 10:57:26 -0700
Subject: [PATCH 13/80] map settings form work
---
.../src/components/Map/Component.form.ts | 15 +--
.../Map/editForm/Component.edit.data.d.ts | 29 -----
.../Map/editForm/Component.edit.data.js | 25 ----
.../Map/editForm/Component.edit.data.ts | 18 +++
.../Map/editForm/Component.edit.display.d.ts | 81 -------------
.../Map/editForm/Component.edit.display.js | 107 ------------------
.../Map/editForm/Component.edit.display.ts | 24 ++++
.../editForm/Component.edit.validation.d.ts | 26 -----
.../Map/editForm/Component.edit.validation.js | 22 ----
.../Map/editForm/Component.edit.validation.ts | 4 +
10 files changed, 47 insertions(+), 304 deletions(-)
delete mode 100644 components/src/components/Map/editForm/Component.edit.data.d.ts
delete mode 100644 components/src/components/Map/editForm/Component.edit.data.js
create mode 100644 components/src/components/Map/editForm/Component.edit.data.ts
delete mode 100644 components/src/components/Map/editForm/Component.edit.display.d.ts
delete mode 100644 components/src/components/Map/editForm/Component.edit.display.js
create mode 100644 components/src/components/Map/editForm/Component.edit.display.ts
delete mode 100644 components/src/components/Map/editForm/Component.edit.validation.d.ts
delete mode 100644 components/src/components/Map/editForm/Component.edit.validation.js
create mode 100644 components/src/components/Map/editForm/Component.edit.validation.ts
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index c8355339f..cc9dc0133 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -7,10 +7,7 @@ import SimpleConditional from '../Common/Simple.edit.conditional';
export default function (...extend) {
return baseEditForm([
EditDisplay,
- {
- key: 'data',
- ignore: true,
- },
+ EditData,
{
key: 'api',
ignore: true
@@ -23,20 +20,10 @@ export default function (...extend) {
key: 'conditional',
ignore: true
},
- {
- key: 'validation',
- ignore: true
- },
{
key: 'logic',
ignore: true
},
- {
- label: 'Data',
- key: 'customData',
- weight: 10,
- components: EditData
- },
{
label: 'Validation',
key: 'customValidation',
diff --git a/components/src/components/Map/editForm/Component.edit.data.d.ts b/components/src/components/Map/editForm/Component.edit.data.d.ts
deleted file mode 100644
index 010dcbdd8..000000000
--- a/components/src/components/Map/editForm/Component.edit.data.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-declare const _default: ({
- weight: number;
- type: string;
- label: string;
- tooltip: string;
- key: string;
- input: boolean;
- placeholder?: undefined;
-} | {
- type: string;
- label: string;
- key: string;
- weight: number;
- placeholder: string;
- tooltip: string;
- input: boolean;
-} | {
- weight: number;
- type: string;
- label: string;
- key: string;
- tooltip: string;
- input: boolean;
- values: {
- value: string;
- label: string;
- }[];
-})[];
-export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.data.js b/components/src/components/Map/editForm/Component.edit.data.js
deleted file mode 100644
index 4c548cb29..000000000
--- a/components/src/components/Map/editForm/Component.edit.data.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import common from '../../Common/Simple.edit.data';
-export default [
- ...common,
- {
- weight: 200,
- type: 'radio',
- label: 'Text Case',
- key: 'case',
- tooltip: 'When data is entered, you can change the case of the value.',
- input: true,
- values: [
- {
- value: 'mixed',
- label: 'Mixed (Allow upper and lower case)'
- },
- {
- value: 'uppercase',
- label: 'Uppercase'
- }, {
- value: 'lowercase',
- label: 'Lowercase'
- }
- ]
- }
-];
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
new file mode 100644
index 000000000..ff989beb5
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -0,0 +1,18 @@
+import common from '../../Common/Simple.edit.data';
+export default
+ {
+ key: 'data',
+ components: [
+ ...common,
+ {
+ type: 'textfield',
+ label: 'Default Center Latitude',
+ key: 'centerLat',
+ weight: 5,
+ placeholder: 'Enter the latitude you would like for the default center',
+ tooltip: 'The Default Center will be where the map will be centered before user interaction.',
+ input: true
+ },
+ ]
+ }
+
diff --git a/components/src/components/Map/editForm/Component.edit.display.d.ts b/components/src/components/Map/editForm/Component.edit.display.d.ts
deleted file mode 100644
index 57d96c128..000000000
--- a/components/src/components/Map/editForm/Component.edit.display.d.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-declare const _default: {
- key: string;
- components: ({
- key: string;
- ignore: boolean;
- } | {
- weight: number;
- type: string;
- input: boolean;
- key: string;
- label: string;
- tooltip: string;
- customConditional(context: any): boolean;
- defaultValue?: undefined;
- reorder?: undefined;
- components?: undefined;
- ignore?: undefined;
- } | {
- weight: number;
- type: string;
- input: boolean;
- key: string;
- label: string;
- tooltip?: undefined;
- defaultValue?: undefined;
- reorder?: undefined;
- components?: undefined;
- ignore?: undefined;
- } | {
- weight: number;
- type: string;
- input: boolean;
- key: string;
- defaultValue: boolean;
- label: string;
- tooltip?: undefined;
- reorder?: undefined;
- components?: undefined;
- ignore?: undefined;
- } | {
- weight: number;
- type: string;
- input: boolean;
- key: string;
- label: string;
- customConditional(context: any): boolean;
- reorder: boolean;
- components: {
- type: string;
- key: string;
- label: string;
- input: boolean;
- }[];
- tooltip?: undefined;
- defaultValue?: undefined;
- ignore?: undefined;
- } | {
- weight: number;
- key: string;
- ignore: boolean;
- type?: undefined;
- input?: undefined;
- label?: undefined;
- tooltip?: undefined;
- defaultValue?: undefined;
- reorder?: undefined;
- components?: undefined;
- } | {
- weight: number;
- type: string;
- label: string;
- tooltip: string;
- key: string;
- input: boolean;
- defaultValue?: undefined;
- reorder?: undefined;
- components?: undefined;
- ignore?: undefined;
- })[];
-};
-export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.display.js b/components/src/components/Map/editForm/Component.edit.display.js
deleted file mode 100644
index 2cf26efa4..000000000
--- a/components/src/components/Map/editForm/Component.edit.display.js
+++ /dev/null
@@ -1,107 +0,0 @@
-import common from '../../Common/Simple.edit.display';
-export default {
- key: 'display',
- components: [
- ...common,
- {
- key: 'refreshOnChange',
- ignore: true
- },
- {
- key: 'className',
- ignore: true,
- },
- {
- key: 'widget',
- ignore: true
- },
- {
- key: 'widget.type',
- ignore: true
- },
- {
- key: 'prefix',
- ignore: true
- },
- {
- key: 'suffix',
- ignore: true
- },
- {
- weight: 410,
- type: 'textfield',
- input: true,
- key: 'inputMask',
- label: 'Input Mask',
- tooltip: 'An input mask helps the user with input by ensuring a predefined format.
9: numeric
a: alphabetical
*: alphanumeric
Example telephone mask: (999) 999-9999
See the jquery.inputmask documentation for more information.',
- customConditional(context) {
- return !context.data.allowMultipleMasks;
- }
- },
- {
- weight: 413,
- type: 'checkbox',
- input: true,
- key: 'allowMultipleMasks',
- label: 'Allow Multiple Masks'
- },
- {
- weight: 1350,
- type: 'checkbox',
- input: true,
- key: 'spellcheck',
- defaultValue: true,
- label: 'Allow Spellcheck'
- },
- {
- weight: 417,
- type: 'datagrid',
- input: true,
- key: 'inputMasks',
- label: 'Input Masks',
- customConditional(context) {
- return context.data.allowMultipleMasks === true;
- },
- reorder: true,
- components: [
- {
- type: 'textfield',
- key: 'label',
- label: 'Label',
- input: true
- },
- {
- type: 'textfield',
- key: 'mask',
- label: 'Mask',
- input: true
- }
- ]
- },
- {
- key: 'autocomplete',
- ignore: true,
- },
- {
- weight: 1300,
- key: 'mask',
- ignore: true
- },
- {
- weight: 1200,
- type: 'checkbox',
- label: 'Show Word Counter',
- tooltip: 'Show a live count of the number of words.',
- key: 'showWordCount',
- input: true
- },
- {
- weight: 1201,
- type: 'checkbox',
- label: 'Show Character Counter',
- tooltip: 'Show a live count of the number of characters.',
- key: 'showCharCount',
- input: true
- }
- ]
-};
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
new file mode 100644
index 000000000..5c0cae03f
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -0,0 +1,24 @@
+import common from '../../Common/Simple.edit.display';
+export default [
+ ...common,
+ {
+ key: 'refreshOnChange',
+ ignore: true
+ },
+ {
+ key: 'className',
+ ignore: true,
+ },
+ {
+ key: 'prefix',
+ ignore: true
+ },
+ {
+ key: 'suffix',
+ ignore: true
+ },
+ {
+ key: 'labelPosition',
+ ignore: true,
+ },
+];
diff --git a/components/src/components/Map/editForm/Component.edit.validation.d.ts b/components/src/components/Map/editForm/Component.edit.validation.d.ts
deleted file mode 100644
index e2ae418b0..000000000
--- a/components/src/components/Map/editForm/Component.edit.validation.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-declare const _default: ({
- weight: number;
- type: string;
- defaultValue: boolean;
- label: string;
- tooltip: string;
- key: string;
- input: boolean;
-} | {
- weight: number;
- type: string;
- label: string;
- tooltip: string;
- key: string;
- input: boolean;
- placeholder?: undefined;
-} | {
- weight: number;
- key: string;
- label: string;
- placeholder: string;
- type: string;
- tooltip: string;
- input: boolean;
-})[];
-export default _default;
diff --git a/components/src/components/Map/editForm/Component.edit.validation.js b/components/src/components/Map/editForm/Component.edit.validation.js
deleted file mode 100644
index e0ac0d5e4..000000000
--- a/components/src/components/Map/editForm/Component.edit.validation.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import common from '../../Common/Simple.edit.validation';
-export default [
- ...common,
- {
- weight: 110,
- key: 'validate.minLength',
- label: 'Minimum Length',
- placeholder: 'Minimum Length',
- type: 'number',
- tooltip: 'The minimum length requirement this field must meet.',
- input: true
- },
- {
- weight: 120,
- key: 'validate.maxLength',
- label: 'Maximum Length',
- placeholder: 'Maximum Length',
- type: 'number',
- tooltip: 'The maximum length requirement this field must meet.',
- input: true
- }
-];
diff --git a/components/src/components/Map/editForm/Component.edit.validation.ts b/components/src/components/Map/editForm/Component.edit.validation.ts
new file mode 100644
index 000000000..1cec573db
--- /dev/null
+++ b/components/src/components/Map/editForm/Component.edit.validation.ts
@@ -0,0 +1,4 @@
+import common from '../../Common/Simple.edit.validation';
+export default [
+ ...common,
+];
From 96605cbfc77bc0a7fc3e5c9e25a2db032c1a4055 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 11 Jun 2024 13:18:46 -0700
Subject: [PATCH 14/80] added limits on map pointer submission and popups
showing lat lng
---
components/src/components/Map/Component.ts | 4 ++-
.../src/components/Map/services/MapService.ts | 33 ++++++++++++-------
2 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 5ffee0057..a16647426 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -1,6 +1,7 @@
import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
+import { circle } from 'leaflet';
const CENTER = [48.41939025932759,-123.37029576301576]
@@ -45,7 +46,8 @@ export default class Component extends (FieldComponent as any) {
circlemarker:false,
polygon: false,
polyline: false,
- rectangle:false
+ rectangle:false,
+ circle: false
}
MapService({mapContainer, drawOptions, center:CENTER, form})
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index cc6701290..567cacabd 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -5,21 +5,27 @@ import "leaflet-draw/dist/leaflet.draw-src.css";
const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
+const DECIMALS_LATLNG = 5//the number of decimals of latitude and longitude to be displayed in the marker popup
export default function MapService(options){
if(options.mapContainer){
const {map,drawnItems} = initializeMap(options)
//event listener for drawn objects
- map.on('draw:created', function(e){
+ map.on('draw:created', function (e) {
//console.log(e)
- let type = e.type
- let layer = e.layer
-
- drawnItems.addLayer(layer)
- drawnItems.eachLayer((l) => {console.log(l)})
-
- })
+ let marker = e.layer;
+ if(drawnItems.getLayers().length){
+ console.log(drawnItems.getLayers())
+ console.log("too many markers")
+ L.popup().setLatLng(marker._latlng).setContent("Only one marker for submission
").openOn(map)
+
+ }else{
+ drawnItems.addLayer(marker);
+ }
+ marker.bindPopup(`(${marker._latlng.lat.toFixed(5)},${marker._latlng.lng.toFixed(5)})
`).openPopup();
+ //drawnItems.eachLayer((l) => { console.log(l); });
+ });
}
}
const initializeMap = (options) =>{
@@ -32,10 +38,7 @@ const initializeMap = (options) =>{
- if(form && form[0]?.classList.contains("formbuilder")){
- map.dragging.disable();
- map.scrollWheelZoom.disable();
- }
+
//Initialize Draw Layer
let drawnItems = new L.FeatureGroup()
@@ -47,6 +50,12 @@ const initializeMap = (options) =>{
featureGroup: drawnItems
}
})
+
+ if(form && form[0]?.classList.contains("formbuilder")){
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ }
+
//Attach Controls to map
map.addControl(drawControl)
return {map,drawnItems}
From 3a7cab096a045bf0173dc03693b98c62cdcbe082 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 17 Jun 2024 15:45:42 -0700
Subject: [PATCH 15/80] settings fix
---
components/src/components/Map/Component.ts | 4 +++-
.../src/components/Map/editForm/Component.edit.data.ts | 8 ++++----
components/src/components/Map/services/MapService.ts | 8 ++++++--
3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index a16647426..358d54537 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -1,7 +1,7 @@
import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
-import { circle } from 'leaflet';
+import baseEditForm from './Component.form';
const CENTER = [48.41939025932759,-123.37029576301576]
@@ -24,6 +24,8 @@ export default class Component extends (FieldComponent as any) {
schema: Component.schema(),
};
}
+ static editForm = baseEditForm;
+
componentID = super.elementInfo().component.id
render() {
console.log(super.data);
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index ff989beb5..8bf26e66e 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -5,11 +5,11 @@ export default
components: [
...common,
{
- type: 'textfield',
- label: 'Default Center Latitude',
- key: 'centerLat',
+ type: 'map',
+ label: 'Map Default Center',
+ key: 'centerDefault',
weight: 5,
- placeholder: 'Enter the latitude you would like for the default center',
+ placeholder: 'choose where you would like for the default center',
tooltip: 'The Default Center will be where the map will be centered before user interaction.',
input: true
},
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 567cacabd..43a282281 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -6,15 +6,17 @@ import "leaflet-draw/dist/leaflet.draw-src.css";
const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
const DECIMALS_LATLNG = 5//the number of decimals of latitude and longitude to be displayed in the marker popup
+const SET_MAX_MARKERS = 1;
export default function MapService(options){
if(options.mapContainer){
const {map,drawnItems} = initializeMap(options)
-
+ map.invalidateSize();
//event listener for drawn objects
map.on('draw:created', function (e) {
//console.log(e)
let marker = e.layer;
+ console.log(marker)
if(drawnItems.getLayers().length){
console.log(drawnItems.getLayers())
console.log("too many markers")
@@ -23,7 +25,9 @@ export default function MapService(options){
}else{
drawnItems.addLayer(marker);
}
- marker.bindPopup(`(${marker._latlng.lat.toFixed(5)},${marker._latlng.lng.toFixed(5)})
`).openPopup();
+ marker.bindPopup(`
+ (${marker._latlng.lat.toFixed(DECIMALS_LATLNG)},${marker._latlng.lng.toFixed(DECIMALS_LATLNG)})
`
+ ).openPopup();
//drawnItems.eachLayer((l) => { console.log(l); });
});
}
From fd4ef1707a863422be41fd67ecc897c9f96e4270 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 20 Jun 2024 14:39:57 -0700
Subject: [PATCH 16/80] Settings for radio button with draw options
---
components/src/components/Map/Component.ts | 19 +++++---
.../Map/editForm/Component.edit.data.ts | 44 ++++++++++++++++---
.../src/components/Map/services/MapService.ts | 10 +++--
3 files changed, 58 insertions(+), 15 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 358d54537..a76b1020d 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -2,6 +2,7 @@ import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
import baseEditForm from './Component.form';
+import { marker, rectangle } from 'leaflet';
const CENTER = [48.41939025932759,-123.37029576301576]
@@ -28,7 +29,6 @@ export default class Component extends (FieldComponent as any) {
componentID = super.elementInfo().component.id
render() {
- console.log(super.data);
return super.render(
`
@@ -44,14 +44,23 @@ export default class Component extends (FieldComponent as any) {
loadMap() {
const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName("formio")
- const drawOptions = {
+ let drawOptions = {
+ marker:false,
circlemarker:false,
polygon: false,
polyline: false,
- rectangle:false,
- circle: false
+ circle: false,
+ rectangle:null
}
- MapService({mapContainer, drawOptions, center:CENTER, form})
+ if(this.component.markerType == "rectangle"){
+ drawOptions.rectangle = {showArea:false}//fixes a bug in Leaflet.Draw
+ }else{
+ drawOptions.rectangle = false
+ }
+ console.log(drawOptions)
+ //drawOptions[this.component.markerType] = true;//set marker type from user choice
+ const numPoints = this.component.numPoints;
+ MapService({mapContainer, drawOptions, center:CENTER, form, numPoints})
}
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 8bf26e66e..7473772ad 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -5,14 +5,44 @@ export default
components: [
...common,
{
- type: 'map',
- label: 'Map Default Center',
- key: 'centerDefault',
- weight: 5,
- placeholder: 'choose where you would like for the default center',
- tooltip: 'The Default Center will be where the map will be centered before user interaction.',
- input: true
+ label: "Marker Type ",
+ values: [
+ {
+ label: "Point Marker",
+ value: "marker"
+ },
+ {
+ label: "Circle Marker",
+ value: "circlemarker",
+ },
+ {
+ label: "Polygon",
+ value: "polygon",
+ },
+ {
+ label: "Polyline",
+ value: "polyline",
+ },
+ {
+ label: "Rectangle",
+ value: "rectangle",
+ },
+ {
+ label: "Circle",
+ value: "circle",
+ }
+ ],
+ key: "markerType",
+ type: "simpleradios",
+ input: true,
},
+ {
+ label: "How many Points per Submission? (Only for Point Markers)",
+ key: "numPoints",
+ type: "simplenumber",
+ defaultValue: 1,
+ input: true,
+ }
]
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 43a282281..7a62343f1 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -12,12 +12,14 @@ export default function MapService(options){
if(options.mapContainer){
const {map,drawnItems} = initializeMap(options)
map.invalidateSize();
+
+
//event listener for drawn objects
map.on('draw:created', function (e) {
//console.log(e)
let marker = e.layer;
console.log(marker)
- if(drawnItems.getLayers().length){
+ if(drawnItems.getLayers().length && e?.type == "marker"){
console.log(drawnItems.getLayers())
console.log("too many markers")
L.popup().setLatLng(marker._latlng).setContent("Only one marker for submission
").openOn(map)
@@ -33,8 +35,10 @@ export default function MapService(options){
}
}
const initializeMap = (options) =>{
- const {mapContainer, center, drawOptions, form } = options;
-
+ let {mapContainer, center, drawOptions, form } = options;
+ if(drawOptions.rectangle){
+ drawOptions.rectangle.showArea = false;
+ }
const map = L.map(mapContainer).setView(center, 13);
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution:DEFAULT_LAYER_ATTRIBUTION ,
From 397362ba7219a68dfeadd1ac29bccdc4927dd425 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 24 Jun 2024 13:58:59 -0700
Subject: [PATCH 17/80] Points fix
---
components/src/components/Map/Component.ts | 5 ++---
.../Map/editForm/Component.edit.data.ts | 18 +++++++++++++++++-
.../src/components/Map/services/MapService.ts | 7 +++----
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index a76b1020d..1ae6034f9 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -56,10 +56,9 @@ export default class Component extends (FieldComponent as any) {
drawOptions.rectangle = {showArea:false}//fixes a bug in Leaflet.Draw
}else{
drawOptions.rectangle = false
+ drawOptions[this.component.markerType] = true;//set marker type from user choice
}
- console.log(drawOptions)
- //drawOptions[this.component.markerType] = true;//set marker type from user choice
- const numPoints = this.component.numPoints;
+ const {numPoints, defaultZoom} = this.component;
MapService({mapContainer, drawOptions, center:CENTER, form, numPoints})
}
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 7473772ad..8a2544bda 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -42,7 +42,23 @@ export default
type: "simplenumber",
defaultValue: 1,
input: true,
- }
+ },
+
+ {
+ label: "Default Zoom Level",
+ description: "Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).",
+ defaultValue: 13,
+ delimiter: false,
+ requireDecimal: false,
+ validate: {
+ isUseForCopy: false,
+ min: 0,
+ max: 18
+ },
+ key: "defaultZoom",
+ type: "simplenumber",
+ input: true,
+ }
]
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 7a62343f1..f8ddfeae5 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -5,6 +5,7 @@ import "leaflet-draw/dist/leaflet.draw-src.css";
const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
+const DEFAULT_MAP_ZOOM = 13;
const DECIMALS_LATLNG = 5//the number of decimals of latitude and longitude to be displayed in the marker popup
const SET_MAX_MARKERS = 1;
@@ -16,10 +17,8 @@ export default function MapService(options){
//event listener for drawn objects
map.on('draw:created', function (e) {
- //console.log(e)
let marker = e.layer;
- console.log(marker)
- if(drawnItems.getLayers().length && e?.type == "marker"){
+ if(drawnItems.getLayers().length === options.numPoints && e?.type === "marker"){
console.log(drawnItems.getLayers())
console.log("too many markers")
L.popup().setLatLng(marker._latlng).setContent("Only one marker for submission
").openOn(map)
@@ -39,7 +38,7 @@ const initializeMap = (options) =>{
if(drawOptions.rectangle){
drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(center, 13);
+ const map = L.map(mapContainer).setView(center, DEFAULT_MAP_ZOOM );
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution:DEFAULT_LAYER_ATTRIBUTION ,
}).addTo(map);
From 2110455531c55de51c120602f7ce4dba737dce4a Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 24 Jun 2024 13:59:31 -0700
Subject: [PATCH 18/80] fixes for marker
---
components/src/components/Map/services/MapService.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index f8ddfeae5..5bf71e216 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -34,11 +34,11 @@ export default function MapService(options){
}
}
const initializeMap = (options) =>{
- let {mapContainer, center, drawOptions, form } = options;
+ let {mapContainer, center, drawOptions, form, defaultZoom } = options;
if(drawOptions.rectangle){
drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(center, DEFAULT_MAP_ZOOM );
+ const map = L.map(mapContainer).setView(center, defaultZoom );
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution:DEFAULT_LAYER_ATTRIBUTION ,
}).addTo(map);
From 11dfd072ab03ca2ff1f151f282ad26eccc91b66b Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 24 Jun 2024 15:22:51 -0700
Subject: [PATCH 19/80] Map zoom fix
---
components/src/components/Map/Component.ts | 1 -
components/src/components/Map/services/MapService.ts | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 1ae6034f9..5e28504da 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -2,7 +2,6 @@ import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
import baseEditForm from './Component.form';
-import { marker, rectangle } from 'leaflet';
const CENTER = [48.41939025932759,-123.37029576301576]
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 5bf71e216..429e3d80f 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -38,7 +38,7 @@ const initializeMap = (options) =>{
if(drawOptions.rectangle){
drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(center, defaultZoom );
+ const map = L.map(mapContainer).setView(center, DEFAULT_MAP_ZOOM );
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution:DEFAULT_LAYER_ATTRIBUTION ,
}).addTo(map);
From 4371b95a946d0ff51f1cf15a3428abbfd7c7e8cc Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Mon, 24 Jun 2024 18:40:57 -0700
Subject: [PATCH 20/80] mapsubmission settings
---
components/src/components/Map/Component.ts | 154 ++++++++++------
.../src/components/Map/services/MapService.ts | 166 ++++++++++++------
2 files changed, 212 insertions(+), 108 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 1ae6034f9..654dc2d4b 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -2,67 +2,113 @@ import { Components } from 'formiojs';
const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
import baseEditForm from './Component.form';
-import { marker, rectangle } from 'leaflet';
+import * as L from 'leaflet';
-const CENTER = [48.41939025932759,-123.37029576301576]
+const CENTER: [number, number] = [48.41939025932759, -123.37029576301576]; // Ensure CENTER is a tuple with exactly two elements
export default class Component extends (FieldComponent as any) {
- static schema(...extend) {
- return FieldComponent.schema({
- type: 'map',
- label: 'Map',
- key: 'map',
- input: true,
- ...extend,
- });
+ static schema(...extend) {
+ return FieldComponent.schema({
+ type: 'map',
+ label: 'Map',
+ key: 'map',
+ input: true,
+ ...extend,
+ });
+ }
+ static get builderInfo() {
+ return {
+ title: 'Map',
+ group: 'basic',
+ icon: 'map',
+ weight: 70,
+ schema: Component.schema(),
+ };
+ }
+ static editForm = baseEditForm;
+
+ componentID: string;
+ mapService: MapService;
+
+ constructor(component, options, data) {
+ super(component, options, data);
+ this.componentID = super.elementInfo().component.id;
+ }
+
+ render() {
+ return super.render(
+ ``
+ );
+ }
+
+ attach(element) {
+ const superAttach = super.attach(element);
+ this.loadMap();
+ return superAttach;
+ }
+
+ loadMap() {
+ const mapContainer = document.getElementById(`map-${this.componentID}`);
+ const form = document.getElementsByClassName('formio');
+ let drawOptions = {
+ marker: false,
+ circlemarker: false,
+ polygon: false,
+ polyline: false,
+ circle: false,
+ rectangle: null,
+ };
+ if (this.component.markerType === 'rectangle') {
+ drawOptions.rectangle = { showArea: false }; // fixes a bug in Leaflet.Draw
+ } else {
+ drawOptions.rectangle = false;
+ drawOptions[this.component.markerType] = true; // set marker type from user choice
+ }
+ const { numPoints, defaultZoom } = this.component;
+ this.mapService = new MapService({
+ mapContainer,
+ drawOptions,
+ center: CENTER,
+ form,
+ numPoints,
+ defaultZoom,
+ onDrawnItemsChange: this.saveDrawnItems.bind(this),
+ });
+
+ // Load existing data if available
+ if (this.dataValue) {
+ this.mapService.loadDrawnItems(JSON.parse(this.dataValue));
}
- static get builderInfo() {
+ }
+
+ saveDrawnItems(drawnItems: L.Layer[]) {
+ const value = drawnItems.map((layer: any) => {
+ if (layer instanceof L.Marker) {
return {
- title: 'Map',
- group: 'basic',
- icon: 'map',
- weight: 70,
- schema: Component.schema(),
+ type: 'marker',
+ latlng: layer.getLatLng(),
};
- }
- static editForm = baseEditForm;
-
- componentID = super.elementInfo().component.id
- render() {
- return super.render(
- `
-
-
- `
- )
- }
- attach(element) {
- const superAttach = super.attach(element);
- this.loadMap();
- return superAttach
- }
- loadMap() {
- const mapContainer = document.getElementById(`map-${this.componentID}`);
- const form = document.getElementsByClassName("formio")
- let drawOptions = {
- marker:false,
- circlemarker:false,
- polygon: false,
- polyline: false,
- circle: false,
- rectangle:null
- }
- if(this.component.markerType == "rectangle"){
- drawOptions.rectangle = {showArea:false}//fixes a bug in Leaflet.Draw
- }else{
- drawOptions.rectangle = false
- drawOptions[this.component.markerType] = true;//set marker type from user choice
- }
- const {numPoints, defaultZoom} = this.component;
- MapService({mapContainer, drawOptions, center:CENTER, form, numPoints})
+ }
+ // Handle other types (e.g., rectangles) here if needed
+ });
+
+ // Convert to JSON string
+ const jsonValue =
+ this.component.numPoints === 1
+ ? JSON.stringify(value[0])
+ : JSON.stringify(value);
+ this.setValue(jsonValue);
+ }
+ setValue(value) {
+ super.setValue(value);
+ // Additional logic to render the saved data on the map if necessary
+ if (this.mapService) {
+ this.mapService.loadDrawnItems(JSON.parse(value));
}
+ }
+ getValue() {
+ return this.dataValue;
+ }
}
-
-export {};
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 5bf71e216..1918fd0e4 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,69 +1,127 @@
-import * as L from "leaflet"
-import "leaflet-draw"
+import * as L from 'leaflet';
+import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
-import "leaflet-draw/dist/leaflet.draw-src.css";
+import 'leaflet-draw/dist/leaflet.draw-src.css';
-const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
-const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
+const DEFAULT_MAP_LAYER_URL =
+ 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
+const DEFAULT_LAYER_ATTRIBUTION =
+ '© OpenStreetMap contributors';
const DEFAULT_MAP_ZOOM = 13;
-const DECIMALS_LATLNG = 5//the number of decimals of latitude and longitude to be displayed in the marker popup
-const SET_MAX_MARKERS = 1;
+const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
-export default function MapService(options){
- if(options.mapContainer){
- const {map,drawnItems} = initializeMap(options)
- map.invalidateSize();
+interface MapServiceOptions {
+ mapContainer: HTMLElement;
+ center: [number, number]; // Ensure center is a tuple with exactly two elements
+ drawOptions: any;
+ form: HTMLCollectionOf;
+ numPoints: number;
+ defaultZoom?: number;
+ onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
+}
+class MapService {
+ options: MapServiceOptions;
+ map: L.Map;
+ drawnItems: L.FeatureGroup;
- //event listener for drawn objects
- map.on('draw:created', function (e) {
- let marker = e.layer;
- if(drawnItems.getLayers().length === options.numPoints && e?.type === "marker"){
- console.log(drawnItems.getLayers())
- console.log("too many markers")
- L.popup().setLatLng(marker._latlng).setContent("Only one marker for submission
").openOn(map)
+ constructor(options: MapServiceOptions) {
+ this.options = options;
+ if (options.mapContainer) {
+ const { map, drawnItems } = this.initializeMap(options);
+ this.map = map;
+ this.drawnItems = drawnItems;
+ map.invalidateSize();
- }else{
- drawnItems.addLayer(marker);
- }
- marker.bindPopup(`
- (${marker._latlng.lat.toFixed(DECIMALS_LATLNG)},${marker._latlng.lng.toFixed(DECIMALS_LATLNG)})
`
- ).openPopup();
- //drawnItems.eachLayer((l) => { console.log(l); });
- });
+ // Event listener for drawn objects
+ map.on('draw:created', (e: any) => {
+ let layer = e.layer;
+ if (
+ drawnItems.getLayers().length === options.numPoints &&
+ e?.type === 'marker'
+ ) {
+ L.popup()
+ .setLatLng(layer._latlng)
+ .setContent('Only one marker for submission
')
+ .openOn(map);
+ } else {
+ drawnItems.addLayer(layer);
+ }
+ layer
+ .bindPopup(
+ `(${layer._latlng.lat.toFixed(
+ DECIMALS_LATLNG
+ )},${layer._latlng.lng.toFixed(DECIMALS_LATLNG)})
`
+ )
+ .openPopup();
+ options.onDrawnItemsChange(drawnItems.getLayers());
+ });
}
-}
-const initializeMap = (options) =>{
- let {mapContainer, center, drawOptions, form, defaultZoom } = options;
- if(drawOptions.rectangle){
- drawOptions.rectangle.showArea = false;
+ }
+
+ initializeMap(options: MapServiceOptions) {
+ let { mapContainer, center, drawOptions, form, defaultZoom } = options;
+ if (drawOptions.rectangle) {
+ drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(center, defaultZoom );
- L.tileLayer(DEFAULT_MAP_LAYER_URL, {
- attribution:DEFAULT_LAYER_ATTRIBUTION ,
- }).addTo(map);
-
+ const map = L.map(mapContainer).setView(
+ center,
+ defaultZoom || DEFAULT_MAP_ZOOM
+ );
+ L.tileLayer(DEFAULT_MAP_LAYER_URL, {
+ attribution: DEFAULT_LAYER_ATTRIBUTION,
+ }).addTo(map);
+ // Initialize Draw Layer
+ let drawnItems = new L.FeatureGroup();
+ map.addLayer(drawnItems);
+ // Add Drawing Controllers
+ let drawControl = new L.Control.Draw({
+ draw: drawOptions,
+ edit: {
+ featureGroup: drawnItems,
+ },
+ });
+ if (form && form[0]?.classList.contains('formbuilder')) {
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ }
- //Initialize Draw Layer
- let drawnItems = new L.FeatureGroup()
- map.addLayer(drawnItems)
- //Add Drawing Controllers
- let drawControl = new L.Control.Draw({
- draw:drawOptions,
- edit:{
- featureGroup: drawnItems
- }
- })
+ // Attach Controls to map
+ map.addControl(drawControl);
+ return { map, drawnItems };
+ }
- if(form && form[0]?.classList.contains("formbuilder")){
- map.dragging.disable();
- map.scrollWheelZoom.disable();
- }
+ loadDrawnItems(items: any) {
+ const { drawnItems } = this;
+ drawnItems.clearLayers();
+
+ // Check if items is an array
+ if (!Array.isArray(items)) {
+ items = [items];
+ }
+
+ items.forEach((item) => {
+ let layer;
+ if (item.type === 'marker') {
+ layer = L.marker(item.latlng);
+ }
+ // Handle other types (e.g., rectangles) here if needed
+
+ if (layer) {
+ drawnItems.addLayer(layer);
+ layer
+ .bindPopup(
+ `(${item.latlng.lat.toFixed(
+ DECIMALS_LATLNG
+ )},${item.latlng.lng.toFixed(DECIMALS_LATLNG)})
`
+ )
+ .openPopup();
+ }
+ });
+ }
+}
- //Attach Controls to map
- map.addControl(drawControl)
- return {map,drawnItems}
-}
\ No newline at end of file
+export default MapService;
From 7f1ff5e6729658c3f0d107462c1fa3216b05e2de Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 25 Jun 2024 11:17:27 -0700
Subject: [PATCH 21/80] set map zoom fix
---
components/src/components/Map/Component.ts | 8 ++++----
components/src/components/Map/services/MapService.ts | 7 ++-----
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 5e28504da..aa9d0f991 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -1,13 +1,13 @@
import { Components } from 'formiojs';
-const FieldComponent = (Components as any).components.field;
+const BaseComponent = (Components as any).components.base;
import MapService from './services/MapService';
import baseEditForm from './Component.form';
const CENTER = [48.41939025932759,-123.37029576301576]
-export default class Component extends (FieldComponent as any) {
+export default class Component extends (BaseComponent as any) {
static schema(...extend) {
- return FieldComponent.schema({
+ return BaseComponent.schema({
type: 'map',
label: 'Map',
key: 'map',
@@ -58,7 +58,7 @@ export default class Component extends (FieldComponent as any) {
drawOptions[this.component.markerType] = true;//set marker type from user choice
}
const {numPoints, defaultZoom} = this.component;
- MapService({mapContainer, drawOptions, center:CENTER, form, numPoints})
+ MapService({mapContainer, drawOptions, center:CENTER, form, numPoints, defaultZoom})
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 429e3d80f..ade07daab 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -34,19 +34,16 @@ export default function MapService(options){
}
}
const initializeMap = (options) =>{
+ console.log(options)
let {mapContainer, center, drawOptions, form, defaultZoom } = options;
if(drawOptions.rectangle){
drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(center, DEFAULT_MAP_ZOOM );
+ const map = L.map(mapContainer).setView(center, defaultZoom || DEFAULT_MAP_ZOOM );
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution:DEFAULT_LAYER_ATTRIBUTION ,
}).addTo(map);
-
-
-
-
//Initialize Draw Layer
let drawnItems = new L.FeatureGroup()
map.addLayer(drawnItems)
From c9a46acf655badbf161dcf73fc293f1751802d7c Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 25 Jun 2024 11:17:45 -0700
Subject: [PATCH 22/80] set map zoom fix2
---
components/src/components/Map/services/MapService.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index ade07daab..3a4b451e5 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -7,7 +7,6 @@ const DEFAULT_MAP_LAYER_URL = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.pn
const DEFAULT_LAYER_ATTRIBUTION = '© OpenStreetMap contributors'
const DEFAULT_MAP_ZOOM = 13;
const DECIMALS_LATLNG = 5//the number of decimals of latitude and longitude to be displayed in the marker popup
-const SET_MAX_MARKERS = 1;
export default function MapService(options){
if(options.mapContainer){
From d8fb68a251e7d9a05db25a2cb58fe989bcd833f2 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Tue, 25 Jun 2024 11:41:15 -0700
Subject: [PATCH 23/80] added debug and other drawoptions
---
components/src/components/Map/Component.ts | 50 +++++++++++++-
.../src/components/Map/services/MapService.ts | 68 +++++++++++++++----
2 files changed, 100 insertions(+), 18 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 654dc2d4b..07f3c05cc 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -16,6 +16,7 @@ export default class Component extends (FieldComponent as any) {
...extend,
});
}
+
static get builderInfo() {
return {
title: 'Map',
@@ -25,6 +26,7 @@ export default class Component extends (FieldComponent as any) {
schema: Component.schema(),
};
}
+
static editForm = baseEditForm;
componentID: string;
@@ -36,18 +38,21 @@ export default class Component extends (FieldComponent as any) {
}
render() {
+ console.log('Rendering component');
return super.render(
``
);
}
attach(element) {
+ console.log('Attaching component to element');
const superAttach = super.attach(element);
this.loadMap();
return superAttach;
}
loadMap() {
+ console.log('Loading map');
const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName('formio');
let drawOptions = {
@@ -58,12 +63,15 @@ export default class Component extends (FieldComponent as any) {
circle: false,
rectangle: null,
};
+
+ // Set drawing options based on markerType
if (this.component.markerType === 'rectangle') {
drawOptions.rectangle = { showArea: false }; // fixes a bug in Leaflet.Draw
} else {
drawOptions.rectangle = false;
drawOptions[this.component.markerType] = true; // set marker type from user choice
}
+
const { numPoints, defaultZoom } = this.component;
this.mapService = new MapService({
mapContainer,
@@ -75,6 +83,9 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
});
+ console.log('Current data value:', this.dataValue);
+ console.log('GetValue result:', this.getValue());
+
// Load existing data if available
if (this.dataValue) {
this.mapService.loadDrawnItems(JSON.parse(this.dataValue));
@@ -82,33 +93,66 @@ export default class Component extends (FieldComponent as any) {
}
saveDrawnItems(drawnItems: L.Layer[]) {
+ console.log('Saving drawn items:', drawnItems);
const value = drawnItems.map((layer: any) => {
+ console.log('Processing layer:', layer);
if (layer instanceof L.Marker) {
return {
type: 'marker',
latlng: layer.getLatLng(),
};
+ } else if (layer instanceof L.Rectangle) {
+ return {
+ type: 'rectangle',
+ bounds: layer.getBounds(),
+ };
+ } else if (layer instanceof L.Circle) {
+ return {
+ type: 'circle',
+ latlng: layer.getLatLng(),
+ radius: layer.getRadius(),
+ };
+ } else if (layer instanceof L.Polygon) {
+ return {
+ type: 'polygon',
+ latlngs: layer.getLatLngs(),
+ };
+ } else if (layer instanceof L.Polyline) {
+ return {
+ type: 'polyline',
+ latlngs: layer.getLatLngs(),
+ };
}
- // Handle other types (e.g., rectangles) here if needed
});
+ console.log('Converted value:', value);
+
// Convert to JSON string
const jsonValue =
this.component.numPoints === 1
? JSON.stringify(value[0])
: JSON.stringify(value);
+ console.log('JSON value to set:', jsonValue);
this.setValue(jsonValue);
}
setValue(value) {
+ console.log('Setting value:', value);
super.setValue(value);
+
// Additional logic to render the saved data on the map if necessary
- if (this.mapService) {
- this.mapService.loadDrawnItems(JSON.parse(value));
+ if (this.mapService && value) {
+ try {
+ const parsedValue = JSON.parse(value);
+ this.mapService.loadDrawnItems(parsedValue);
+ } catch (error) {
+ console.error('Failed to parse value:', error);
+ }
}
}
getValue() {
+ console.log('Getting value:', this.dataValue);
return this.dataValue;
}
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 1918fd0e4..571185f55 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -26,6 +26,7 @@ class MapService {
drawnItems: L.FeatureGroup;
constructor(options: MapServiceOptions) {
+ console.log('Initializing MapService with options:', options);
this.options = options;
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
@@ -35,6 +36,7 @@ class MapService {
// Event listener for drawn objects
map.on('draw:created', (e: any) => {
+ console.log('Drawing created:', e);
let layer = e.layer;
if (
drawnItems.getLayers().length === options.numPoints &&
@@ -47,19 +49,14 @@ class MapService {
} else {
drawnItems.addLayer(layer);
}
- layer
- .bindPopup(
- `(${layer._latlng.lat.toFixed(
- DECIMALS_LATLNG
- )},${layer._latlng.lng.toFixed(DECIMALS_LATLNG)})
`
- )
- .openPopup();
+ this.bindPopupToLayer(layer);
options.onDrawnItemsChange(drawnItems.getLayers());
});
}
}
initializeMap(options: MapServiceOptions) {
+ console.log('Initializing map with options:', options);
let { mapContainer, center, drawOptions, form, defaultZoom } = options;
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
@@ -94,8 +91,47 @@ class MapService {
return { map, drawnItems };
}
+ bindPopupToLayer(layer: L.Layer) {
+ console.log('Binding popup to layer:', layer);
+ if (layer instanceof L.Marker) {
+ layer
+ .bindPopup(
+ `(${layer.getLatLng().lat.toFixed(DECIMALS_LATLNG)},${layer
+ .getLatLng()
+ .lng.toFixed(DECIMALS_LATLNG)})
`
+ )
+ .openPopup();
+ } else if (layer instanceof L.Circle) {
+ layer
+ .bindPopup(
+ `(${layer.getLatLng().lat.toFixed(DECIMALS_LATLNG)},${layer
+ .getLatLng()
+ .lng.toFixed(DECIMALS_LATLNG)})
`
+ )
+ .openPopup();
+ } else if (layer instanceof L.Rectangle || layer instanceof L.Polygon) {
+ const bounds = layer.getBounds();
+ const center = bounds.getCenter();
+ layer
+ .bindPopup(
+ `(${center.lat.toFixed(DECIMALS_LATLNG)},${center.lng.toFixed(
+ DECIMALS_LATLNG
+ )})
`
+ )
+ .openPopup();
+ }
+ }
+
loadDrawnItems(items: any) {
+ console.log('Loading drawn items:', items);
const { drawnItems } = this;
+
+ // Ensure drawnItems is defined before attempting to clear layers
+ if (!drawnItems) {
+ console.error('drawnItems is undefined');
+ return;
+ }
+
drawnItems.clearLayers();
// Check if items is an array
@@ -104,21 +140,23 @@ class MapService {
}
items.forEach((item) => {
+ console.log('Processing item:', item);
let layer;
if (item.type === 'marker') {
layer = L.marker(item.latlng);
+ } else if (item.type === 'rectangle') {
+ layer = L.rectangle(item.bounds);
+ } else if (item.type === 'circle') {
+ layer = L.circle(item.latlng, { radius: item.radius });
+ } else if (item.type === 'polygon') {
+ layer = L.polygon(item.latlngs);
+ } else if (item.type === 'polyline') {
+ layer = L.polyline(item.latlngs);
}
- // Handle other types (e.g., rectangles) here if needed
if (layer) {
drawnItems.addLayer(layer);
- layer
- .bindPopup(
- `(${item.latlng.lat.toFixed(
- DECIMALS_LATLNG
- )},${item.latlng.lng.toFixed(DECIMALS_LATLNG)})
`
- )
- .openPopup();
+ this.bindPopupToLayer(layer);
}
});
}
From 93fa6c245ef0885a0bcdcf4c2ee9b16543c8de53 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 26 Jun 2024 09:25:21 -0700
Subject: [PATCH 24/80] Revert back to fieldComponent
---
components/src/components/Map/Component.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 46fac1479..07f3c05cc 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -1,14 +1,14 @@
import { Components } from 'formiojs';
-const BaseComponent = (Components as any).components.base;
+const FieldComponent = (Components as any).components.field;
import MapService from './services/MapService';
import baseEditForm from './Component.form';
import * as L from 'leaflet';
const CENTER: [number, number] = [48.41939025932759, -123.37029576301576]; // Ensure CENTER is a tuple with exactly two elements
-export default class Component extends (BaseComponent as any) {
+export default class Component extends (FieldComponent as any) {
static schema(...extend) {
- return BaseComponent.schema({
+ return FieldComponent.schema({
type: 'map',
label: 'Map',
key: 'map',
From 97f9c28b58ab90cae2f3732019562ce2b5f37169 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 28 Jun 2024 09:06:36 -0700
Subject: [PATCH 25/80] Fixes for multi input limits
---
.../Map/editForm/Component.edit.data.ts | 19 ++-----------------
.../src/components/Map/services/MapService.ts | 5 +----
2 files changed, 3 insertions(+), 21 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 8a2544bda..2251a2a51 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -11,33 +11,18 @@ export default
label: "Point Marker",
value: "marker"
},
- {
- label: "Circle Marker",
- value: "circlemarker",
- },
- {
- label: "Polygon",
- value: "polygon",
- },
- {
- label: "Polyline",
- value: "polyline",
- },
- {
- label: "Rectangle",
- value: "rectangle",
- },
{
label: "Circle",
value: "circle",
}
],
+ defaultValue:"marker",
key: "markerType",
type: "simpleradios",
input: true,
},
{
- label: "How many Points per Submission? (Only for Point Markers)",
+ label: "How many Points per Submission?",
key: "numPoints",
type: "simplenumber",
defaultValue: 1,
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 571185f55..530426d70 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -38,10 +38,7 @@ class MapService {
map.on('draw:created', (e: any) => {
console.log('Drawing created:', e);
let layer = e.layer;
- if (
- drawnItems.getLayers().length === options.numPoints &&
- e?.type === 'marker'
- ) {
+ if (drawnItems.getLayers().length === options.numPoints) {
L.popup()
.setLatLng(layer._latlng)
.setContent('Only one marker for submission
')
From 75fd4dc5ccbf8e2b3958fb5670057b674b54680c Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 28 Jun 2024 09:44:45 -0700
Subject: [PATCH 26/80] fixes for pr
---
app/frontend/public/index.html | 1 -
components/package-lock.json | 6 ------
components/package.json | 1 -
components/src/components/Map/Component.ts | 12 +-----------
components/src/components/Map/services/MapService.ts | 6 ------
5 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/app/frontend/public/index.html b/app/frontend/public/index.html
index 1dfc07d33..5e1d6e99a 100755
--- a/app/frontend/public/index.html
+++ b/app/frontend/public/index.html
@@ -1,6 +1,5 @@
-
diff --git a/components/package-lock.json b/components/package-lock.json
index e9183741b..60df996b8 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -9,7 +9,6 @@
"version": "1.0.0",
"license": "Apache-2.0",
"dependencies": {
- "@bcgov/smk": "^1.2.1",
"@types/leaflet": "^1.9.12",
"@types/leaflet-draw": "^1.0.11",
"autocompleter": "^7.0.1",
@@ -307,11 +306,6 @@
"to-fast-properties": "^2.0.0"
}
},
- "node_modules/@bcgov/smk": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@bcgov/smk/-/smk-1.2.1.tgz",
- "integrity": "sha512-FBpBefqAm2uLfGmbwRZwORzt6+RQAuiQ93DVweQBwgJ5eggq25SmpX15atg+R86RlQnnvWSLu+AC4QMey3X92g=="
- },
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
diff --git a/components/package.json b/components/package.json
index e62acf96f..636662295 100755
--- a/components/package.json
+++ b/components/package.json
@@ -47,7 +47,6 @@
"components"
],
"dependencies": {
- "@bcgov/smk": "^1.2.1",
"@types/leaflet": "^1.9.12",
"@types/leaflet-draw": "^1.0.11",
"autocompleter": "^7.0.1",
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 07f3c05cc..e2dbed261 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -38,21 +38,18 @@ export default class Component extends (FieldComponent as any) {
}
render() {
- console.log('Rendering component');
return super.render(
``
);
}
attach(element) {
- console.log('Attaching component to element');
const superAttach = super.attach(element);
this.loadMap();
return superAttach;
}
loadMap() {
- console.log('Loading map');
const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName('formio');
let drawOptions = {
@@ -83,8 +80,7 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
});
- console.log('Current data value:', this.dataValue);
- console.log('GetValue result:', this.getValue());
+
// Load existing data if available
if (this.dataValue) {
@@ -93,9 +89,7 @@ export default class Component extends (FieldComponent as any) {
}
saveDrawnItems(drawnItems: L.Layer[]) {
- console.log('Saving drawn items:', drawnItems);
const value = drawnItems.map((layer: any) => {
- console.log('Processing layer:', layer);
if (layer instanceof L.Marker) {
return {
type: 'marker',
@@ -125,19 +119,16 @@ export default class Component extends (FieldComponent as any) {
}
});
- console.log('Converted value:', value);
// Convert to JSON string
const jsonValue =
this.component.numPoints === 1
? JSON.stringify(value[0])
: JSON.stringify(value);
- console.log('JSON value to set:', jsonValue);
this.setValue(jsonValue);
}
setValue(value) {
- console.log('Setting value:', value);
super.setValue(value);
// Additional logic to render the saved data on the map if necessary
@@ -152,7 +143,6 @@ export default class Component extends (FieldComponent as any) {
}
getValue() {
- console.log('Getting value:', this.dataValue);
return this.dataValue;
}
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 530426d70..cb0c39d1d 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -26,7 +26,6 @@ class MapService {
drawnItems: L.FeatureGroup;
constructor(options: MapServiceOptions) {
- console.log('Initializing MapService with options:', options);
this.options = options;
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
@@ -36,7 +35,6 @@ class MapService {
// Event listener for drawn objects
map.on('draw:created', (e: any) => {
- console.log('Drawing created:', e);
let layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
L.popup()
@@ -53,7 +51,6 @@ class MapService {
}
initializeMap(options: MapServiceOptions) {
- console.log('Initializing map with options:', options);
let { mapContainer, center, drawOptions, form, defaultZoom } = options;
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
@@ -89,7 +86,6 @@ class MapService {
}
bindPopupToLayer(layer: L.Layer) {
- console.log('Binding popup to layer:', layer);
if (layer instanceof L.Marker) {
layer
.bindPopup(
@@ -120,7 +116,6 @@ class MapService {
}
loadDrawnItems(items: any) {
- console.log('Loading drawn items:', items);
const { drawnItems } = this;
// Ensure drawnItems is defined before attempting to clear layers
@@ -137,7 +132,6 @@ class MapService {
}
items.forEach((item) => {
- console.log('Processing item:', item);
let layer;
if (item.type === 'marker') {
layer = L.marker(item.latlng);
From 602bde6f6d1aaa2689714457e2b3290e1862e680 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Fri, 28 Jun 2024 10:02:35 -0700
Subject: [PATCH 27/80] Removed unused packages
---
app/frontend/package-lock.json | 1504 +-------------------------------
app/frontend/package.json | 2 -
2 files changed, 34 insertions(+), 1472 deletions(-)
diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json
index 5c411abce..d35567c7a 100644
--- a/app/frontend/package-lock.json
+++ b/app/frontend/package-lock.json
@@ -10,8 +10,6 @@
"license": "Apache-2.0",
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
- "@bcgov/smk": "^1.2.1",
- "@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
@@ -102,91 +100,6 @@
"resolved": "https://registry.npmjs.org/@bcgov/bc-sans/-/bc-sans-1.0.1.tgz",
"integrity": "sha512-4suRUBFeHcuFkwXXJu9pKJNB5Z2G3bpuLEHIq203KVCKC8KrsnqvsyUOf645TypgLwqOTOYCETiXYzfxF4gLAw=="
},
- "node_modules/@bcgov/smk": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@bcgov/smk/-/smk-1.2.1.tgz",
- "integrity": "sha512-FBpBefqAm2uLfGmbwRZwORzt6+RQAuiQ93DVweQBwgJ5eggq25SmpX15atg+R86RlQnnvWSLu+AC4QMey3X92g=="
- },
- "node_modules/@bcgov/smk-cli": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@bcgov/smk-cli/-/smk-cli-1.2.0.tgz",
- "integrity": "sha512-szTNQiZYMpM8+/Qzsafj/lPlw0jIKGhy97bRiN3skfdCKu5qZdB56nVxSmFL1sK3zfalG5Qw4Az746x84sdE2g==",
- "dependencies": {
- "@bcgov/smk": ">=1.2.0",
- "@tmcw/togeojson": "~4.5.0",
- "@xmldom/xmldom": "~0.8.5",
- "chalk": "~4.1.0",
- "cors": "~2.8.5",
- "csv-parse": "~4.16.0",
- "express": "~4.17.3",
- "fgdb": "~1.0.0",
- "figlet": "~1.5.0",
- "glob": "7.1.2",
- "inquirer": "~7.3.3",
- "lodash": "~4.17.21",
- "material-design-icons-iconfont": "6.1.1",
- "minimist": "~1.2.5",
- "multer": "~1.4.5-lts.1",
- "node-fetch": "~2.6.7",
- "open": "~7.4.0",
- "proj4": "~2.7.5",
- "semver": "~7.3.5",
- "shapefile": "~0.6.6",
- "shelljs": "~0.8.5",
- "touch": "~3.1.0",
- "unzipper": "~0.10.11",
- "xml2js": "~0.4.23"
- },
- "bin": {
- "smk": "index.js"
- }
- },
- "node_modules/@bcgov/smk-cli/node_modules/glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@bcgov/smk-cli/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@bcgov/smk-cli/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@bcgov/smk-cli/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
@@ -1105,11 +1018,6 @@
"resolved": "https://registry.npmjs.org/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz",
"integrity": "sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw=="
},
- "node_modules/@tmcw/togeojson": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@tmcw/togeojson/-/togeojson-4.5.0.tgz",
- "integrity": "sha512-lNuuhW7nvN1T7xII9eRTi9zuPwYfFl43/1u/Xgi88tedX4ePfwJB5dqc31N7z6sWeR+7EES274ESNrK1gsW53A=="
- },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -1440,14 +1348,6 @@
"vuetify": "^3.0.0"
}
},
- "node_modules/@xmldom/xmldom": {
- "version": "0.8.10",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
- "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -1465,18 +1365,6 @@
"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
"integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ=="
},
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/acorn": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -1540,35 +1428,11 @@
"resolved": "https://registry.npmjs.org/animation-frame-polyfill/-/animation-frame-polyfill-1.0.2.tgz",
"integrity": "sha512-PvO5poSMoHhaoNNgHPo+oqs/0L9UqjsUbqv0iOXVqLh6HX85fsOVQTUrzSBvjdZz7hydARlgLELyzJJKIrPJAQ=="
},
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -1577,6 +1441,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -1600,11 +1465,6 @@
"node": ">= 8"
}
},
- "node_modules/append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -1623,21 +1483,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
"node_modules/array-from": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
"integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg=="
},
- "node_modules/array-source": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/array-source/-/array-source-0.0.4.tgz",
- "integrity": "sha512-frNdc+zBn80vipY+GdcJkLEbMWj3xmzArYApmUGxoiV8uAu/ygcs9icPdsGdA26h0MkHUMW6EN2piIvVx+M5Mw=="
- },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
@@ -1699,7 +1549,8 @@
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -1720,26 +1571,6 @@
}
]
},
- "node_modules/big-integer": {
- "version": "1.6.52",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
- "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/binary": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
- "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
- "dependencies": {
- "buffers": "~0.1.1",
- "chainsaw": "~0.1.0"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -1749,61 +1580,12 @@
"node": ">=8"
}
},
- "node_modules/bluebird": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
- "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
- },
"node_modules/blueimp-md5": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
"integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==",
"dev": true
},
- "node_modules/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.7",
- "raw-body": "2.4.3",
- "type-is": "~1.6.18"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -1819,6 +1601,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1852,42 +1635,8 @@
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/buffer-indexof-polyfill": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
- "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/buffers": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
- "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
- "engines": {
- "node": ">=0.2.0"
- }
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "devOptional": true
},
"node_modules/cac": {
"version": "6.7.14",
@@ -1937,21 +1686,11 @@
"node": ">=4"
}
},
- "node_modules/chainsaw": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
- "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
- "dependencies": {
- "traverse": ">=0.3.0 <0.4"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1963,11 +1702,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
- },
"node_modules/check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
@@ -2016,25 +1750,6 @@
"node": ">= 6"
}
},
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/clipboard": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
@@ -2057,6 +1772,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -2067,7 +1783,8 @@
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/combined-stream": {
"version": "1.0.8",
@@ -2083,7 +1800,8 @@
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "devOptional": true
},
"node_modules/compare-versions": {
"version": "5.0.3",
@@ -2093,21 +1811,8 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
},
"node_modules/concordance": {
"version": "5.0.4",
@@ -2138,25 +1843,6 @@
"proto-list": "~1.2.1"
}
},
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/contra": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz",
@@ -2172,19 +1858,6 @@
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true
},
- "node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
"node_modules/core-js": {
"version": "3.31.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz",
@@ -2195,23 +1868,6 @@
"url": "https://opencollective.com/core-js"
}
},
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/create-point-cb": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-point-cb/-/create-point-cb-1.2.0.tgz",
@@ -2282,11 +1938,6 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
},
- "node_modules/csv-parse": {
- "version": "4.16.3",
- "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz",
- "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg=="
- },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2462,19 +2113,6 @@
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
- "node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
- },
"node_modules/dialog-polyfill": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.5.6.tgz",
@@ -2577,14 +2215,6 @@
"crossvent": "1.5.5"
}
},
- "node_modules/duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
- "dependencies": {
- "readable-stream": "^2.0.2"
- }
- },
"node_modules/editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@@ -2609,24 +2239,6 @@
"semver": "bin/semver"
}
},
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
@@ -2696,11 +2308,6 @@
"@esbuild/win32-x64": "0.20.2"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2929,101 +2536,16 @@
"node": ">=0.10.0"
}
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
- "node_modules/express": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
- "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.4.2",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.9.7",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.17.2",
- "serve-static": "1.14.2",
- "setprototypeof": "1.2.0",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/external-editor/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3069,47 +2591,6 @@
"node-fetch": "~2.6.1"
}
},
- "node_modules/fgdb": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fgdb/-/fgdb-1.0.0.tgz",
- "integrity": "sha512-2ZaznM1bhXk9e5xBdLzAR8H9yGFB2N51QTfMsHnynyJkqqmPMXSvSH5U6qzsyt73aTLQCFeViSQz5an4PKg4XA==",
- "dependencies": {
- "jszip": "~0.2.1",
- "lie": "^3.0.0",
- "long": "~1.1.2",
- "proj4": "^2.3.6"
- }
- },
- "node_modules/figlet": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz",
- "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -3122,14 +2603,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/file-source": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/file-source/-/file-source-0.6.1.tgz",
- "integrity": "sha512-1R1KneL7eTXmXfKxC10V/9NeGOdbsAXJ+lQ//fvvcHUgtaZcZDWNJNblxAoVOyV1cj45pOtUrR3vZTBwqcW8XA==",
- "dependencies": {
- "stream-source": "0.3"
- }
- },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -3142,36 +2615,6 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -3299,26 +2742,11 @@
"vanilla-picker": "^2.12.1"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -3333,51 +2761,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/fstream": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
- "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
- "deprecated": "This package is no longer supported.",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "inherits": "~2.0.0",
- "mkdirp": ">=0.5 0",
- "rimraf": "2"
- },
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/fstream/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/fstream/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -3511,11 +2894,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@@ -3568,6 +2946,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
"engines": {
"node": ">=8"
}
@@ -3619,17 +2998,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -3648,21 +3016,6 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
- "node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/http-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
@@ -3738,11 +3091,6 @@
"node": ">= 4"
}
},
- "node_modules/immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
- },
"node_modules/immutable": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
@@ -3778,6 +3126,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -3786,7 +3135,8 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
},
"node_modules/ini": {
"version": "1.3.8",
@@ -3794,29 +3144,6 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
- "node_modules/inquirer": {
- "version": "7.3.3",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
- "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.19",
- "mute-stream": "0.0.8",
- "run-async": "^2.4.0",
- "rxjs": "^6.6.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/internal-slot": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
@@ -3830,22 +3157,6 @@
"node": ">= 0.4"
}
},
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -3951,17 +3262,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-date-object": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
@@ -3976,20 +3276,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -3999,14 +3285,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -4165,17 +3443,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -4397,11 +3664,6 @@
"resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.7.tgz",
"integrity": "sha512-ARADHortktl9IZ1tr4GHwGPIAzgz3mLNCbR/YjWtRtc/O0o634O3NeFlpLjv95EvuDA5dc8z6yfgbS8nUc4zcQ=="
},
- "node_modules/jszip": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/jszip/-/jszip-0.2.1.tgz",
- "integrity": "sha512-Djh0bVj/EiqNTlwKC10xsOf+HtdD6mVq4m7DWdRoUvChB0aj2BThnGl+Kl4uDlRuxlp+EvjZ2ZOo0niTJlh+LQ=="
- },
"node_modules/jwt-decode": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
@@ -4439,19 +3701,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lie": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
- "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dependencies": {
- "immediate": "~3.0.5"
- }
- },
- "node_modules/listenercount": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
- "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ=="
- },
"node_modules/local-pkg": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
@@ -4490,14 +3739,6 @@
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
- "node_modules/long": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/long/-/long-1.1.5.tgz",
- "integrity": "sha512-TU6nAF5SdasnTr28c7e74P4Crbn9o3/zwo1pM22Wvg2i2vlZ4Eelxwu4QT7j21z0sDBlJDEnEZjXTZg2J8WJrg==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/loupe": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
@@ -4552,11 +3793,6 @@
"semver": "bin/semver.js"
}
},
- "node_modules/material-design-icons-iconfont": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.1.tgz",
- "integrity": "sha512-nkoXybeXoofanNagj4tbM6+/LALWpWxYX5ee861to5VQrKgb0/TskTw28Svwn0OGDKajuqK7ShFOsIBxIygGKA=="
- },
"node_modules/md5-hex": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
@@ -4569,43 +3805,6 @@
"node": ">=8"
}
},
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mgrs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz",
- "integrity": "sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA=="
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
@@ -4625,18 +3824,11 @@
"node": ">= 0.6"
}
},
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -4644,30 +3836,11 @@
"node": "*"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/mitt": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
"integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
},
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
"node_modules/mlly": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.3.0.tgz",
@@ -4705,28 +3878,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"devOptional": true
},
- "node_modules/multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "dependencies": {
- "append-field": "^1.0.0",
- "busboy": "^1.0.0",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.4",
- "object-assign": "^4.1.1",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
- },
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
@@ -4755,14 +3906,6 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/node-fetch": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
@@ -4829,14 +3972,6 @@
"integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
"dev": true
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
@@ -4885,52 +4020,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/open": {
- "version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
- "dependencies": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
}
},
"node_modules/optionator": {
@@ -4950,14 +4046,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -5017,14 +4105,6 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5038,6 +4118,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5051,25 +4132,6 @@
"node": ">=8"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-source": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/path-source/-/path-source-0.1.3.tgz",
- "integrity": "sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==",
- "dependencies": {
- "array-source": "0.0",
- "file-source": "0.6"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
"node_modules/pathe": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
@@ -5265,38 +4327,12 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/proj4": {
- "version": "2.7.5",
- "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.7.5.tgz",
- "integrity": "sha512-5ecXUXbHAfvdhfBQpU7EhUfPCQGUCPmVup/4gnZA3bJY3JcK/xxzm4QQDz1xiXokN6ux65VDczlCtBtKrTSpAQ==",
- "dependencies": {
- "mgrs": "1.0.0",
- "wkt-parser": "^1.3.1"
- }
- },
"node_modules/proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
"integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
"dev": true
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -5331,17 +4367,6 @@
"vue": "^3.0.0"
}
},
- "node_modules/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
@@ -5412,69 +4437,12 @@
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
},
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
- "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "1.8.1",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/react-is": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true
},
- "node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readable-stream/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -5487,17 +4455,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
- "dependencies": {
- "resolve": "^1.1.6"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/redux": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
@@ -5547,22 +4504,6 @@
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -5572,18 +4513,6 @@
"node": ">=4"
}
},
- "node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -5667,14 +4596,6 @@
"integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
"dev": true
},
- "node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -5698,40 +4619,11 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
},
"node_modules/sass": {
"version": "1.63.4",
@@ -5750,11 +4642,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/sax": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
- "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
- },
"node_modules/saxes": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
@@ -5805,88 +4692,6 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
- "node_modules/send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "1.8.1",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serve-static": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/shapefile": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/shapefile/-/shapefile-0.6.6.tgz",
- "integrity": "sha512-rLGSWeK2ufzCVx05wYd+xrWnOOdSV7xNUW5/XFgx3Bc02hBkpMlrd2F1dDII7/jhWzv0MSyBFh5uJIy9hLdfuw==",
- "dependencies": {
- "array-source": "0.0",
- "commander": "2",
- "path-source": "0.1",
- "slice-source": "0.4",
- "stream-source": "0.3",
- "text-encoding": "^0.6.4"
- },
- "bin": {
- "dbf2json": "bin/dbf2json",
- "shp2json": "bin/shp2json"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -5908,41 +4713,6 @@
"node": ">=8"
}
},
- "node_modules/shelljs": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
- "dependencies": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- },
- "bin": {
- "shjs": "bin/shjs"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/shelljs/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@@ -5968,21 +4738,11 @@
"integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==",
"dev": true
},
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
"node_modules/signature_pad": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-4.1.5.tgz",
"integrity": "sha512-VOE846UbQMeLBbcR08KwjwE1wNLgp3gqC7yr/AELkgSMs/BdRpxIZna6K5XyZJpA7IWq9GiInw1C8PLm57VO6Q=="
},
- "node_modules/slice-source": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/slice-source/-/slice-source-0.4.1.tgz",
- "integrity": "sha512-YiuPbxpCj4hD9Qs06hGAz/OZhQ0eDuALN0lRWJez0eD/RevzKqGdUx1IOMUnXgpr+sXZLq3g8ERwbAH0bCb8vg=="
- },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -6020,14 +4780,6 @@
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true
},
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/std-env": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz",
@@ -6045,54 +4797,16 @@
"node": ">= 0.4"
}
},
- "node_modules/stream-source": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/stream-source/-/stream-source-0.3.5.tgz",
- "integrity": "sha512-ZuEDP9sgjiAwUVoDModftG0JtYiLUV8K4ljYD1VyUMRWtbVf92474o4kuuul43iZ8t/hRuiDAx1dIJSvirrK/g=="
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
"node_modules/string-hash": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
},
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -6128,6 +4842,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6135,17 +4850,6 @@
"node": ">=8"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -6204,23 +4908,12 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/text-encoding": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
- "integrity": "sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==",
- "deprecated": "no longer maintained"
- },
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
- },
"node_modules/ticky": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz",
@@ -6272,17 +4965,6 @@
"@popperjs/core": "^2.9.0"
}
},
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6295,22 +4977,6 @@
"node": ">=8.0"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/touch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
- "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
- "bin": {
- "nodetouch": "bin/nodetouch.js"
- }
- },
"node_modules/tough-cookie": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
@@ -6331,19 +4997,6 @@
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
- "node_modules/traverse": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
- "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -6382,23 +5035,6 @@
"resolved": "https://registry.npmjs.org/type-func/-/type-func-1.0.3.tgz",
"integrity": "sha512-YA90CUk+i00tWESPNRMahywXhAz+12NLJLKlOWrgHIbqaFXjdZrWstRghaibOW/IxhPjui4SmXxO/03XSGRIjA=="
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
- },
"node_modules/ufo": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz",
@@ -6414,31 +5050,6 @@
"node": ">= 4.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/unzipper": {
- "version": "0.10.14",
- "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
- "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
- "dependencies": {
- "big-integer": "^1.6.17",
- "binary": "~0.3.0",
- "bluebird": "~3.4.1",
- "buffer-indexof-polyfill": "~1.0.0",
- "duplexer2": "~0.1.4",
- "fstream": "^1.0.12",
- "graceful-fs": "^4.2.2",
- "listenercount": "~1.0.1",
- "readable-stream": "~2.3.6",
- "setimmediate": "~1.0.4"
- }
- },
"node_modules/upath": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
@@ -6471,15 +5082,8 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
},
"node_modules/uuid": {
"version": "9.0.0",
@@ -6511,14 +5115,6 @@
"@sphinxxxx/color-conversion": "^2.2.2"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/vite": {
"version": "5.2.6",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz",
@@ -7902,11 +6498,6 @@
"node": ">=8"
}
},
- "node_modules/wkt-parser": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.3.tgz",
- "integrity": "sha512-ZnV3yH8/k58ZPACOXeiHaMuXIiaTk1t0hSUVisbO0t4RjA5wPpUytcxeyiN2h+LZRrmuHIh/1UlrR9e7DHDvTw=="
- },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -7919,7 +6510,8 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
},
"node_modules/ws": {
"version": "8.13.0",
@@ -7951,40 +6543,12 @@
"node": ">=12"
}
},
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
"node_modules/yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
diff --git a/app/frontend/package.json b/app/frontend/package.json
index 1d78085e3..d5cb86d9d 100644
--- a/app/frontend/package.json
+++ b/app/frontend/package.json
@@ -31,8 +31,6 @@
},
"dependencies": {
"@bcgov/bc-sans": "^1.0.1",
- "@bcgov/smk": "^1.2.1",
- "@bcgov/smk-cli": "^1.2.0",
"@formio/vue": "^5.0.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
From 8e8ce897804700879e37153904af24e8bf9bf517 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 3 Jul 2024 15:08:45 -0700
Subject: [PATCH 28/80] Fix to non-interactive default map in settings page
---
.../src/components/Map/services/MapService.ts | 33 ++++++++++++++++---
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index cb0c39d1d..534e1c42d 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -9,6 +9,9 @@ const DEFAULT_LAYER_ATTRIBUTION =
'© OpenStreetMap contributors';
const DEFAULT_MAP_ZOOM = 13;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
+const COMPONENT_EDIT_CLASS = "component-edit-tabs";
+
+
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -74,11 +77,18 @@ class MapService {
featureGroup: drawnItems,
},
});
-
- if (form && form[0]?.classList.contains('formbuilder')) {
- map.dragging.disable();
- map.scrollWheelZoom.disable();
- }
+ //Checking to see if the map should be interactable
+ const componentEditNode = document.getElementsByClassName(COMPONENT_EDIT_CLASS)
+ if (form) {
+ if (form[0]?.classList.contains('formbuilder')) {
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ if (this.hasChildNode(componentEditNode[0], mapContainer)) {
+ map.dragging.enable();
+ map.scrollWheelZoom.enable();
+ }
+ }
+ }
// Attach Controls to map
map.addControl(drawControl);
@@ -151,6 +161,19 @@ class MapService {
}
});
}
+
+ hasChildNode(parent: any, targetNode: any) {
+ if (parent === targetNode) {
+ return true;
+ }
+ for (let i = 0; i < parent.childNodes?.length; i++) {
+ if (this.hasChildNode(parent.childNodes[i], targetNode)) {
+ return true
+ }
+ }
+ return false;
+ }
+
}
export default MapService;
From 4b0898202136961f77591cf4578ae529955393b8 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 3 Jul 2024 15:42:07 -0700
Subject: [PATCH 29/80] Added Read Only functionality
---
components/src/components/Map/Component.ts | 3 ++-
.../Map/editForm/Component.edit.data.ts | 10 ++++++++-
.../src/components/Map/services/MapService.ts | 22 +++++++++++--------
3 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index e2dbed261..3cdac2976 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -69,7 +69,7 @@ export default class Component extends (FieldComponent as any) {
drawOptions[this.component.markerType] = true; // set marker type from user choice
}
- const { numPoints, defaultZoom } = this.component;
+ const { numPoints, defaultZoom, readOnlyMap } = this.component;
this.mapService = new MapService({
mapContainer,
drawOptions,
@@ -77,6 +77,7 @@ export default class Component extends (FieldComponent as any) {
form,
numPoints,
defaultZoom,
+ readOnlyMap,
onDrawnItemsChange: this.saveDrawnItems.bind(this),
});
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 2251a2a51..fe7a284e7 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -16,7 +16,7 @@ export default
value: "circle",
}
],
- defaultValue:"marker",
+ defaultValue: "marker",
key: "markerType",
type: "simpleradios",
input: true,
@@ -43,6 +43,14 @@ export default
key: "defaultZoom",
type: "simplenumber",
input: true,
+ },
+ {
+ label: "Read Only Map",
+ description: "This allows for the user to view and scroll the map, but not add any input",
+ key: "readOnlyMap",
+ type: "simplecheckbox",
+ input: true,
+
}
]
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 534e1c42d..bab5b464d 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -20,6 +20,7 @@ interface MapServiceOptions {
form: HTMLCollectionOf;
numPoints: number;
defaultZoom?: number;
+ readOnlyMap?: boolean
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
}
@@ -54,7 +55,7 @@ class MapService {
}
initializeMap(options: MapServiceOptions) {
- let { mapContainer, center, drawOptions, form, defaultZoom } = options;
+ let { mapContainer, center, drawOptions, form, defaultZoom, readOnlyMap } = options;
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
@@ -71,12 +72,16 @@ class MapService {
map.addLayer(drawnItems);
// Add Drawing Controllers
- let drawControl = new L.Control.Draw({
- draw: drawOptions,
- edit: {
- featureGroup: drawnItems,
- },
- });
+ if(!readOnlyMap){
+ let drawControl = new L.Control.Draw({
+ draw: drawOptions,
+ edit: {
+ featureGroup: drawnItems,
+ },
+ });
+ map.addControl(drawControl);
+ }
+
//Checking to see if the map should be interactable
const componentEditNode = document.getElementsByClassName(COMPONENT_EDIT_CLASS)
if (form) {
@@ -91,7 +96,6 @@ class MapService {
}
// Attach Controls to map
- map.addControl(drawControl);
return { map, drawnItems };
}
@@ -166,7 +170,7 @@ class MapService {
if (parent === targetNode) {
return true;
}
- for (let i = 0; i < parent.childNodes?.length; i++) {
+ for (let i = 0; i < parent?.childNodes?.length; i++) {
if (this.hasChildNode(parent.childNodes[i], targetNode)) {
return true
}
From 58fdf65204af0cb4b9a10dc069e47769ad055754 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Thu, 4 Jul 2024 16:57:41 -0700
Subject: [PATCH 30/80] map service update
---
components/src/components/Map/Component.ts | 10 +++--
.../src/components/Map/services/MapService.ts | 38 +++++++++----------
2 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 3cdac2976..579c23177 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -81,11 +81,14 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
});
-
-
// Load existing data if available
if (this.dataValue) {
- this.mapService.loadDrawnItems(JSON.parse(this.dataValue));
+ try {
+ const parsedValue = JSON.parse(this.dataValue);
+ this.mapService.loadDrawnItems(parsedValue);
+ } catch (error) {
+ console.error('Failed to parse dataValue:', error);
+ }
}
}
@@ -120,7 +123,6 @@ export default class Component extends (FieldComponent as any) {
}
});
-
// Convert to JSON string
const jsonValue =
this.component.numPoints === 1
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index bab5b464d..46585a644 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -9,9 +9,7 @@ const DEFAULT_LAYER_ATTRIBUTION =
'© OpenStreetMap contributors';
const DEFAULT_MAP_ZOOM = 13;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
-const COMPONENT_EDIT_CLASS = "component-edit-tabs";
-
-
+const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -20,7 +18,7 @@ interface MapServiceOptions {
form: HTMLCollectionOf;
numPoints: number;
defaultZoom?: number;
- readOnlyMap?: boolean
+ readOnlyMap?: boolean;
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
}
@@ -42,7 +40,7 @@ class MapService {
let layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
L.popup()
- .setLatLng(layer._latlng)
+ .setLatLng(layer.getLatLng())
.setContent('Only one marker for submission
')
.openOn(map);
} else {
@@ -55,7 +53,8 @@ class MapService {
}
initializeMap(options: MapServiceOptions) {
- let { mapContainer, center, drawOptions, form, defaultZoom, readOnlyMap } = options;
+ let { mapContainer, center, drawOptions, form, defaultZoom, readOnlyMap } =
+ options;
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
@@ -72,7 +71,7 @@ class MapService {
map.addLayer(drawnItems);
// Add Drawing Controllers
- if(!readOnlyMap){
+ if (!readOnlyMap) {
let drawControl = new L.Control.Draw({
draw: drawOptions,
edit: {
@@ -82,20 +81,20 @@ class MapService {
map.addControl(drawControl);
}
- //Checking to see if the map should be interactable
- const componentEditNode = document.getElementsByClassName(COMPONENT_EDIT_CLASS)
+ // Checking to see if the map should be interactable
+ const componentEditNode =
+ document.getElementsByClassName(COMPONENT_EDIT_CLASS);
if (form) {
if (form[0]?.classList.contains('formbuilder')) {
- map.dragging.disable();
- map.scrollWheelZoom.disable();
- if (this.hasChildNode(componentEditNode[0], mapContainer)) {
- map.dragging.enable();
- map.scrollWheelZoom.enable();
- }
+ map.dragging.disable();
+ map.scrollWheelZoom.disable();
+ if (this.hasChildNode(componentEditNode[0], mapContainer)) {
+ map.dragging.enable();
+ map.scrollWheelZoom.enable();
+ }
}
- }
+ }
- // Attach Controls to map
return { map, drawnItems };
}
@@ -132,7 +131,6 @@ class MapService {
loadDrawnItems(items: any) {
const { drawnItems } = this;
- // Ensure drawnItems is defined before attempting to clear layers
if (!drawnItems) {
console.error('drawnItems is undefined');
return;
@@ -140,7 +138,6 @@ class MapService {
drawnItems.clearLayers();
- // Check if items is an array
if (!Array.isArray(items)) {
items = [items];
}
@@ -172,12 +169,11 @@ class MapService {
}
for (let i = 0; i < parent?.childNodes?.length; i++) {
if (this.hasChildNode(parent.childNodes[i], targetNode)) {
- return true
+ return true;
}
}
return false;
}
-
}
export default MapService;
From 8258064ede96522261e6c9c91c93979bf2200c14 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Fri, 5 Jul 2024 08:29:51 -0700
Subject: [PATCH 31/80] Settings Updated
---
.../src/components/Map/Component.form.ts | 81 ++++++------
.../Map/editForm/Component.edit.data.ts | 118 ++++++++++--------
2 files changed, 107 insertions(+), 92 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index cc9dc0133..9b8ac2603 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -5,42 +5,47 @@ import EditValidation from './editForm/Component.edit.validation';
import SimpleApi from '../Common/Simple.edit.api';
import SimpleConditional from '../Common/Simple.edit.conditional';
export default function (...extend) {
- return baseEditForm([
- EditDisplay,
- EditData,
- {
- key: 'api',
- ignore: true
- },
- {
- key: 'layout',
- ignore: true
- },
- {
- key: 'conditional',
- ignore: true
- },
- {
- key: 'logic',
- ignore: true
- },
- {
- label: 'Validation',
- key: 'customValidation',
- weight: 20,
- components: EditValidation
- },
- {
- label: 'API',
- key: 'customAPI',
- weight: 30,
- components: SimpleApi
- },
- {
- label: 'Conditional',
- key: 'customConditional',
- weight: 40,
- components: SimpleConditional
- }
- ], ...extend);
+ return baseEditForm(
+ [
+ EditDisplay,
+ {
+ key: 'data',
+ ignore: true,
+ },
+ EditData,
+ {
+ key: 'api',
+ ignore: true,
+ },
+ {
+ key: 'layout',
+ ignore: true,
+ },
+ {
+ key: 'conditional',
+ ignore: true,
+ },
+ {
+ key: 'logic',
+ ignore: true,
+ },
+ {
+ key: 'validation',
+ ignore: true,
+ },
+ {
+ label: 'API',
+ key: 'customAPI',
+ weight: 30,
+ components: SimpleApi,
+ },
+ {
+ label: 'Conditional',
+ key: 'customConditional',
+ weight: 40,
+ components: SimpleConditional,
+ },
+ ],
+ ...extend
+ );
}
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index fe7a284e7..e163e9c24 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -1,57 +1,67 @@
import common from '../../Common/Simple.edit.data';
-export default
+export default {
+ key: 'customData',
+ label: 'Data',
+ weight: 20,
+ components: [
{
- key: 'data',
- components: [
- ...common,
- {
- label: "Marker Type ",
- values: [
- {
- label: "Point Marker",
- value: "marker"
- },
- {
- label: "Circle",
- value: "circle",
- }
- ],
- defaultValue: "marker",
- key: "markerType",
- type: "simpleradios",
- input: true,
- },
- {
- label: "How many Points per Submission?",
- key: "numPoints",
- type: "simplenumber",
- defaultValue: 1,
- input: true,
- },
-
- {
- label: "Default Zoom Level",
- description: "Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).",
- defaultValue: 13,
- delimiter: false,
- requireDecimal: false,
- validate: {
- isUseForCopy: false,
- min: 0,
- max: 18
- },
- key: "defaultZoom",
- type: "simplenumber",
- input: true,
- },
- {
- label: "Read Only Map",
- description: "This allows for the user to view and scroll the map, but not add any input",
- key: "readOnlyMap",
- type: "simplecheckbox",
- input: true,
-
- }
- ]
- }
+ type: 'map',
+ label: 'Default Value',
+ key: 'defaultValue',
+ weight: 5,
+ placeholder: 'Default Value',
+ tooltip:
+ 'This will be the value for this field, before user interaction.',
+ input: true,
+ },
+ {
+ label: 'Marker Type ',
+ values: [
+ {
+ label: 'Point Marker',
+ value: 'marker',
+ },
+ {
+ label: 'Circle',
+ value: 'circle',
+ },
+ ],
+ defaultValue: 'marker',
+ key: 'markerType',
+ type: 'simpleradios',
+ input: true,
+ },
+ {
+ label: 'How many Markers per Submission?',
+ key: 'numPoints',
+ type: 'simplenumber',
+ defaultValue: 1,
+ input: true,
+ },
+ {
+ label: 'Default Zoom Level',
+ description:
+ 'Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).',
+ defaultValue: 13,
+ delimiter: false,
+ requireDecimal: false,
+ validate: {
+ isUseForCopy: false,
+ min: 0,
+ max: 18,
+ },
+ key: 'defaultZoom',
+ type: 'simplenumber',
+ input: true,
+ },
+ {
+ label: 'Read Only Map',
+ description:
+ 'This allows for the user to view and scroll the map, but not add any input',
+ key: 'readOnlyMap',
+ type: 'simplecheckbox',
+ input: true,
+ },
+ ],
+};
From 300441f4dbf90a2c0a76464f393d6feee65f4943 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Fri, 5 Jul 2024 10:08:51 -0700
Subject: [PATCH 32/80] Settings text updated
---
.../src/components/Map/editForm/Component.edit.data.ts | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index e163e9c24..d00ad3fbb 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -18,11 +18,12 @@ export default {
label: 'Marker Type ',
values: [
{
- label: 'Point Marker',
+ label: 'Add a point marker (drop a pin)',
value: 'marker',
},
{
- label: 'Circle',
+ label:
+ 'Add circular area of interest through a point and custom radius',
value: 'circle',
},
],
From 8001826e989973bf28d287bfb81e298ef2ed226c Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 8 Jul 2024 20:12:04 +0000
Subject: [PATCH 33/80] initial custom center
---
.../Map/editForm/Component.edit.data.ts | 118 ++++++++++--------
1 file changed, 64 insertions(+), 54 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index fe7a284e7..f3678464d 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -1,57 +1,67 @@
import common from '../../Common/Simple.edit.data';
-export default
+export default {
+ key: 'data',
+ components: [
+ ...common,
{
- key: 'data',
- components: [
- ...common,
- {
- label: "Marker Type ",
- values: [
- {
- label: "Point Marker",
- value: "marker"
- },
- {
- label: "Circle",
- value: "circle",
- }
- ],
- defaultValue: "marker",
- key: "markerType",
- type: "simpleradios",
- input: true,
- },
- {
- label: "How many Points per Submission?",
- key: "numPoints",
- type: "simplenumber",
- defaultValue: 1,
- input: true,
- },
-
- {
- label: "Default Zoom Level",
- description: "Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).",
- defaultValue: 13,
- delimiter: false,
- requireDecimal: false,
- validate: {
- isUseForCopy: false,
- min: 0,
- max: 18
- },
- key: "defaultZoom",
- type: "simplenumber",
- input: true,
- },
- {
- label: "Read Only Map",
- description: "This allows for the user to view and scroll the map, but not add any input",
- key: "readOnlyMap",
- type: "simplecheckbox",
- input: true,
-
- }
- ]
- }
+ label: 'Marker Type ',
+ values: [
+ {
+ label: 'Point Marker',
+ value: 'marker',
+ },
+ {
+ label: 'Circle',
+ value: 'circle',
+ },
+ ],
+ defaultValue: 'marker',
+ key: 'markerType',
+ type: 'simpleradios',
+ input: true,
+ },
+ {
+ label: 'Set Default Center',
+ tableView: false,
+ markerType: 'marker',
+ numPoints: 1,
+ defaultZoom: 5,
+ readOnlyMap: false,
+ key: 'map',
+ type: 'map',
+ input: true,
+ },
+ {
+ label: 'How many Points per Submission?',
+ key: 'numPoints',
+ type: 'simplenumber',
+ defaultValue: 1,
+ input: true,
+ },
+ {
+ label: 'Default Zoom Level',
+ description:
+ 'Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).',
+ defaultValue: 13,
+ delimiter: false,
+ requireDecimal: false,
+ validate: {
+ isUseForCopy: false,
+ min: 0,
+ max: 18,
+ },
+ key: 'defaultZoom',
+ type: 'simplenumber',
+ input: true,
+ },
+ {
+ label: 'Read Only Map',
+ description:
+ 'This allows for the user to view and scroll the map, but not add any input',
+ key: 'readOnlyMap',
+ type: 'simplecheckbox',
+ input: true,
+ },
+ ],
+};
From f82e707b35f6c834e5241f9f6a436f1bec13985a Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 8 Jul 2024 23:28:21 +0000
Subject: [PATCH 34/80] Added customizing default map center
---
components/src/components/Map/Component.ts | 14 +++++++++++---
.../components/Map/editForm/Component.edit.data.ts | 13 +++++++++++++
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 579c23177..c69c858ab 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -4,7 +4,9 @@ import MapService from './services/MapService';
import baseEditForm from './Component.form';
import * as L from 'leaflet';
-const CENTER: [number, number] = [48.41939025932759, -123.37029576301576]; // Ensure CENTER is a tuple with exactly two elements
+const DEFAULT_CENTER: [number, number] = [
+ 48.41939025932759, -123.37029576301576,
+]; // Ensure CENTER is a tuple with exactly two elements
export default class Component extends (FieldComponent as any) {
static schema(...extend) {
@@ -69,11 +71,17 @@ export default class Component extends (FieldComponent as any) {
drawOptions[this.component.markerType] = true; // set marker type from user choice
}
- const { numPoints, defaultZoom, readOnlyMap } = this.component;
+ const { numPoints, defaultZoom, readOnlyMap, center } = this.component;
+
+ let parsedCenter;
+ if (center) {
+ parsedCenter = JSON.parse(center).latlng;
+ }
+
this.mapService = new MapService({
mapContainer,
drawOptions,
- center: CENTER,
+ center: center ? parsedCenter : DEFAULT_CENTER,
form,
numPoints,
defaultZoom,
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index d00ad3fbb..4bf640ee0 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -56,6 +56,19 @@ export default {
type: 'simplenumber',
input: true,
},
+ {
+ key: 'center',
+ type: 'map',
+ input: true,
+ label: 'Default Center',
+ numPoints: 1,
+ tableView: false,
+ markerType: 'marker',
+ defaultZoom: 13,
+ readOnlyMap: false,
+ description:
+ 'Please select the desired default center using a single marker',
+ },
{
label: 'Read Only Map',
description:
From c2900768a6ec1f06fa7b72d1693a893a1def4799 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 10 Jul 2024 15:08:59 -0700
Subject: [PATCH 35/80] Readonly in view submission mode
---
components/src/components/Map/Component.ts | 2 ++
.../src/components/Map/services/MapService.ts | 30 +++++++++++++------
2 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index c69c858ab..a0c9aefb8 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -72,6 +72,7 @@ export default class Component extends (FieldComponent as any) {
}
const { numPoints, defaultZoom, readOnlyMap, center } = this.component;
+ const { readOnly: viewMode } = this.options;
let parsedCenter;
if (center) {
@@ -87,6 +88,7 @@ export default class Component extends (FieldComponent as any) {
defaultZoom,
readOnlyMap,
onDrawnItemsChange: this.saveDrawnItems.bind(this),
+ viewMode,
});
// Load existing data if available
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 46585a644..d9f07bd48 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -20,6 +20,7 @@ interface MapServiceOptions {
defaultZoom?: number;
readOnlyMap?: boolean;
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
+ viewMode?: boolean;
}
class MapService {
@@ -29,6 +30,7 @@ class MapService {
constructor(options: MapServiceOptions) {
this.options = options;
+
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
this.map = map;
@@ -53,8 +55,16 @@ class MapService {
}
initializeMap(options: MapServiceOptions) {
- let { mapContainer, center, drawOptions, form, defaultZoom, readOnlyMap } =
- options;
+ let {
+ mapContainer,
+ center,
+ drawOptions,
+ form,
+ defaultZoom,
+ readOnlyMap,
+ viewMode,
+ } = options;
+
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
@@ -72,13 +82,15 @@ class MapService {
// Add Drawing Controllers
if (!readOnlyMap) {
- let drawControl = new L.Control.Draw({
- draw: drawOptions,
- edit: {
- featureGroup: drawnItems,
- },
- });
- map.addControl(drawControl);
+ if (!viewMode) {
+ let drawControl = new L.Control.Draw({
+ draw: drawOptions,
+ edit: {
+ featureGroup: drawnItems,
+ },
+ });
+ map.addControl(drawControl);
+ }
}
// Checking to see if the map should be interactable
From 263774042a588841889cf4064ab4b8e405637e33 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Tue, 16 Jul 2024 09:27:56 -0700
Subject: [PATCH 36/80] Updated for Map data Submission to be an Json
---
components/src/components/Map/Component.ts | 38 +++++++++----------
.../src/components/Map/services/MapService.ts | 8 ++--
2 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index a0c9aefb8..131a5eb07 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -15,6 +15,7 @@ export default class Component extends (FieldComponent as any) {
label: 'Map',
key: 'map',
input: true,
+ defaultvalue: { features: [] },
...extend,
});
}
@@ -74,15 +75,15 @@ export default class Component extends (FieldComponent as any) {
const { numPoints, defaultZoom, readOnlyMap, center } = this.component;
const { readOnly: viewMode } = this.options;
- let parsedCenter;
- if (center) {
- parsedCenter = JSON.parse(center).latlng;
+ let initialCenter;
+ if (center && center.features && center.features[0]) {
+ initialCenter = center.features[0].coordinates;
}
this.mapService = new MapService({
mapContainer,
drawOptions,
- center: center ? parsedCenter : DEFAULT_CENTER,
+ center: center ? initialCenter : DEFAULT_CENTER,
form,
numPoints,
defaultZoom,
@@ -92,10 +93,9 @@ export default class Component extends (FieldComponent as any) {
});
// Load existing data if available
- if (this.dataValue) {
+ if (this.dataValue && this.dataValue.features) {
try {
- const parsedValue = JSON.parse(this.dataValue);
- this.mapService.loadDrawnItems(parsedValue);
+ this.mapService.loadDrawnItems(this.dataValue.features);
} catch (error) {
console.error('Failed to parse dataValue:', error);
}
@@ -103,11 +103,11 @@ export default class Component extends (FieldComponent as any) {
}
saveDrawnItems(drawnItems: L.Layer[]) {
- const value = drawnItems.map((layer: any) => {
+ const features = drawnItems.map((layer: any) => {
if (layer instanceof L.Marker) {
return {
type: 'marker',
- latlng: layer.getLatLng(),
+ coordinates: layer.getLatLng(),
};
} else if (layer instanceof L.Rectangle) {
return {
@@ -117,38 +117,34 @@ export default class Component extends (FieldComponent as any) {
} else if (layer instanceof L.Circle) {
return {
type: 'circle',
- latlng: layer.getLatLng(),
+ coordinates: layer.getLatLng(),
radius: layer.getRadius(),
};
} else if (layer instanceof L.Polygon) {
return {
type: 'polygon',
- latlngs: layer.getLatLngs(),
+ coordinates: layer.getLatLngs(),
};
} else if (layer instanceof L.Polyline) {
return {
type: 'polyline',
- latlngs: layer.getLatLngs(),
+ coordinates: layer.getLatLngs(),
};
}
});
- // Convert to JSON string
- const jsonValue =
- this.component.numPoints === 1
- ? JSON.stringify(value[0])
- : JSON.stringify(value);
- this.setValue(jsonValue);
+ this.setValue({ features });
}
setValue(value) {
super.setValue(value);
// Additional logic to render the saved data on the map if necessary
- if (this.mapService && value) {
+ if (this.mapService && value && value.features) {
try {
- const parsedValue = JSON.parse(value);
- this.mapService.loadDrawnItems(parsedValue);
+ //const parsedValue = JSON.parse(value);
+
+ this.mapService.loadDrawnItems(value.features);
} catch (error) {
console.error('Failed to parse value:', error);
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index d9f07bd48..fe6d28abf 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -157,15 +157,15 @@ class MapService {
items.forEach((item) => {
let layer;
if (item.type === 'marker') {
- layer = L.marker(item.latlng);
+ layer = L.marker(item.coordinates);
} else if (item.type === 'rectangle') {
layer = L.rectangle(item.bounds);
} else if (item.type === 'circle') {
- layer = L.circle(item.latlng, { radius: item.radius });
+ layer = L.circle(item.coordinates, { radius: item.radius });
} else if (item.type === 'polygon') {
- layer = L.polygon(item.latlngs);
+ layer = L.polygon(item.coordinates);
} else if (item.type === 'polyline') {
- layer = L.polyline(item.latlngs);
+ layer = L.polyline(item.coordinates);
}
if (layer) {
From 13a4ae6c4f212c7db98b7d27188f727e45431329 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 16 Jul 2024 16:43:43 +0000
Subject: [PATCH 37/80] reorganized map settings, set new default center
---
.../src/components/Map/Component.form.ts | 33 +++--------
components/src/components/Map/Component.ts | 2 +-
.../Map/editForm/Component.edit.data.ts | 3 +-
.../src/components/Map/services/MapService.ts | 56 ++++++-------------
4 files changed, 26 insertions(+), 68 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index 9b8ac2603..20c3c4533 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -1,32 +1,17 @@
import baseEditForm from 'formiojs/components/_classes/component/Component.form';
import EditData from './editForm/Component.edit.data';
import EditDisplay from './editForm/Component.edit.display';
-import EditValidation from './editForm/Component.edit.validation';
import SimpleApi from '../Common/Simple.edit.api';
import SimpleConditional from '../Common/Simple.edit.conditional';
+import AdvancedEditLogic from '../Common/Advanced.edit.logic';
+import AdvancedEditLayout from '../Common/Advanced.edit.layout';
export default function (...extend) {
return baseEditForm(
[
EditDisplay,
- {
- key: 'data',
- ignore: true,
- },
EditData,
{
- key: 'api',
- ignore: true,
- },
- {
- key: 'layout',
- ignore: true,
- },
- {
- key: 'conditional',
- ignore: true,
- },
- {
- key: 'logic',
+ key: 'data',
ignore: true,
},
{
@@ -34,16 +19,12 @@ export default function (...extend) {
ignore: true,
},
{
- label: 'API',
- key: 'customAPI',
- weight: 30,
- components: SimpleApi,
+ key: 'logic',
+ components: AdvancedEditLogic,
},
{
- label: 'Conditional',
- key: 'customConditional',
- weight: 40,
- components: SimpleConditional,
+ key: 'layout',
+ components: AdvancedEditLayout,
},
],
...extend
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index c69c858ab..ba079b97f 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -5,7 +5,7 @@ import baseEditForm from './Component.form';
import * as L from 'leaflet';
const DEFAULT_CENTER: [number, number] = [
- 48.41939025932759, -123.37029576301576,
+ 53.96717190097409, -123.98320425388914,
]; // Ensure CENTER is a tuple with exactly two elements
export default class Component extends (FieldComponent as any) {
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 4bf640ee0..6dbf7d242 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -1,4 +1,3 @@
-import common from '../../Common/Simple.edit.data';
export default {
key: 'customData',
label: 'Data',
@@ -44,7 +43,7 @@ export default {
label: 'Default Zoom Level',
description:
'Zoom Levels are from 0 (Most zoomed out) to 18 (most zoomed in).',
- defaultValue: 13,
+ defaultValue: 5,
delimiter: false,
requireDecimal: false,
validate: {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 46585a644..3ad22e8ba 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -2,7 +2,6 @@ import * as L from 'leaflet';
import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
import 'leaflet-draw/dist/leaflet.draw-src.css';
-
const DEFAULT_MAP_LAYER_URL =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
const DEFAULT_LAYER_ATTRIBUTION =
@@ -10,33 +9,20 @@ const DEFAULT_LAYER_ATTRIBUTION =
const DEFAULT_MAP_ZOOM = 13;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
-
-interface MapServiceOptions {
- mapContainer: HTMLElement;
- center: [number, number]; // Ensure center is a tuple with exactly two elements
- drawOptions: any;
- form: HTMLCollectionOf;
- numPoints: number;
- defaultZoom?: number;
- readOnlyMap?: boolean;
- onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
-}
-
+const FORM_REVIEW_CLASS = 'review-form';
class MapService {
- options: MapServiceOptions;
- map: L.Map;
- drawnItems: L.FeatureGroup;
-
- constructor(options: MapServiceOptions) {
+ options;
+ map;
+ drawnItems;
+ constructor(options) {
this.options = options;
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
this.map = map;
this.drawnItems = drawnItems;
map.invalidateSize();
-
// Event listener for drawn objects
- map.on('draw:created', (e: any) => {
+ map.on('draw:created', (e) => {
let layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
L.popup()
@@ -51,8 +37,7 @@ class MapService {
});
}
}
-
- initializeMap(options: MapServiceOptions) {
+ initializeMap(options) {
let { mapContainer, center, drawOptions, form, defaultZoom, readOnlyMap } =
options;
if (drawOptions.rectangle) {
@@ -65,13 +50,15 @@ class MapService {
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution: DEFAULT_LAYER_ATTRIBUTION,
}).addTo(map);
-
// Initialize Draw Layer
let drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
-
// Add Drawing Controllers
- if (!readOnlyMap) {
+ const formReviewNode = document.getElementsByClassName(FORM_REVIEW_CLASS);
+ if (
+ !readOnlyMap ||
+ !(formReviewNode && this.hasChildNode(formReviewNode[0], mapContainer))
+ ) {
let drawControl = new L.Control.Draw({
draw: drawOptions,
edit: {
@@ -80,7 +67,6 @@ class MapService {
});
map.addControl(drawControl);
}
-
// Checking to see if the map should be interactable
const componentEditNode =
document.getElementsByClassName(COMPONENT_EDIT_CLASS);
@@ -91,14 +77,14 @@ class MapService {
if (this.hasChildNode(componentEditNode[0], mapContainer)) {
map.dragging.enable();
map.scrollWheelZoom.enable();
+ console.log(map);
+ map.invalidateSize(true);
}
}
}
-
return { map, drawnItems };
}
-
- bindPopupToLayer(layer: L.Layer) {
+ bindPopupToLayer(layer) {
if (layer instanceof L.Marker) {
layer
.bindPopup(
@@ -127,21 +113,16 @@ class MapService {
.openPopup();
}
}
-
- loadDrawnItems(items: any) {
+ loadDrawnItems(items) {
const { drawnItems } = this;
-
if (!drawnItems) {
console.error('drawnItems is undefined');
return;
}
-
drawnItems.clearLayers();
-
if (!Array.isArray(items)) {
items = [items];
}
-
items.forEach((item) => {
let layer;
if (item.type === 'marker') {
@@ -155,15 +136,13 @@ class MapService {
} else if (item.type === 'polyline') {
layer = L.polyline(item.latlngs);
}
-
if (layer) {
drawnItems.addLayer(layer);
this.bindPopupToLayer(layer);
}
});
}
-
- hasChildNode(parent: any, targetNode: any) {
+ hasChildNode(parent, targetNode) {
if (parent === targetNode) {
return true;
}
@@ -175,5 +154,4 @@ class MapService {
return false;
}
}
-
export default MapService;
From ba671ba166bce538ededc40a1ef3ee2a2381bda0 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 24 Jul 2024 17:04:39 +0000
Subject: [PATCH 38/80] Fixed default bug
---
components/src/components/Map/Component.ts | 6 ++++--
.../components/Map/editForm/Component.edit.data.ts | 2 +-
components/src/components/Map/services/MapService.ts | 11 ++++++++---
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index ba079b97f..c55cbc7f5 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -71,8 +71,9 @@ export default class Component extends (FieldComponent as any) {
drawOptions[this.component.markerType] = true; // set marker type from user choice
}
- const { numPoints, defaultZoom, readOnlyMap, center } = this.component;
-
+ const { numPoints, defaultZoom, readOnlyMap, center, defaultValue } =
+ this.component;
+ console.log(defaultValue);
let parsedCenter;
if (center) {
parsedCenter = JSON.parse(center).latlng;
@@ -86,6 +87,7 @@ export default class Component extends (FieldComponent as any) {
numPoints,
defaultZoom,
readOnlyMap,
+ defaultValue,
onDrawnItemsChange: this.saveDrawnItems.bind(this),
});
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 6dbf7d242..74f60d61f 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -63,7 +63,7 @@ export default {
numPoints: 1,
tableView: false,
markerType: 'marker',
- defaultZoom: 13,
+ defaultZoom: 5,
readOnlyMap: false,
description:
'Please select the desired default center using a single marker',
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 3ad22e8ba..a4174dc09 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -6,7 +6,7 @@ const DEFAULT_MAP_LAYER_URL =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
const DEFAULT_LAYER_ATTRIBUTION =
'© OpenStreetMap contributors';
-const DEFAULT_MAP_ZOOM = 13;
+const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
const FORM_REVIEW_CLASS = 'review-form';
@@ -35,6 +35,12 @@ class MapService {
this.bindPopupToLayer(layer);
options.onDrawnItemsChange(drawnItems.getLayers());
});
+ map.on(L.Draw.Event.DELETED, (e) => {
+ options.onDrawnItemsChange(drawnItems.getLayers());
+ });
+ map.on(L.Draw.Event.EDITED, (e) => {
+ options.onDrawnItemsChange(drawnItems.getLayers());
+ });
}
}
initializeMap(options) {
@@ -72,13 +78,12 @@ class MapService {
document.getElementsByClassName(COMPONENT_EDIT_CLASS);
if (form) {
if (form[0]?.classList.contains('formbuilder')) {
+ map.invalidateSize();
map.dragging.disable();
map.scrollWheelZoom.disable();
if (this.hasChildNode(componentEditNode[0], mapContainer)) {
map.dragging.enable();
map.scrollWheelZoom.enable();
- console.log(map);
- map.invalidateSize(true);
}
}
}
From e11174fae7099cdfebe54ce57f5796715061d626 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Thu, 25 Jul 2024 16:13:27 -0700
Subject: [PATCH 39/80] map broken in Map Settings Page fixed
---
components/src/components/Map/Component.ts | 5 +++--
.../src/components/Map/services/MapService.ts | 17 +++++++++++++++--
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index c32056163..2c5d35127 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -75,18 +75,19 @@ export default class Component extends (FieldComponent as any) {
const { numPoints, defaultZoom, readOnlyMap, center, defaultValue } =
this.component;
-
const { readOnly: viewMode } = this.options;
let initialCenter;
if (center && center.features && center.features[0]) {
initialCenter = center.features[0].coordinates;
+ } else {
+ initialCenter = DEFAULT_CENTER;
}
this.mapService = new MapService({
mapContainer,
drawOptions,
- center: center ? initialCenter : DEFAULT_CENTER,
+ center: initialCenter,
form,
numPoints,
defaultZoom,
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 06b110b23..840cbb038 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -26,6 +26,7 @@ class MapService {
options;
map;
drawnItems;
+
constructor(options) {
this.options = options;
@@ -33,7 +34,10 @@ class MapService {
const { map, drawnItems } = this.initializeMap(options);
this.map = map;
this.drawnItems = drawnItems;
+
map.invalidateSize();
+ // Triggering a resize event after map initialization
+ setTimeout(() => window.dispatchEvent(new Event('resize')), 0);
// Event listener for drawn objects
map.on('draw:created', (e) => {
let layer = e.layer;
@@ -54,6 +58,10 @@ class MapService {
map.on(L.Draw.Event.EDITED, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
+
+ map.on('resize', () => {
+ map.invalidateSize();
+ });
}
}
@@ -68,10 +76,10 @@ class MapService {
viewMode,
} = options;
-
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
+
const map = L.map(mapContainer).setView(
center,
defaultZoom || DEFAULT_MAP_ZOOM
@@ -79,11 +87,12 @@ class MapService {
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution: DEFAULT_LAYER_ATTRIBUTION,
}).addTo(map);
+
// Initialize Draw Layer
let drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
- // Add Drawing Controllers
+ // Add Drawing Controllers
if (!readOnlyMap) {
if (!viewMode) {
let drawControl = new L.Control.Draw({
@@ -95,6 +104,7 @@ class MapService {
map.addControl(drawControl);
}
}
+
// Checking to see if the map should be interactable
const componentEditNode =
document.getElementsByClassName(COMPONENT_EDIT_CLASS);
@@ -111,6 +121,7 @@ class MapService {
}
return { map, drawnItems };
}
+
bindPopupToLayer(layer) {
if (layer instanceof L.Marker) {
layer
@@ -140,6 +151,7 @@ class MapService {
.openPopup();
}
}
+
loadDrawnItems(items) {
const { drawnItems } = this;
if (!drawnItems) {
@@ -169,6 +181,7 @@ class MapService {
}
});
}
+
hasChildNode(parent, targetNode) {
if (parent === targetNode) {
return true;
From 062e9eb1773375b5c45d3efad891cfd32d392725 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 29 Jul 2024 17:09:30 +0000
Subject: [PATCH 40/80] init, added marker png to component folder
---
.../src/components/Map/Common/marker-icon.png | Bin 0 -> 1466 bytes
.../src/components/Map/services/MapService.ts | 6 +++++-
2 files changed, 5 insertions(+), 1 deletion(-)
create mode 100644 components/src/components/Map/Common/marker-icon.png
diff --git a/components/src/components/Map/Common/marker-icon.png b/components/src/components/Map/Common/marker-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..950edf24677ded147df13b26f91baa2b0fa70513
GIT binary patch
literal 1466
zcmV;r1x5OaP)P001cn1^@s6z>|W`000GnNklGNuHDcIX17Zdjl&3`L?0sTjIws<{((Dh&g-s0<@jYQyl?D*X^?%13;ml^gy>
ziMrY_^1WI=(g@LMizu=zCoA>C`6|QEq1eV92k*7m>G65*&@&6)aC&e}G
zI)pf-Za|N`DT&Cn1J|o`19mumxW~hiKiKyc-P`S@q)rdTo84@QI@;0yXrG%9uhI>A
zG5QHb6s4=<6xy{1
z@NMxEkryp{LS44%z$3lP^cX!9+2-;CTt3wM4(k*#C{aiIiLuB>jJj;KPhPzIC00bL
zU3a#;aJld94lCW=`4&aAy8M7PY=HQ>O%$YEP4c4UY#CRxfgbE~(|uiI=YS8q;O9y6
zmIkXzR`}p7ti|PrM3a}WMnR=3NVnWdAAR>b9X@)DKL6=YsvmH%?I24wdq?Gh54_;#
z$?_LvgjEdspdQlft#4CQ
z`2Zyvy?*)N1Ftw|{_hakhG9WjS?Az@I@+IZ8JbWewR!XUK4&6346+d#~gsE0SY(LX8&JfY>Aj)RxGy96nwhs2rv
zzW6pTnMpFkDSkT*a*6Dx|u@ds6ISVn0@^RmIsKZ5Y;bazbc;tTSq(kg(=481ODrPyNB6n
z-$+U}(w$m6U6H$w17Bw+wDaFIe~GvNMYvnw31MpY0eQKT9l>SU``8k7w4)z!GZKMI
z#_cEKq7k~i%nlK@6c-K?+R;B#5$?T#YpKD`t_4bAs^#E+@5QW$@OX3*`;(#{U^d-vY)&xEE>n5lYl&T?AmOnly one marker for submission
')
.openOn(map);
} else {
+ console.log(layer);
+ layer.icon({ iconUrl: CUSTOM_MARKER_URI });
drawnItems.addLayer(layer);
}
this.bindPopupToLayer(layer);
@@ -68,7 +71,6 @@ class MapService {
viewMode,
} = options;
-
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
@@ -81,6 +83,8 @@ class MapService {
}).addTo(map);
// Initialize Draw Layer
let drawnItems = new L.FeatureGroup();
+ //({ iconUrl: '../common/marker-icon.png/' });
+
map.addLayer(drawnItems);
// Add Drawing Controllers
From f459450222d76a463371bbb61cb5edb641ea5ffe Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 31 Jul 2024 19:20:30 +0000
Subject: [PATCH 41/80] Added custom marker, placeholder marker image
---
.../src/components/Map/services/MapService.ts | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 174d27471..9a456aeed 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -9,7 +9,8 @@ const DEFAULT_LAYER_ATTRIBUTION =
const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
-const CUSTOM_MARKER_URI = '../Common/marker-icon.png/';
+const CUSTOM_MARKER_PATH =
+ 'http://leafletjs.com/examples/custom-icons/leaf-green.png';
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -45,7 +46,10 @@ class MapService {
.openOn(map);
} else {
console.log(layer);
- layer.icon({ iconUrl: CUSTOM_MARKER_URI });
+ if (layer.type === 'marker') {
+ layer.setIcon(this.customMarker);
+ console.log('Adding marker' + layer);
+ }
drawnItems.addLayer(layer);
}
this.bindPopupToLayer(layer);
@@ -157,7 +161,8 @@ class MapService {
items.forEach((item) => {
let layer;
if (item.type === 'marker') {
- layer = L.marker(item.coordinates);
+ layer = L.marker(item.coordinates).setIcon(this.customMarker); //layer.setIcon(this.customMarker);
+ console.log('Loading Marker' + layer);
} else if (item.type === 'rectangle') {
layer = L.rectangle(item.bounds);
} else if (item.type === 'circle') {
@@ -184,5 +189,10 @@ class MapService {
}
return false;
}
+ customMarker = L.icon({
+ iconUrl: CUSTOM_MARKER_PATH,
+ iconSize: [25, 41],
+ iconAnchor: [12, 20],
+ });
}
export default MapService;
From 6decb87633a6ff27c2de8f03f44fbccd98f651f0 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 1 Aug 2024 17:31:53 +0000
Subject: [PATCH 42/80] Added fixes for marker centering
---
components/src/components/Map/services/MapService.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 9a456aeed..24b69e0fa 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -10,7 +10,7 @@ const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
const CUSTOM_MARKER_PATH =
- 'http://leafletjs.com/examples/custom-icons/leaf-green.png';
+ 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png';
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -192,7 +192,7 @@ class MapService {
customMarker = L.icon({
iconUrl: CUSTOM_MARKER_PATH,
iconSize: [25, 41],
- iconAnchor: [12, 20],
+ iconAnchor: [12, 41],
});
}
export default MapService;
From 174dfb1801c36af3185d44a22f52c46226e5d3de Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 1 Aug 2024 20:55:38 +0000
Subject: [PATCH 43/80] Removed comments, and logs
---
components/src/components/Map/services/MapService.ts | 3 ---
1 file changed, 3 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 24b69e0fa..55aaca367 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -45,10 +45,8 @@ class MapService {
.setContent('Only one marker for submission
')
.openOn(map);
} else {
- console.log(layer);
if (layer.type === 'marker') {
layer.setIcon(this.customMarker);
- console.log('Adding marker' + layer);
}
drawnItems.addLayer(layer);
}
@@ -162,7 +160,6 @@ class MapService {
let layer;
if (item.type === 'marker') {
layer = L.marker(item.coordinates).setIcon(this.customMarker); //layer.setIcon(this.customMarker);
- console.log('Loading Marker' + layer);
} else if (item.type === 'rectangle') {
layer = L.rectangle(item.bounds);
} else if (item.type === 'circle') {
From beeb35e4ba383e6428137a7144c521e20241c888 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 6 Aug 2024 23:03:38 +0000
Subject: [PATCH 44/80] Added fix for marker drag
---
components/src/components/Map/services/MapService.ts | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 55aaca367..22b8364ad 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -59,6 +59,9 @@ class MapService {
map.on(L.Draw.Event.EDITED, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
+ map.on(L.Draw.Event.DRAWSTART, (e) => {
+ e.layer.setIcon(this.customMarker);
+ });
}
}
@@ -85,7 +88,6 @@ class MapService {
}).addTo(map);
// Initialize Draw Layer
let drawnItems = new L.FeatureGroup();
- //({ iconUrl: '../common/marker-icon.png/' });
map.addLayer(drawnItems);
// Add Drawing Controllers
@@ -159,7 +161,7 @@ class MapService {
items.forEach((item) => {
let layer;
if (item.type === 'marker') {
- layer = L.marker(item.coordinates).setIcon(this.customMarker); //layer.setIcon(this.customMarker);
+ layer = L.marker(item.coordinates).setIcon(this.customMarker);
} else if (item.type === 'rectangle') {
layer = L.rectangle(item.bounds);
} else if (item.type === 'circle') {
From dac5c6d9e5a34971da229ad35fdce230934bee41 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 7 Aug 2024 16:19:51 +0000
Subject: [PATCH 45/80] Merge error
---
components/src/components/Map/services/MapService.ts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 8afea043a..6cd483ac3 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -66,10 +66,9 @@ class MapService {
map.on(L.Draw.Event.DRAWSTART, (e) => {
e.layer.setIcon(this.customMarker);
- }
+ });
map.on('resize', () => {
map.invalidateSize();
-
});
}
}
From de9d6e4f3de617c97288dcbfed7b4ff093222267 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 7 Aug 2024 16:25:16 +0000
Subject: [PATCH 46/80] Merge from pop
---
components/package-lock.json | 157 +++++++++++++++++-
components/package.json | 1 +
.../src/components/Map/services/MapService.ts | 2 +
3 files changed, 154 insertions(+), 6 deletions(-)
diff --git a/components/package-lock.json b/components/package-lock.json
index 2b0b32e0d..d55b3d2c1 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -19,6 +19,7 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
+ "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
@@ -287,7 +288,6 @@
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
- "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1093,6 +1093,97 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
+ "node_modules/@vue/compiler-core": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz",
+ "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/shared": "3.4.36",
+ "entities": "^5.0.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz",
+ "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==",
+ "dependencies": {
+ "@vue/compiler-core": "3.4.36",
+ "@vue/shared": "3.4.36"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz",
+ "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/compiler-core": "3.4.36",
+ "@vue/compiler-dom": "3.4.36",
+ "@vue/compiler-ssr": "3.4.36",
+ "@vue/shared": "3.4.36",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.10",
+ "postcss": "^8.4.40",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz",
+ "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.36",
+ "@vue/shared": "3.4.36"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz",
+ "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==",
+ "dependencies": {
+ "@vue/shared": "3.4.36"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz",
+ "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.36",
+ "@vue/shared": "3.4.36"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz",
+ "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.36",
+ "@vue/runtime-core": "3.4.36",
+ "@vue/shared": "3.4.36",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz",
+ "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.4.36",
+ "@vue/shared": "3.4.36"
+ },
+ "peerDependencies": {
+ "vue": "3.4.36"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz",
+ "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA=="
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -2403,6 +2494,11 @@
"node": ">=4"
}
},
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2720,6 +2816,17 @@
"node": ">=10.13.0"
}
},
+ "node_modules/entities": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz",
+ "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/envinfo": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@@ -2962,6 +3069,11 @@
"node": ">=4.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -5071,6 +5183,19 @@
"yallist": "^2.1.2"
}
},
+ "node_modules/magic-string": {
+ "version": "0.30.11",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
+ "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
+ },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -6769,9 +6894,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.38",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
- "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+ "version": "8.4.41",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
+ "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
"funding": [
{
"type": "opencollective",
@@ -6788,7 +6913,7 @@
],
"dependencies": {
"nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
+ "picocolors": "^1.0.1",
"source-map-js": "^1.2.0"
},
"engines": {
@@ -8726,7 +8851,7 @@
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "dev": true,
+ "devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -9119,6 +9244,26 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/vue": {
+ "version": "3.4.36",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz",
+ "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.36",
+ "@vue/compiler-sfc": "3.4.36",
+ "@vue/runtime-dom": "3.4.36",
+ "@vue/server-renderer": "3.4.36",
+ "@vue/shared": "3.4.36"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/components/package.json b/components/package.json
index ed2573947..9633d47fc 100644
--- a/components/package.json
+++ b/components/package.json
@@ -57,6 +57,7 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
+ "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 6cd483ac3..0068817cc 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,4 +1,5 @@
import * as L from 'leaflet';
+import { toRaw, markRaw } from 'vue';
import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
import 'leaflet-draw/dist/leaflet.draw-src.css';
@@ -34,6 +35,7 @@ class MapService {
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
+
this.map = map;
this.drawnItems = drawnItems;
From 65301b7255423598c67887bd1192d7f513196978 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 7 Aug 2024 16:25:16 +0000
Subject: [PATCH 47/80] Merge from pop
From 7a5b17f9ce6fe4583f4262534e8096a87e3466e6 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 7 Aug 2024 16:55:07 +0000
Subject: [PATCH 48/80] Revert "Merge error"
This reverts commit dac5c6d9e5a34971da229ad35fdce230934bee41.
---
components/src/components/Map/services/MapService.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 0068817cc..7c3d7e1d0 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -68,9 +68,10 @@ class MapService {
map.on(L.Draw.Event.DRAWSTART, (e) => {
e.layer.setIcon(this.customMarker);
- });
+ }
map.on('resize', () => {
map.invalidateSize();
+
});
}
}
From 37716bfa6436b9b31ce68c1a160448b557e6bc99 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 8 Aug 2024 19:11:31 +0000
Subject: [PATCH 49/80] Commit fixes
---
components/package-lock.json | 149 +-----------------
components/package.json | 1 -
.../src/components/Map/services/MapService.ts | 7 +-
3 files changed, 7 insertions(+), 150 deletions(-)
diff --git a/components/package-lock.json b/components/package-lock.json
index d55b3d2c1..de6e146a6 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -19,7 +19,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
@@ -288,6 +287,7 @@
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1093,97 +1093,6 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
- "node_modules/@vue/compiler-core": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz",
- "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/shared": "3.4.36",
- "entities": "^5.0.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz",
- "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==",
- "dependencies": {
- "@vue/compiler-core": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz",
- "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/compiler-core": "3.4.36",
- "@vue/compiler-dom": "3.4.36",
- "@vue/compiler-ssr": "3.4.36",
- "@vue/shared": "3.4.36",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.10",
- "postcss": "^8.4.40",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz",
- "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz",
- "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==",
- "dependencies": {
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz",
- "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==",
- "dependencies": {
- "@vue/reactivity": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz",
- "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==",
- "dependencies": {
- "@vue/reactivity": "3.4.36",
- "@vue/runtime-core": "3.4.36",
- "@vue/shared": "3.4.36",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz",
- "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==",
- "dependencies": {
- "@vue/compiler-ssr": "3.4.36",
- "@vue/shared": "3.4.36"
- },
- "peerDependencies": {
- "vue": "3.4.36"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz",
- "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA=="
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -2494,11 +2403,6 @@
"node": ">=4"
}
},
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
- },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2816,17 +2720,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/entities": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz",
- "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/envinfo": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@@ -3069,11 +2962,6 @@
"node": ">=4.0"
}
},
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
- },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -5183,19 +5071,6 @@
"yallist": "^2.1.2"
}
},
- "node_modules/magic-string": {
- "version": "0.30.11",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
- "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
- },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -8851,7 +8726,7 @@
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "devOptional": true,
+ "dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -9244,26 +9119,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/vue": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz",
- "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.36",
- "@vue/compiler-sfc": "3.4.36",
- "@vue/runtime-dom": "3.4.36",
- "@vue/server-renderer": "3.4.36",
- "@vue/shared": "3.4.36"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/components/package.json b/components/package.json
index 9633d47fc..ed2573947 100644
--- a/components/package.json
+++ b/components/package.json
@@ -57,7 +57,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 0068817cc..9e6d887ab 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,5 +1,4 @@
import * as L from 'leaflet';
-import { toRaw, markRaw } from 'vue';
import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
import 'leaflet-draw/dist/leaflet.draw-src.css';
@@ -67,7 +66,11 @@ class MapService {
});
map.on(L.Draw.Event.DRAWSTART, (e) => {
- e.layer.setIcon(this.customMarker);
+ console.log(e.target);
+ console.log(e.layer);
+ console.log(e.sourceTarget);
+ console.log(e.propagatedFrom);
+ //.setIcon(this.customMarker);
});
map.on('resize', () => {
map.invalidateSize();
From c9b857978ef13a2d9f9f294f794babd929d5a7f9 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 13 Aug 2024 16:03:41 +0000
Subject: [PATCH 50/80] Fixes for marker dragging
---
.../src/components/Map/services/MapService.ts | 36 ++++++++++---------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 7c3d7e1d0..3ccb733c7 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,8 +1,8 @@
import * as L from 'leaflet';
-import { toRaw, markRaw } from 'vue';
import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
import 'leaflet-draw/dist/leaflet.draw-src.css';
+
const DEFAULT_MAP_LAYER_URL =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
const DEFAULT_LAYER_ATTRIBUTION =
@@ -10,8 +10,14 @@ const DEFAULT_LAYER_ATTRIBUTION =
const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
-const CUSTOM_MARKER_PATH =
- 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png';
+const CUSTOM_MARKER_PATH = 'https://unpkg.com/leaflet@1.9.4/dist/images/';
+// const CUSTOM_MARKER = L.icon({
+// iconUrl: CUSTOM_MARKER_PATH,
+// iconSize: [25, 41],
+// iconAnchor: [12, 41],
+// });
+
+L.Icon.Default.imagePath = CUSTOM_MARKER_PATH;
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -51,9 +57,9 @@ class MapService {
.setContent('Only one marker for submission
')
.openOn(map);
} else {
- if (layer.type === 'marker') {
- layer.setIcon(this.customMarker);
- }
+ // if (layer.type === 'marker') {
+ // layer.setIcon(this.customMarker);
+ // }
drawnItems.addLayer(layer);
}
this.bindPopupToLayer(layer);
@@ -67,11 +73,14 @@ class MapService {
});
map.on(L.Draw.Event.DRAWSTART, (e) => {
- e.layer.setIcon(this.customMarker);
- }
+ // L.Marker.prototype.options.icon = CUTSOM_MARKER;
+ // console.log(e.target);
+ // console.log(e.sourceTarget);
+ // console.log(e);
+ // e.layer.setIcon(this.customMarker);
+ });
map.on('resize', () => {
map.invalidateSize();
-
});
}
}
@@ -90,7 +99,7 @@ class MapService {
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
-
+ //L.Marker.prototype.options.icon = CUSTOM_MARKER;
const map = L.map(mapContainer).setView(
center,
defaultZoom || DEFAULT_MAP_ZOOM
@@ -177,7 +186,7 @@ class MapService {
items.forEach((item) => {
let layer;
if (item.type === 'marker') {
- layer = L.marker(item.coordinates).setIcon(this.customMarker);
+ layer = L.marker(item.coordinates);
} else if (item.type === 'rectangle') {
layer = L.rectangle(item.bounds);
} else if (item.type === 'circle') {
@@ -205,10 +214,5 @@ class MapService {
}
return false;
}
- customMarker = L.icon({
- iconUrl: CUSTOM_MARKER_PATH,
- iconSize: [25, 41],
- iconAnchor: [12, 41],
- });
}
export default MapService;
From a54184bbf5814ebcfd405019dcd3d5fb06acaf43 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 13 Aug 2024 16:06:03 +0000
Subject: [PATCH 51/80] Cleanup
---
.../src/components/Map/services/MapService.ts | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 3ccb733c7..826535d9a 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -11,11 +11,6 @@ const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
const CUSTOM_MARKER_PATH = 'https://unpkg.com/leaflet@1.9.4/dist/images/';
-// const CUSTOM_MARKER = L.icon({
-// iconUrl: CUSTOM_MARKER_PATH,
-// iconSize: [25, 41],
-// iconAnchor: [12, 41],
-// });
L.Icon.Default.imagePath = CUSTOM_MARKER_PATH;
@@ -57,9 +52,6 @@ class MapService {
.setContent('Only one marker for submission
')
.openOn(map);
} else {
- // if (layer.type === 'marker') {
- // layer.setIcon(this.customMarker);
- // }
drawnItems.addLayer(layer);
}
this.bindPopupToLayer(layer);
@@ -72,13 +64,6 @@ class MapService {
options.onDrawnItemsChange(drawnItems.getLayers());
});
- map.on(L.Draw.Event.DRAWSTART, (e) => {
- // L.Marker.prototype.options.icon = CUTSOM_MARKER;
- // console.log(e.target);
- // console.log(e.sourceTarget);
- // console.log(e);
- // e.layer.setIcon(this.customMarker);
- });
map.on('resize', () => {
map.invalidateSize();
});
@@ -99,7 +84,6 @@ class MapService {
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
- //L.Marker.prototype.options.icon = CUSTOM_MARKER;
const map = L.map(mapContainer).setView(
center,
defaultZoom || DEFAULT_MAP_ZOOM
From dfb98c17a062c74497eaf68c5d0093006be53905 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 13 Aug 2024 16:13:03 +0000
Subject: [PATCH 52/80] removed extra node installs, vue etc...
---
components/package-lock.json | 149 +----------------------------------
components/package.json | 1 -
2 files changed, 2 insertions(+), 148 deletions(-)
diff --git a/components/package-lock.json b/components/package-lock.json
index d55b3d2c1..de6e146a6 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -19,7 +19,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
@@ -288,6 +287,7 @@
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1093,97 +1093,6 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
- "node_modules/@vue/compiler-core": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz",
- "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/shared": "3.4.36",
- "entities": "^5.0.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz",
- "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==",
- "dependencies": {
- "@vue/compiler-core": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz",
- "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/compiler-core": "3.4.36",
- "@vue/compiler-dom": "3.4.36",
- "@vue/compiler-ssr": "3.4.36",
- "@vue/shared": "3.4.36",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.10",
- "postcss": "^8.4.40",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz",
- "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz",
- "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==",
- "dependencies": {
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz",
- "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==",
- "dependencies": {
- "@vue/reactivity": "3.4.36",
- "@vue/shared": "3.4.36"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz",
- "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==",
- "dependencies": {
- "@vue/reactivity": "3.4.36",
- "@vue/runtime-core": "3.4.36",
- "@vue/shared": "3.4.36",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz",
- "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==",
- "dependencies": {
- "@vue/compiler-ssr": "3.4.36",
- "@vue/shared": "3.4.36"
- },
- "peerDependencies": {
- "vue": "3.4.36"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz",
- "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA=="
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -2494,11 +2403,6 @@
"node": ">=4"
}
},
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
- },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2816,17 +2720,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/entities": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz",
- "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/envinfo": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@@ -3069,11 +2962,6 @@
"node": ">=4.0"
}
},
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
- },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -5183,19 +5071,6 @@
"yallist": "^2.1.2"
}
},
- "node_modules/magic-string": {
- "version": "0.30.11",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
- "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
- },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -8851,7 +8726,7 @@
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "devOptional": true,
+ "dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -9244,26 +9119,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/vue": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz",
- "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.36",
- "@vue/compiler-sfc": "3.4.36",
- "@vue/runtime-dom": "3.4.36",
- "@vue/server-renderer": "3.4.36",
- "@vue/shared": "3.4.36"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/components/package.json b/components/package.json
index 9633d47fc..ed2573947 100644
--- a/components/package.json
+++ b/components/package.json
@@ -57,7 +57,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.36",
"webpack": "^5.75.0"
},
"devDependencies": {
From b47b3d89178cf8f4476872502a68955968c1e9c0 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 19 Aug 2024 19:12:37 +0000
Subject: [PATCH 53/80] marker edit fix
---
components/src/components/Map/services/MapService.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 826535d9a..7a8e5467f 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -60,7 +60,7 @@ class MapService {
map.on(L.Draw.Event.DELETED, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
- map.on(L.Draw.Event.EDITED, (e) => {
+ map.on(L.Draw.Event.EDITSTOP, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
From a3603904c045833dfdea367db1087814fbfbbde2 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 4 Sep 2024 09:54:05 -0700
Subject: [PATCH 54/80] updated Map Component Settings
---
.../src/components/Map/Component.form.ts | 41 ++++++++++++++---
.../Map/editForm/Component.edit.display.ts | 46 ++++++++++---------
2 files changed, 60 insertions(+), 27 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index 20c3c4533..fd051ab8e 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -1,14 +1,43 @@
import baseEditForm from 'formiojs/components/_classes/component/Component.form';
import EditData from './editForm/Component.edit.data';
-import EditDisplay from './editForm/Component.edit.display';
-import SimpleApi from '../Common/Simple.edit.api';
-import SimpleConditional from '../Common/Simple.edit.conditional';
import AdvancedEditLogic from '../Common/Advanced.edit.logic';
-import AdvancedEditLayout from '../Common/Advanced.edit.layout';
export default function (...extend) {
return baseEditForm(
[
- EditDisplay,
+ {
+ key: 'display',
+ components: [
+ {
+ // You can ignore existing fields.
+ key: 'placeholder',
+ ignore: true,
+ },
+ {
+ key: 'tableView',
+ ignore: true,
+ },
+ {
+ key: 'hidden',
+ ignore: true,
+ },
+ {
+ key: 'autofocus',
+ ignore: true,
+ },
+ {
+ key: 'tabindex',
+ ignore: true,
+ },
+ {
+ key: 'modalEdit',
+ ignore: true,
+ },
+ {
+ key: 'disabled',
+ ignore: true,
+ },
+ ],
+ },
EditData,
{
key: 'data',
@@ -24,7 +53,7 @@ export default function (...extend) {
},
{
key: 'layout',
- components: AdvancedEditLayout,
+ ignore: true,
},
],
...extend
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
index 5c0cae03f..53fd494a3 100644
--- a/components/src/components/Map/editForm/Component.edit.display.ts
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -1,24 +1,28 @@
import common from '../../Common/Simple.edit.display';
export default [
- ...common,
- {
- key: 'refreshOnChange',
- ignore: true
- },
- {
- key: 'className',
- ignore: true,
- },
- {
- key: 'prefix',
- ignore: true
- },
- {
- key: 'suffix',
- ignore: true
- },
- {
- key: 'labelPosition',
- ignore: true,
- },
+ ...common,
+ {
+ key: 'refreshOnChange',
+ ignore: true,
+ },
+ {
+ key: 'className',
+ ignore: true,
+ },
+ {
+ key: 'prefix',
+ ignore: true,
+ },
+ {
+ key: 'suffix',
+ ignore: true,
+ },
+ {
+ key: 'labelPosition',
+ ignore: true,
+ },
+ {
+ key: 'placeholder',
+ ignore: true,
+ },
];
From 4998ac29fa01bf86251a208c42b3e019cfe02ebe Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 4 Sep 2024 17:11:46 +0000
Subject: [PATCH 55/80] Vue fix recant
---
components/package-lock.json | 171 ++++++++++++++++--
components/package.json | 1 +
.../src/components/Map/services/MapService.ts | 7 +-
3 files changed, 165 insertions(+), 14 deletions(-)
diff --git a/components/package-lock.json b/components/package-lock.json
index 6f996c015..3d3db03ef 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -19,6 +19,7 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
+ "vue": "^3.4.38",
"webpack": "^5.75.0"
},
"devDependencies": {
@@ -272,7 +273,6 @@
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
- "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1076,6 +1076,97 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
+ "node_modules/@vue/compiler-core": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
+ "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/shared": "3.4.38",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
+ "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
+ "dependencies": {
+ "@vue/compiler-core": "3.4.38",
+ "@vue/shared": "3.4.38"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz",
+ "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/compiler-core": "3.4.38",
+ "@vue/compiler-dom": "3.4.38",
+ "@vue/compiler-ssr": "3.4.38",
+ "@vue/shared": "3.4.38",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.10",
+ "postcss": "^8.4.40",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz",
+ "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.38",
+ "@vue/shared": "3.4.38"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz",
+ "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==",
+ "dependencies": {
+ "@vue/shared": "3.4.38"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz",
+ "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.38",
+ "@vue/shared": "3.4.38"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz",
+ "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.38",
+ "@vue/runtime-core": "3.4.38",
+ "@vue/shared": "3.4.38",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz",
+ "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.4.38",
+ "@vue/shared": "3.4.38"
+ },
+ "peerDependencies": {
+ "vue": "3.4.38"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz",
+ "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw=="
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -2036,6 +2127,11 @@
"node": ">=4"
}
},
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2261,6 +2357,17 @@
"node": ">=10.13.0"
}
},
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/envinfo": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@@ -2423,6 +2530,11 @@
"node": ">=4.0"
}
},
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -3218,17 +3330,6 @@
"@babel/runtime": "^7.17.2"
}
},
- "node_modules/icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -3241,6 +3342,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
"node_modules/idb": {
"version": "6.1.5",
"resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz",
@@ -4187,6 +4299,19 @@
"yallist": "^2.1.2"
}
},
+ "node_modules/magic-string": {
+ "version": "0.30.11",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
+ "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
+ },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -6557,7 +6682,7 @@
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "dev": true,
+ "devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -6821,6 +6946,26 @@
}
}
},
+ "node_modules/vue": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz",
+ "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.38",
+ "@vue/compiler-sfc": "3.4.38",
+ "@vue/runtime-dom": "3.4.38",
+ "@vue/server-renderer": "3.4.38",
+ "@vue/shared": "3.4.38"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/components/package.json b/components/package.json
index 8961cee2d..968469aae 100644
--- a/components/package.json
+++ b/components/package.json
@@ -57,6 +57,7 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
+ "vue": "^3.4.38",
"webpack": "^5.75.0"
},
"devDependencies": {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 0f20e87d0..e4e296d60 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -13,6 +13,9 @@ const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
const CUSTOM_MARKER_PATH = 'https://unpkg.com/leaflet@1.9.4/dist/images/';
L.Icon.Default.imagePath = CUSTOM_MARKER_PATH;
+L.Icon.Default.mergeOptions({
+ iconAnchor: [17, 46],
+});
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -32,12 +35,13 @@ class MapService {
drawnItems;
constructor(options) {
+ console.log(L.Icon.Default);
this.options = options;
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
- this.map = map;
+ // this.map = map;
this.drawnItems = drawnItems;
map.invalidateSize();
@@ -91,6 +95,7 @@ class MapService {
);
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution: DEFAULT_LAYER_ATTRIBUTION,
+ //}).addTo(map);
}).addTo(map);
// Initialize Draw Layer
From 92e7431e559d586b46ae80e18cc545c78ff94feb Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 9 Sep 2024 17:54:43 +0000
Subject: [PATCH 56/80] zoom bug fix,disable zoom animation
---
components/package-lock.json | 149 +-----------------
components/package.json | 1 -
components/src/components/Map/Component.ts | 1 +
.../src/components/Map/services/MapService.ts | 13 +-
4 files changed, 8 insertions(+), 156 deletions(-)
diff --git a/components/package-lock.json b/components/package-lock.json
index 3d3db03ef..0fc29cacb 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -19,7 +19,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.38",
"webpack": "^5.75.0"
},
"devDependencies": {
@@ -273,6 +272,7 @@
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1076,97 +1076,6 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
- "node_modules/@vue/compiler-core": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
- "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/shared": "3.4.38",
- "entities": "^4.5.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
- "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
- "dependencies": {
- "@vue/compiler-core": "3.4.38",
- "@vue/shared": "3.4.38"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz",
- "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==",
- "dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/compiler-core": "3.4.38",
- "@vue/compiler-dom": "3.4.38",
- "@vue/compiler-ssr": "3.4.38",
- "@vue/shared": "3.4.38",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.10",
- "postcss": "^8.4.40",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz",
- "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.38",
- "@vue/shared": "3.4.38"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz",
- "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==",
- "dependencies": {
- "@vue/shared": "3.4.38"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz",
- "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==",
- "dependencies": {
- "@vue/reactivity": "3.4.38",
- "@vue/shared": "3.4.38"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz",
- "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==",
- "dependencies": {
- "@vue/reactivity": "3.4.38",
- "@vue/runtime-core": "3.4.38",
- "@vue/shared": "3.4.38",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz",
- "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==",
- "dependencies": {
- "@vue/compiler-ssr": "3.4.38",
- "@vue/shared": "3.4.38"
- },
- "peerDependencies": {
- "vue": "3.4.38"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz",
- "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw=="
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
@@ -2127,11 +2036,6 @@
"node": ">=4"
}
},
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
- },
"node_modules/custom-event": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
@@ -2357,17 +2261,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/envinfo": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@@ -2530,11 +2423,6 @@
"node": ">=4.0"
}
},
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
- },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -4299,19 +4187,6 @@
"yallist": "^2.1.2"
}
},
- "node_modules/magic-string": {
- "version": "0.30.11",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
- "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
- },
"node_modules/make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -6682,7 +6557,7 @@
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "devOptional": true,
+ "dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -6946,26 +6821,6 @@
}
}
},
- "node_modules/vue": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz",
- "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==",
- "dependencies": {
- "@vue/compiler-dom": "3.4.38",
- "@vue/compiler-sfc": "3.4.38",
- "@vue/runtime-dom": "3.4.38",
- "@vue/server-renderer": "3.4.38",
- "@vue/shared": "3.4.38"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
diff --git a/components/package.json b/components/package.json
index 968469aae..8961cee2d 100644
--- a/components/package.json
+++ b/components/package.json
@@ -57,7 +57,6 @@
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
- "vue": "^3.4.38",
"webpack": "^5.75.0"
},
"devDependencies": {
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 2c5d35127..e66dc1891 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -96,6 +96,7 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
viewMode,
});
+ this.map = this.mapService.getMap();
// Load existing data if available
if (this.dataValue && this.dataValue.features) {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index e4e296d60..1c607eb8b 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -13,9 +13,6 @@ const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
const CUSTOM_MARKER_PATH = 'https://unpkg.com/leaflet@1.9.4/dist/images/';
L.Icon.Default.imagePath = CUSTOM_MARKER_PATH;
-L.Icon.Default.mergeOptions({
- iconAnchor: [17, 46],
-});
interface MapServiceOptions {
mapContainer: HTMLElement;
@@ -40,7 +37,7 @@ class MapService {
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
-
+ this.map = map;
// this.map = map;
this.drawnItems = drawnItems;
@@ -67,7 +64,6 @@ class MapService {
map.on(L.Draw.Event.EDITSTOP, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
-
map.on('resize', () => {
map.invalidateSize();
});
@@ -89,13 +85,12 @@ class MapService {
drawOptions.rectangle.showArea = false;
}
- const map = L.map(mapContainer).setView(
+ const map = L.map(mapContainer, { zoomAnimation: false }).setView(
center,
defaultZoom || DEFAULT_MAP_ZOOM
);
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution: DEFAULT_LAYER_ATTRIBUTION,
- //}).addTo(map);
}).addTo(map);
// Initialize Draw Layer
@@ -132,7 +127,9 @@ class MapService {
}
return { map, drawnItems };
}
-
+ getMap() {
+ return this.map;
+ }
bindPopupToLayer(layer) {
if (layer instanceof L.Marker) {
layer
From f4cfe7ed964fd6c1b6ea471131b93f018d82395c Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 9 Sep 2024 18:10:48 +0000
Subject: [PATCH 57/80] cleanup
---
components/src/components/Map/Component.ts | 1 -
components/src/components/Map/services/MapService.ts | 7 -------
2 files changed, 8 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index e66dc1891..2c5d35127 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -96,7 +96,6 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
viewMode,
});
- this.map = this.mapService.getMap();
// Load existing data if available
if (this.dataValue && this.dataValue.features) {
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 1c607eb8b..04fce37a5 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -32,14 +32,10 @@ class MapService {
drawnItems;
constructor(options) {
- console.log(L.Icon.Default);
this.options = options;
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
- this.map = map;
- // this.map = map;
- this.drawnItems = drawnItems;
map.invalidateSize();
// Triggering a resize event after map initialization
@@ -127,9 +123,6 @@ class MapService {
}
return { map, drawnItems };
}
- getMap() {
- return this.map;
- }
bindPopupToLayer(layer) {
if (layer instanceof L.Marker) {
layer
From 69ec9a7e6cd4d68930380619f31713d21b4f1bbf Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 11 Sep 2024 13:35:04 -0700
Subject: [PATCH 58/80] restructure the display tab
---
.../src/components/Map/Component.form.ts | 47 ++++-------
.../Map/editForm/Component.edit.display.ts | 78 ++++++++++++-------
2 files changed, 64 insertions(+), 61 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index fd051ab8e..a4e5f4d63 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -1,52 +1,33 @@
import baseEditForm from 'formiojs/components/_classes/component/Component.form';
import EditData from './editForm/Component.edit.data';
+import EditDisplay from './editForm/Component.edit.display';
import AdvancedEditLogic from '../Common/Advanced.edit.logic';
export default function (...extend) {
return baseEditForm(
[
+ EditDisplay,
+ EditData,
+ {
+ key: 'data',
+ ignore: true,
+ },
+ {
+ key: 'validation',
+ ignore: true,
+ },
{
- key: 'display',
+ key: 'api',
components: [
{
- // You can ignore existing fields.
- key: 'placeholder',
+ key: 'tags',
ignore: true,
},
{
- key: 'tableView',
- ignore: true,
- },
- {
- key: 'hidden',
- ignore: true,
- },
- {
- key: 'autofocus',
- ignore: true,
- },
- {
- key: 'tabindex',
- ignore: true,
- },
- {
- key: 'modalEdit',
- ignore: true,
- },
- {
- key: 'disabled',
+ key: 'properties',
ignore: true,
},
],
},
- EditData,
- {
- key: 'data',
- ignore: true,
- },
- {
- key: 'validation',
- ignore: true,
- },
{
key: 'logic',
components: AdvancedEditLogic,
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
index 53fd494a3..bdfebe452 100644
--- a/components/src/components/Map/editForm/Component.edit.display.ts
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -1,28 +1,50 @@
-import common from '../../Common/Simple.edit.display';
-export default [
- ...common,
- {
- key: 'refreshOnChange',
- ignore: true,
- },
- {
- key: 'className',
- ignore: true,
- },
- {
- key: 'prefix',
- ignore: true,
- },
- {
- key: 'suffix',
- ignore: true,
- },
- {
- key: 'labelPosition',
- ignore: true,
- },
- {
- key: 'placeholder',
- ignore: true,
- },
-];
+export default {
+ key: 'display',
+ components: [
+ {
+ key: 'description',
+ label: 'Text Description (optional)',
+ placeholder: 'This will appear below the map',
+ tooltip: 'Enter a description for the map component here', // Example change
+ },
+ {
+ key: 'customClass',
+ tooltip:
+ 'Assign one or more CSS class names to customize the appearance of this component',
+ },
+ {
+ // You can ignore existing fields.
+ key: 'placeholder',
+ ignore: true,
+ },
+ {
+ key: 'tableView',
+ ignore: true,
+ },
+ {
+ key: 'hidden',
+ ignore: true,
+ },
+ {
+ key: 'autofocus',
+ ignore: true,
+ },
+ {
+ key: 'tabindex',
+ ignore: true,
+ },
+ {
+ key: 'modalEdit',
+ ignore: true,
+ },
+ {
+ key: 'disabled',
+ ignore: true,
+ },
+ {
+ key: 'hideLabel',
+ label: 'Hide Label',
+ weight: 10,
+ },
+ ],
+};
From db9a6c2127c97bb2200702a7a4c68347d52002cf Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 11 Sep 2024 16:06:19 -0700
Subject: [PATCH 59/80] updated Display tab Settings in Map component
---
.../src/components/Map/Component.form.ts | 4 +
.../Map/editForm/Component.edit.display.ts | 109 ++++++++++++------
2 files changed, 80 insertions(+), 33 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index a4e5f4d63..6376c87af 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -7,6 +7,10 @@ export default function (...extend) {
[
EditDisplay,
EditData,
+ {
+ key: 'display',
+ ignore: true,
+ },
{
key: 'data',
ignore: true,
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
index bdfebe452..5dd2fc6e6 100644
--- a/components/src/components/Map/editForm/Component.edit.display.ts
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -1,50 +1,93 @@
export default {
- key: 'display',
+ key: 'customDisplay',
+ label: 'Display',
+ weight: 10,
components: [
{
- key: 'description',
- label: 'Text Description (optional)',
- placeholder: 'This will appear below the map',
- tooltip: 'Enter a description for the map component here', // Example change
+ key: 'label',
+ label: 'Label',
+ type: 'textfield',
+ input: true,
+ tooltip: 'The label for this field.',
},
{
- key: 'customClass',
+ key: 'hideLabel',
+ label: 'Hide Label',
+ type: 'checkbox',
tooltip:
- 'Assign one or more CSS class names to customize the appearance of this component',
+ 'Check to hide the label for this component. This allows you to show the label in the form Builder, but not when it is rendered',
+ input: true,
},
{
- // You can ignore existing fields.
- key: 'placeholder',
- ignore: true,
+ key: 'labelPosition',
+ label: 'Label Position',
+ type: 'select',
+ input: true,
+ data: {
+ values: [
+ { value: 'top', label: 'Top' },
+ { value: 'left-left', label: 'Left (Left-aligned)' },
+ { value: 'left-right', label: 'Left (Right-aligned)' },
+ { value: 'right-left', label: 'Right (Left-aligned)' },
+ { value: 'right-right', label: 'Right (Right-aligned)' },
+ { value: 'bottom', label: 'Bottom' },
+ ],
+ },
+ tooltip: 'Position of the label relative to the field.',
},
{
- key: 'tableView',
- ignore: true,
- },
- {
- key: 'hidden',
- ignore: true,
- },
- {
- key: 'autofocus',
- ignore: true,
- },
- {
- key: 'tabindex',
- ignore: true,
- },
- {
- key: 'modalEdit',
- ignore: true,
+ key: 'description',
+ label: 'Text Description (optional)',
+ type: 'textarea',
+ input: true,
+ placeholder: 'This will appear below the map',
+ tooltip: 'Enter a description for the map component here',
},
{
- key: 'disabled',
- ignore: true,
+ key: 'tooltip',
+ label: 'Tooltip',
+ type: 'textarea',
+ input: true,
+ tooltip: 'Add a tooltip to provide additional information.',
+ placeholder: 'Add a tooltip beside the label',
},
{
- key: 'hideLabel',
- label: 'Hide Label',
- weight: 10,
+ key: 'customClass',
+ label: 'Custom CSS Class',
+ type: 'textfield',
+ input: true,
+ tooltip:
+ 'Assign one or more CSS class names to customize the appearance of this component.',
},
+
+ // {
+ // // You can ignore existing fields.
+ // key: 'placeholder',
+ // ignore: true,
+ // },
+ // {
+ // key: 'tableView',
+ // ignore: true,
+ // },
+ // {
+ // key: 'hidden',
+ // ignore: true,
+ // },
+ // {
+ // key: 'autofocus',
+ // ignore: true,
+ // },
+ // {
+ // key: 'tabindex',
+ // ignore: true,
+ // },
+ // {
+ // key: 'modalEdit',
+ // ignore: true,
+ // },
+ // {
+ // key: 'disabled',
+ // ignore: true,
+ // },
],
};
From aecf19933f1f08570a0d8e6c5c93d0a9df849fca Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 16 Sep 2024 15:55:27 +0000
Subject: [PATCH 60/80] Added zoom animations only for read-only maps
---
.../src/components/Map/services/MapService.ts | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 04fce37a5..0f522eb95 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -10,6 +10,7 @@ const DEFAULT_LAYER_ATTRIBUTION =
const DEFAULT_MAP_ZOOM = 5;
const DECIMALS_LATLNG = 5; // the number of decimals of latitude and longitude to be displayed in the marker popup
const COMPONENT_EDIT_CLASS = 'component-edit-tabs';
+const READ_ONLY_CLASS = 'formio-read-only';
const CUSTOM_MARKER_PATH = 'https://unpkg.com/leaflet@1.9.4/dist/images/';
L.Icon.Default.imagePath = CUSTOM_MARKER_PATH;
@@ -36,6 +37,9 @@ class MapService {
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
+ this.map = map;
+ // this.map = map;
+ this.drawnItems = drawnItems;
map.invalidateSize();
// Triggering a resize event after map initialization
@@ -80,11 +84,12 @@ class MapService {
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
+ //Check to see if there is the formio read only class in the current page, and set notEditable to true if the map is inside a read-only page
- const map = L.map(mapContainer, { zoomAnimation: false }).setView(
- center,
- defaultZoom || DEFAULT_MAP_ZOOM
- );
+ //if the user chooses it to be read-only, and the
+ const map = L.map(mapContainer, {
+ zoomAnimation: viewMode,
+ }).setView(center, defaultZoom || DEFAULT_MAP_ZOOM);
L.tileLayer(DEFAULT_MAP_LAYER_URL, {
attribution: DEFAULT_LAYER_ATTRIBUTION,
}).addTo(map);
From 5a41d021c9385cd2e2aab41f5e151e00928ceea1 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 23 Sep 2024 18:37:42 +0000
Subject: [PATCH 61/80] Added My Location button
---
components/src/components/Map/Component.ts | 11 ++++-
.../Map/editForm/Component.edit.data.ts | 8 +++
.../src/components/Map/services/MapService.ts | 49 +++++++++++++++++++
3 files changed, 66 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 2c5d35127..7275147e0 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -72,8 +72,14 @@ export default class Component extends (FieldComponent as any) {
drawOptions[this.component.markerType] = true; // set marker type from user choice
}
- const { numPoints, defaultZoom, readOnlyMap, center, defaultValue } =
- this.component;
+ const {
+ numPoints,
+ defaultZoom,
+ readOnlyMap,
+ center,
+ defaultValue,
+ myLocation,
+ } = this.component;
const { readOnly: viewMode } = this.options;
@@ -95,6 +101,7 @@ export default class Component extends (FieldComponent as any) {
defaultValue,
onDrawnItemsChange: this.saveDrawnItems.bind(this),
viewMode,
+ myLocation,
});
// Load existing data if available
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 74f60d61f..29d343100 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -76,5 +76,13 @@ export default {
type: 'simplecheckbox',
input: true,
},
+ {
+ label: 'Submitter "My Location" button',
+ description:
+ 'This allows for the user to center the map on their location.',
+ key: 'myLocation',
+ type: 'simplecheckbox',
+ input: true,
+ },
],
};
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 0f522eb95..9e3ac9ef0 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -25,6 +25,7 @@ interface MapServiceOptions {
readOnlyMap?: boolean;
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
viewMode?: boolean;
+ myLocation?: boolean;
}
class MapService {
@@ -38,6 +39,7 @@ class MapService {
if (options.mapContainer) {
const { map, drawnItems } = this.initializeMap(options);
this.map = map;
+
// this.map = map;
this.drawnItems = drawnItems;
@@ -79,7 +81,9 @@ class MapService {
defaultZoom,
readOnlyMap,
viewMode,
+ myLocation,
} = options;
+ console.log(options);
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
@@ -99,6 +103,51 @@ class MapService {
map.addLayer(drawnItems);
+ if (myLocation) {
+ const myLocationButton = L.Control.extend({
+ options: {
+ position: 'topright',
+ },
+ onAdd: function (map) {
+ var container = L.DomUtil.create(
+ 'div',
+ 'leaflet-bar leaflet-control'
+ );
+ var button = L.DomUtil.create(
+ 'a',
+ 'leaflet-control-button',
+ container
+ );
+ button.innerHTML = '';
+ L.DomEvent.disableClickPropagation(button);
+ L.DomEvent.on(button, 'click', function () {
+ if ('geolocation' in navigator) {
+ navigator.geolocation.getCurrentPosition((position) => {
+ map.setView(
+ [position.coords.latitude, position.coords.longitude],
+ 14
+ );
+ L.popup()
+ .setLatLng([
+ position.coords.latitude,
+ position.coords.longitude,
+ ])
+ .setContent(
+ `(${position.coords.latitude}, ${position.coords.longitude})`
+ )
+ .openOn(map);
+ });
+ }
+ });
+ container.title = 'Click to center the map on your location';
+ return container;
+ },
+ onRemove: function (map) {},
+ });
+ var myLocationControl = new myLocationButton();
+ myLocationControl.addTo(map);
+ }
+
// Add Drawing Controllers
if (!readOnlyMap) {
if (!viewMode) {
From 73395f559fb1e43012bc1f1260676db1a95ef216 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 23 Sep 2024 19:21:03 +0000
Subject: [PATCH 62/80] linting fixes
---
components/src/components/Map/Component.ts | 4 +--
.../src/components/Map/services/MapService.ts | 26 +++++++++----------
2 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 7275147e0..bc92c7f8f 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -55,7 +55,7 @@ export default class Component extends (FieldComponent as any) {
loadMap() {
const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName('formio');
- let drawOptions = {
+ const drawOptions = {
marker: false,
circlemarker: false,
polygon: false,
@@ -154,8 +154,6 @@ export default class Component extends (FieldComponent as any) {
// Additional logic to render the saved data on the map if necessary
if (this.mapService && value && value.features) {
try {
- //const parsedValue = JSON.parse(value);
-
this.mapService.loadDrawnItems(value.features);
} catch (error) {
console.error('Failed to parse value:', error);
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 9e3ac9ef0..360eee268 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -48,7 +48,7 @@ class MapService {
setTimeout(() => window.dispatchEvent(new Event('resize')), 0);
// Event listener for drawn objects
map.on('draw:created', (e) => {
- let layer = e.layer;
+ const layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
L.popup()
.setLatLng(layer.getLatLng())
@@ -73,7 +73,7 @@ class MapService {
}
initializeMap(options: MapServiceOptions) {
- let {
+ const {
mapContainer,
center,
drawOptions,
@@ -83,14 +83,13 @@ class MapService {
viewMode,
myLocation,
} = options;
- console.log(options);
if (drawOptions.rectangle) {
drawOptions.rectangle.showArea = false;
}
- //Check to see if there is the formio read only class in the current page, and set notEditable to true if the map is inside a read-only page
+ // Check to see if there is the formio read only class in the current page, and set notEditable to true if the map is inside a read-only page
- //if the user chooses it to be read-only, and the
+ // if the user chooses it to be read-only, and the
const map = L.map(mapContainer, {
zoomAnimation: viewMode,
}).setView(center, defaultZoom || DEFAULT_MAP_ZOOM);
@@ -99,28 +98,28 @@ class MapService {
}).addTo(map);
// Initialize Draw Layer
- let drawnItems = new L.FeatureGroup();
+ const drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
if (myLocation) {
const myLocationButton = L.Control.extend({
options: {
- position: 'topright',
+ position: 'bottomright',
},
- onAdd: function (map) {
- var container = L.DomUtil.create(
+ onAdd(map) {
+ const container = L.DomUtil.create(
'div',
'leaflet-bar leaflet-control'
);
- var button = L.DomUtil.create(
+ const button = L.DomUtil.create(
'a',
'leaflet-control-button',
container
);
button.innerHTML = '';
L.DomEvent.disableClickPropagation(button);
- L.DomEvent.on(button, 'click', function () {
+ L.DomEvent.on(button, 'click', () => {
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition((position) => {
map.setView(
@@ -142,16 +141,15 @@ class MapService {
container.title = 'Click to center the map on your location';
return container;
},
- onRemove: function (map) {},
});
- var myLocationControl = new myLocationButton();
+ const myLocationControl = new myLocationButton();
myLocationControl.addTo(map);
}
// Add Drawing Controllers
if (!readOnlyMap) {
if (!viewMode) {
- let drawControl = new L.Control.Draw({
+ const drawControl = new L.Control.Draw({
draw: drawOptions,
edit: {
featureGroup: drawnItems,
From 10ba795d96b466f4d896b03d7bc95a1e62a7f09a Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Tue, 24 Sep 2024 08:34:21 -0700
Subject: [PATCH 63/80] updated for polygon change
---
.../Map/editForm/Component.edit.data.ts | 5 ++++
.../Map/editForm/Component.edit.display.ts | 30 -------------------
2 files changed, 5 insertions(+), 30 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 29d343100..54af345e9 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -25,6 +25,11 @@ export default {
'Add circular area of interest through a point and custom radius',
value: 'circle',
},
+ {
+ label:
+ 'Add polygon',
+ value: 'polygon',
+ },
],
defaultValue: 'marker',
key: 'markerType',
diff --git a/components/src/components/Map/editForm/Component.edit.display.ts b/components/src/components/Map/editForm/Component.edit.display.ts
index 5dd2fc6e6..6072f1634 100644
--- a/components/src/components/Map/editForm/Component.edit.display.ts
+++ b/components/src/components/Map/editForm/Component.edit.display.ts
@@ -59,35 +59,5 @@ export default {
tooltip:
'Assign one or more CSS class names to customize the appearance of this component.',
},
-
- // {
- // // You can ignore existing fields.
- // key: 'placeholder',
- // ignore: true,
- // },
- // {
- // key: 'tableView',
- // ignore: true,
- // },
- // {
- // key: 'hidden',
- // ignore: true,
- // },
- // {
- // key: 'autofocus',
- // ignore: true,
- // },
- // {
- // key: 'tabindex',
- // ignore: true,
- // },
- // {
- // key: 'modalEdit',
- // ignore: true,
- // },
- // {
- // key: 'disabled',
- // ignore: true,
- // },
],
};
From 518b568c1cbabf4ada6976fb5b630419b0c5376f Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 24 Sep 2024 22:20:59 +0000
Subject: [PATCH 64/80] added reorganization to settings page
---
components/src/components/Map/Component.ts | 4 +-
.../Map/editForm/Component.edit.data.ts | 73 +++++++++++--------
2 files changed, 46 insertions(+), 31 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index bc92c7f8f..e49266f78 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -75,7 +75,7 @@ export default class Component extends (FieldComponent as any) {
const {
numPoints,
defaultZoom,
- readOnlyMap,
+ allowSubmissions,
center,
defaultValue,
myLocation,
@@ -97,7 +97,7 @@ export default class Component extends (FieldComponent as any) {
form,
numPoints,
defaultZoom,
- readOnlyMap,
+ readOnlyMap: !allowSubmissions, // if allow submissions, read only is false
defaultValue,
onDrawnItemsChange: this.saveDrawnItems.bind(this),
viewMode,
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 29d343100..e72e1f1e5 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -3,6 +3,14 @@ export default {
label: 'Data',
weight: 20,
components: [
+ {
+ html: 'Default Values
',
+ key: 'simplecontent1',
+ type: 'simplecontent',
+ input: false,
+ tableView: false,
+ label: 'Text/Images',
+ },
{
type: 'map',
label: 'Default Value',
@@ -13,32 +21,6 @@ export default {
'This will be the value for this field, before user interaction.',
input: true,
},
- {
- label: 'Marker Type ',
- values: [
- {
- label: 'Add a point marker (drop a pin)',
- value: 'marker',
- },
- {
- label:
- 'Add circular area of interest through a point and custom radius',
- value: 'circle',
- },
- ],
- defaultValue: 'marker',
- key: 'markerType',
- type: 'simpleradios',
- input: true,
- },
- {
- label: 'How many Markers per Submission?',
- key: 'numPoints',
- type: 'simplenumber',
- defaultValue: 1,
- input: true,
- },
-
{
label: 'Default Zoom Level',
description:
@@ -64,18 +46,51 @@ export default {
tableView: false,
markerType: 'marker',
defaultZoom: 5,
- readOnlyMap: false,
+ allowSubmissions: true,
description:
'Please select the desired default center using a single marker',
},
{
- label: 'Read Only Map',
+ html: 'Submitter Options
',
+ key: 'simplecontent1',
+ type: 'simplecontent',
+ input: false,
+ tableView: false,
+ label: 'Text/Images',
+ },
+ {
+ label: 'Allow submitters to add input on the map',
description:
'This allows for the user to view and scroll the map, but not add any input',
- key: 'readOnlyMap',
+ key: 'allowSubmissions',
type: 'simplecheckbox',
input: true,
},
+ {
+ label: 'Marker Type ',
+ values: [
+ {
+ label: 'Add a point marker (drop a pin)',
+ value: 'marker',
+ },
+ {
+ label:
+ 'Add circular area of interest through a point and custom radius',
+ value: 'circle',
+ },
+ ],
+ defaultValue: 'marker',
+ key: 'markerType',
+ type: 'simpleradios',
+ input: true,
+ },
+ {
+ label: 'How many Markers per Submission?',
+ key: 'numPoints',
+ type: 'simplenumber',
+ defaultValue: 1,
+ input: true,
+ },
{
label: 'Submitter "My Location" button',
description:
From 03d20e4b0358d9ae0ba6eed620259a34f58b1962 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 26 Sep 2024 20:35:47 +0000
Subject: [PATCH 65/80] Added multiple marker type options, default to add
input map
---
components/src/components/Map/Component.ts | 10 ++++++++--
.../src/components/Map/editForm/Component.edit.data.ts | 9 +++++----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index e49266f78..4644c3f94 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -55,6 +55,7 @@ export default class Component extends (FieldComponent as any) {
loadMap() {
const mapContainer = document.getElementById(`map-${this.componentID}`);
const form = document.getElementsByClassName('formio');
+
const drawOptions = {
marker: false,
circlemarker: false,
@@ -63,13 +64,18 @@ export default class Component extends (FieldComponent as any) {
circle: false,
rectangle: null,
};
+ // set marker type from user choice
+ if (this.component.markerType) {
+ for (const [key, value] of Object.entries(this.component.markerType)) {
+ drawOptions[key] = value;
+ }
+ }
// Set drawing options based on markerType
- if (this.component.markerType === 'rectangle') {
+ if (this.component?.markerType?.rectangle) {
drawOptions.rectangle = { showArea: false }; // fixes a bug in Leaflet.Draw
} else {
drawOptions.rectangle = false;
- drawOptions[this.component.markerType] = true; // set marker type from user choice
}
const {
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index e72e1f1e5..5ef215b42 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -44,7 +44,7 @@ export default {
label: 'Default Center',
numPoints: 1,
tableView: false,
- markerType: 'marker',
+ markerType: { marker: true },
defaultZoom: 5,
allowSubmissions: true,
description:
@@ -81,7 +81,7 @@ export default {
],
defaultValue: 'marker',
key: 'markerType',
- type: 'simpleradios',
+ type: 'simplecheckboxes',
input: true,
},
{
@@ -92,12 +92,13 @@ export default {
input: true,
},
{
- label: 'Submitter "My Location" button',
+ label: 'Enable Submitter "My Location" button',
description:
'This allows for the user to center the map on their location.',
key: 'myLocation',
- type: 'simplecheckbox',
+ type: 'simplecheckboxadvanced',
input: true,
+ defaultValue: true,
},
],
};
From 34d08675672815e71edbeb3dc96a8e29ad49ea22 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 26 Sep 2024 21:13:28 +0000
Subject: [PATCH 66/80] Added default interactivity
---
components/src/components/Map/editForm/Component.edit.data.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 171ecf627..5a0d9e456 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -72,6 +72,7 @@ export default {
'This allows for the user to view and scroll the map, but not add any input',
key: 'allowSubmissions',
type: 'simplecheckbox',
+ defaultValue: true,
input: true,
},
{
From 47d32a5641cdb62143e4faea676134e44f5afeb9 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 11 Oct 2024 16:34:00 +0000
Subject: [PATCH 67/80] Geocoder working for BC
---
app/frontend/package-lock.json | 16 +++++++++++
app/frontend/package.json | 1 +
components/package-lock.json | 23 +++++++++++++++
components/package.json | 2 ++
components/src/components/Map/Component.ts | 18 ++++++++----
.../Map/editForm/Component.edit.data.ts | 7 -----
.../Map/services/BCGeocoderProvider.ts | 28 +++++++++++++++++++
.../src/components/Map/services/MapService.ts | 22 +++++++++++++++
8 files changed, 104 insertions(+), 13 deletions(-)
create mode 100644 components/src/components/Map/services/BCGeocoderProvider.ts
diff --git a/app/frontend/package-lock.json b/app/frontend/package-lock.json
index e3d4efeb1..250dd02a3 100644
--- a/app/frontend/package-lock.json
+++ b/app/frontend/package-lock.json
@@ -23,6 +23,7 @@
"keycloak-js": "^21.1.1",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
+ "leaflet-geosearch": "^4.0.0",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"moment": "^2.29.4",
@@ -592,6 +593,12 @@
"vue": ">= 3.0.0 < 4"
}
},
+ "node_modules/@googlemaps/js-api-loader": {
+ "version": "1.16.8",
+ "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz",
+ "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==",
+ "optional": true
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
@@ -3705,6 +3712,15 @@
"resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
"integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
},
+ "node_modules/leaflet-geosearch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/leaflet-geosearch/-/leaflet-geosearch-4.0.0.tgz",
+ "integrity": "sha512-a92VNY9gxyv3oyEDqIWoCNoBllajWRYejztzOSNmpLRtzpA6JtGgy/wwl9tsB8+6Eek1fe+L6+W0MDEOaidbXA==",
+ "optionalDependencies": {
+ "@googlemaps/js-api-loader": "^1.16.6",
+ "leaflet": "^1.6.0"
+ }
+ },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
diff --git a/app/frontend/package.json b/app/frontend/package.json
index 3759ab75c..fc3590af6 100644
--- a/app/frontend/package.json
+++ b/app/frontend/package.json
@@ -44,6 +44,7 @@
"keycloak-js": "^21.1.1",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
+ "leaflet-geosearch": "^4.0.0",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"moment": "^2.29.4",
diff --git a/components/package-lock.json b/components/package-lock.json
index 0fc29cacb..15e0f0ea4 100644
--- a/components/package-lock.json
+++ b/components/package-lock.json
@@ -16,6 +16,7 @@
"formiojs": "^4.14.6",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
+ "leaflet-geosearch": "^4.0.0",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
@@ -24,6 +25,7 @@
"devDependencies": {
"@types/chai": "^4.3.1",
"@types/ejs": "^3.1.1",
+ "@types/google.maps": "^3.58.1",
"@types/mocha": "^9.1.1",
"@types/node": "^16.11.8",
"@types/sinon": "^10.0.12",
@@ -741,6 +743,12 @@
"resolved": "https://registry.npmjs.org/@formio/vanilla-text-mask/-/vanilla-text-mask-5.1.1.tgz",
"integrity": "sha512-7MhrbMypySPi7RLchg0ys7HnS3Wqddbq/btAijKB1nA94TE7AOOLhpZJWcNm3kOlX0Y3nHfoavj/HP7vsvF34Q=="
},
+ "node_modules/@googlemaps/js-api-loader": {
+ "version": "1.16.8",
+ "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz",
+ "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==",
+ "optional": true
+ },
"node_modules/@gulpjs/messages": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz",
@@ -1013,6 +1021,12 @@
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
"integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
},
+ "node_modules/@types/google.maps": {
+ "version": "3.58.1",
+ "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz",
+ "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==",
+ "dev": true
+ },
"node_modules/@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@@ -4018,6 +4032,15 @@
"resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
"integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
},
+ "node_modules/leaflet-geosearch": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/leaflet-geosearch/-/leaflet-geosearch-4.0.0.tgz",
+ "integrity": "sha512-a92VNY9gxyv3oyEDqIWoCNoBllajWRYejztzOSNmpLRtzpA6JtGgy/wwl9tsB8+6Eek1fe+L6+W0MDEOaidbXA==",
+ "optionalDependencies": {
+ "@googlemaps/js-api-loader": "^1.16.6",
+ "leaflet": "^1.6.0"
+ }
+ },
"node_modules/liftoff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz",
diff --git a/components/package.json b/components/package.json
index 8961cee2d..13ce65d7d 100644
--- a/components/package.json
+++ b/components/package.json
@@ -54,6 +54,7 @@
"formiojs": "^4.14.6",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
+ "leaflet-geosearch": "^4.0.0",
"lodash": "^4.17.21",
"native-promise-only": "^0.8.1",
"path-browserify": "^1.0.1",
@@ -62,6 +63,7 @@
"devDependencies": {
"@types/chai": "^4.3.1",
"@types/ejs": "^3.1.1",
+ "@types/google.maps": "^3.58.1",
"@types/mocha": "^9.1.1",
"@types/node": "^16.11.8",
"@types/sinon": "^10.0.12",
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 4644c3f94..1a031b8b6 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -42,7 +42,7 @@ export default class Component extends (FieldComponent as any) {
render() {
return super.render(
- ``
+ `
`
);
}
@@ -57,13 +57,19 @@ export default class Component extends (FieldComponent as any) {
const form = document.getElementsByClassName('formio');
const drawOptions = {
- marker: false,
- circlemarker: false,
- polygon: false,
- polyline: false,
- circle: false,
rectangle: null,
+ circle: false,
+ polyline: false,
+ polygon: false,
+ circlemarker: false,
+ marker: false,
};
+ // marker: false,
+ // circlemarker: false,
+ // polygon: false,
+ // polyline: false,
+ // circle: false,
+ // rectangle: null,
// set marker type from user choice
if (this.component.markerType) {
for (const [key, value] of Object.entries(this.component.markerType)) {
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index 5a0d9e456..d047abf33 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -21,13 +21,6 @@ export default {
'This will be the value for this field, before user interaction.',
input: true,
},
- {
- label: 'How many Markers per Submission?',
- key: 'numPoints',
- type: 'simplenumber',
- defaultValue: 1,
- input: true,
- },
{
label: 'Default Zoom Level',
diff --git a/components/src/components/Map/services/BCGeocoderProvider.ts b/components/src/components/Map/services/BCGeocoderProvider.ts
new file mode 100644
index 000000000..d8cae43b9
--- /dev/null
+++ b/components/src/components/Map/services/BCGeocoderProvider.ts
@@ -0,0 +1,28 @@
+import { OpenStreetMapProvider } from 'leaflet-geosearch';
+import { EndpointArgument } from 'leaflet-geosearch/dist/providers/provider';
+
+export class BCGeocoderProvider extends OpenStreetMapProvider {
+ endpoint({ query, type }: EndpointArgument): string {
+ console.log(query);
+ return this.getUrl(import.meta.env.VITE_CHEFS_GEO_ADDRESS_APIURL, {
+ addressString: query as string,
+ });
+ }
+ parse({ data }) {
+ return data.features
+ .filter(function (feature) {
+ if (!feature.geometry.coordinates) return false;
+ if (feature.properties.fullAddress == 'BC') return false;
+ return true;
+ })
+ .map(function (feature) {
+ return {
+ x: feature.geometry.coordinates[0],
+ y: feature.geometry.coordinates[1],
+ label: feature.properties.fullAddress,
+ matchPrecision: feature.properties.matchPrecision,
+ raw: feature,
+ };
+ });
+ }
+}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 360eee268..edfd9b732 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -1,7 +1,10 @@
import * as L from 'leaflet';
+import * as GeoSearch from 'leaflet-geosearch';
+import { BCGeocoderProvider } from '../services/BCGeocoderProvider';
import 'leaflet-draw';
import 'leaflet/dist/leaflet.css';
import 'leaflet-draw/dist/leaflet.draw-src.css';
+import 'leaflet-geosearch/dist/geosearch.css';
const DEFAULT_MAP_LAYER_URL =
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
@@ -26,6 +29,7 @@ interface MapServiceOptions {
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
viewMode?: boolean;
myLocation?: boolean;
+ geocoder: any;
}
class MapService {
@@ -146,6 +150,24 @@ class MapService {
myLocationControl.addTo(map);
}
+ //Geocoder Control
+ // const geoControl = new GeoSearch.GeoSearchControl({
+
+ // })
+ const geocoderControl = new (GeoSearch.GeoSearchControl as any)({
+ provider: new BCGeocoderProvider(),
+ style: 'bar',
+ position: 'bottomleft',
+ });
+
+ // const geocoderControl = new (GeoSearch.GeoSearchControl as any)({
+ // provider: new GeoSearch.OpenStreetMapProvider(),
+ // style: 'bar',
+ // position: 'bottomleft',
+ // });
+
+ map.addControl(geocoderControl);
+
// Add Drawing Controllers
if (!readOnlyMap) {
if (!viewMode) {
From 04a7d2fb10a907821df0cdf99b5340ed912f09ed Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 15 Oct 2024 18:39:54 +0000
Subject: [PATCH 68/80] Adding form and location popups
---
components/src/components/Map/Component.ts | 2 ++
.../Map/editForm/Component.edit.data.ts | 9 +++++
.../src/components/Map/services/MapService.ts | 34 +++++++++----------
3 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 1a031b8b6..c3fb06650 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -91,6 +91,7 @@ export default class Component extends (FieldComponent as any) {
center,
defaultValue,
myLocation,
+ bcGeocoder,
} = this.component;
const { readOnly: viewMode } = this.options;
@@ -114,6 +115,7 @@ export default class Component extends (FieldComponent as any) {
onDrawnItemsChange: this.saveDrawnItems.bind(this),
viewMode,
myLocation,
+ bcGeocoder,
});
// Load existing data if available
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index d047abf33..ac89cb0b3 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -106,5 +106,14 @@ export default {
input: true,
defaultValue: true,
},
+ {
+ label: 'Enable BC Address Autocomplete',
+ description:
+ 'This allows for the user to enter an address and have results appear in a dropdown. The user can then select the result which fits best and have the map center on that location',
+ key: 'bcGeocoder',
+ type: 'simplecheckboxadvanced',
+ input: true,
+ defaultValue: true,
+ },
],
};
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index edfd9b732..3cccb849b 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -29,7 +29,7 @@ interface MapServiceOptions {
onDrawnItemsChange: (items: any) => void; // Support both single and multiple items
viewMode?: boolean;
myLocation?: boolean;
- geocoder: any;
+ bcGeocoder: boolean;
}
class MapService {
@@ -86,6 +86,7 @@ class MapService {
readOnlyMap,
viewMode,
myLocation,
+ bcGeocoder,
} = options;
if (drawOptions.rectangle) {
@@ -150,23 +151,20 @@ class MapService {
myLocationControl.addTo(map);
}
- //Geocoder Control
- // const geoControl = new GeoSearch.GeoSearchControl({
-
- // })
- const geocoderControl = new (GeoSearch.GeoSearchControl as any)({
- provider: new BCGeocoderProvider(),
- style: 'bar',
- position: 'bottomleft',
- });
-
- // const geocoderControl = new (GeoSearch.GeoSearchControl as any)({
- // provider: new GeoSearch.OpenStreetMapProvider(),
- // style: 'bar',
- // position: 'bottomleft',
- // });
-
- map.addControl(geocoderControl);
+ if (bcGeocoder) {
+ const geocoderControl = new (GeoSearch.GeoSearchControl as any)({
+ provider: new BCGeocoderProvider(),
+ style: 'bar',
+ position: 'bottomleft',
+ });
+ map.addControl(geocoderControl);
+ map.on('geosearch/showlocation', (e) => {
+ L.popup()
+ .setLatLng([(e as any).location.y, (e as any).location.x])
+ .setContent(`${(e as any).location.label}`)
+ .openOn(map);
+ });
+ }
// Add Drawing Controllers
if (!readOnlyMap) {
From 5391c7d98f5d985b317a4c8e10c67638953a4055 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Wed, 16 Oct 2024 16:47:19 +0000
Subject: [PATCH 69/80] fixes for marker appearing at geocoder search, replaced
with popup
---
.../src/components/Map/services/BCGeocoderProvider.ts | 11 +++++------
components/src/components/Map/services/MapService.ts | 2 ++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/components/src/components/Map/services/BCGeocoderProvider.ts b/components/src/components/Map/services/BCGeocoderProvider.ts
index d8cae43b9..3fa9db72c 100644
--- a/components/src/components/Map/services/BCGeocoderProvider.ts
+++ b/components/src/components/Map/services/BCGeocoderProvider.ts
@@ -2,17 +2,16 @@ import { OpenStreetMapProvider } from 'leaflet-geosearch';
import { EndpointArgument } from 'leaflet-geosearch/dist/providers/provider';
export class BCGeocoderProvider extends OpenStreetMapProvider {
- endpoint({ query, type }: EndpointArgument): string {
- console.log(query);
+ endpoint = ({ query, type }: EndpointArgument): string => {
return this.getUrl(import.meta.env.VITE_CHEFS_GEO_ADDRESS_APIURL, {
addressString: query as string,
});
- }
- parse({ data }) {
+ };
+ parse = ({ data }) => {
return data.features
.filter(function (feature) {
if (!feature.geometry.coordinates) return false;
- if (feature.properties.fullAddress == 'BC') return false;
+ if (feature.properties.fullAddress === 'BC') return false;
return true;
})
.map(function (feature) {
@@ -24,5 +23,5 @@ export class BCGeocoderProvider extends OpenStreetMapProvider {
raw: feature,
};
});
- }
+ };
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 3cccb849b..80197ea40 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -156,9 +156,11 @@ class MapService {
provider: new BCGeocoderProvider(),
style: 'bar',
position: 'bottomleft',
+ showMarker: false,
});
map.addControl(geocoderControl);
map.on('geosearch/showlocation', (e) => {
+ console.log((e as any).location);
L.popup()
.setLatLng([(e as any).location.y, (e as any).location.x])
.setContent(`${(e as any).location.label}`)
From d7605f30f3fab3ab63ca93f197da2d0044454a99 Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 16 Oct 2024 09:52:00 -0700
Subject: [PATCH 70/80] Update MapService.ts
console removed
---
components/src/components/Map/services/MapService.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 80197ea40..2e0f72121 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -160,7 +160,6 @@ class MapService {
});
map.addControl(geocoderControl);
map.on('geosearch/showlocation', (e) => {
- console.log((e as any).location);
L.popup()
.setLatLng([(e as any).location.y, (e as any).location.x])
.setContent(`${(e as any).location.label}`)
From 9286ac33e73d516ae3af83f5f8d7b18f04680f53 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 22 Oct 2024 18:07:04 +0000
Subject: [PATCH 71/80] Added fix for popup bug
---
components/src/components/Map/services/MapService.ts | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 2e0f72121..478e56178 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -54,10 +54,14 @@ class MapService {
map.on('draw:created', (e) => {
const layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
+ console.log('too many markers');
+ map.closePopup();
L.popup()
- .setLatLng(layer.getLatLng())
- .setContent('Only one marker for submission
')
- .openOn(map);
+ .setLatLng(map.getCenter())
+ .setContent(
+ `Only ${options.numPoints} features per submission
`
+ )
+ .addTo(map);
} else {
drawnItems.addLayer(layer);
}
From abf00267c3f74c4cfbc1895e3e94e53172e91eba Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Tue, 22 Oct 2024 23:50:13 +0000
Subject: [PATCH 72/80] Removed console
---
components/src/components/Map/services/MapService.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 478e56178..3698d1e0e 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -54,7 +54,6 @@ class MapService {
map.on('draw:created', (e) => {
const layer = e.layer;
if (drawnItems.getLayers().length === options.numPoints) {
- console.log('too many markers');
map.closePopup();
L.popup()
.setLatLng(map.getCenter())
From b04274e35a0edbb6a507e435cd64fbf37941683f Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 24 Oct 2024 17:19:20 +0000
Subject: [PATCH 73/80] Changes to map settings form to enable line input
---
.../src/components/Map/editForm/Component.edit.data.ts | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index ac89cb0b3..fc4f63b06 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -76,14 +76,17 @@ export default {
value: 'marker',
},
{
- label:
- 'Add circular area of interest through a point and custom radius',
+ label: 'Add circular area of interest with a point and custom radius',
value: 'circle',
},
{
label: 'Add a polygon',
value: 'polygon',
},
+ {
+ label: 'Add a line',
+ value: 'polyline',
+ },
],
defaultValue: 'marker',
key: 'markerType',
From bebd66752cac4a7ff43b415add8ed90f0a2968bb Mon Sep 17 00:00:00 2001
From: abhilash-aot
Date: Wed, 30 Oct 2024 07:35:17 -0700
Subject: [PATCH 74/80] Update constants.js for Map component include
Update for Map component include in form Designer
---
app/frontend/src/utils/constants.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/frontend/src/utils/constants.js b/app/frontend/src/utils/constants.js
index 05bb2441f..9c7ee6511 100755
--- a/app/frontend/src/utils/constants.js
+++ b/app/frontend/src/utils/constants.js
@@ -323,6 +323,7 @@ export const FormDesignerBuilderOptions = Object.freeze({
orgbook: true,
bcaddress: true,
simplebcaddress: true,
+ map: true,
},
},
});
From 2110031834209ba04c8c7ed8c32a3fcb3c18bcf0 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 8 Nov 2024 20:02:20 +0000
Subject: [PATCH 75/80] Changed settings form to formio defaults
---
.../components/Map/editForm/Component.edit.data.ts | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index fc4f63b06..d3a0e1397 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -35,7 +35,7 @@ export default {
max: 18,
},
key: 'defaultZoom',
- type: 'simplenumber',
+ type: 'number',
input: true,
},
{
@@ -54,7 +54,7 @@ export default {
{
html: 'Submitter Options
',
key: 'simplecontent1',
- type: 'simplecontent',
+ type: 'content',
input: false,
tableView: false,
label: 'Text/Images',
@@ -64,7 +64,7 @@ export default {
description:
'This allows for the user to view and scroll the map, but not add any input',
key: 'allowSubmissions',
- type: 'simplecheckbox',
+ type: 'checkbox',
defaultValue: true,
input: true,
},
@@ -90,13 +90,13 @@ export default {
],
defaultValue: 'marker',
key: 'markerType',
- type: 'simplecheckboxes',
+ type: 'selectboxes',
input: true,
},
{
label: 'How many Markers per Submission?',
key: 'numPoints',
- type: 'simplenumber',
+ type: 'number',
defaultValue: 1,
input: true,
},
@@ -105,7 +105,7 @@ export default {
description:
'This allows for the user to center the map on their location.',
key: 'myLocation',
- type: 'simplecheckboxadvanced',
+ type: 'checkbox',
input: true,
defaultValue: true,
},
@@ -114,7 +114,7 @@ export default {
description:
'This allows for the user to enter an address and have results appear in a dropdown. The user can then select the result which fits best and have the map center on that location',
key: 'bcGeocoder',
- type: 'simplecheckboxadvanced',
+ type: 'checkbox',
input: true,
defaultValue: true,
},
From 523af058c45294d5408d71d84005203c7790ca38 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 8 Nov 2024 23:05:14 +0000
Subject: [PATCH 76/80] Tried turning on validation settings page, looking into
more in-depth solutions
---
components/src/components/Map/Component.form.ts | 2 ++
components/src/components/Map/Component.ts | 8 ++++++++
.../components/Map/editForm/Component.edit.validation.ts | 9 ++++++---
components/src/components/Map/services/MapService.ts | 2 ++
4 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/components/src/components/Map/Component.form.ts b/components/src/components/Map/Component.form.ts
index 6376c87af..5fc4025b9 100644
--- a/components/src/components/Map/Component.form.ts
+++ b/components/src/components/Map/Component.form.ts
@@ -1,12 +1,14 @@
import baseEditForm from 'formiojs/components/_classes/component/Component.form';
import EditData from './editForm/Component.edit.data';
import EditDisplay from './editForm/Component.edit.display';
+import EditValidation from './editForm/Component.edit.validation';
import AdvancedEditLogic from '../Common/Advanced.edit.logic';
export default function (...extend) {
return baseEditForm(
[
EditDisplay,
EditData,
+ EditValidation,
{
key: 'display',
ignore: true,
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index c3fb06650..0eecebb6e 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -93,6 +93,8 @@ export default class Component extends (FieldComponent as any) {
myLocation,
bcGeocoder,
} = this.component;
+ const { required } = this.component.validate;
+ console.log(this.component);
const { readOnly: viewMode } = this.options;
@@ -178,4 +180,10 @@ export default class Component extends (FieldComponent as any) {
getValue() {
return this.dataValue;
}
+ isValid() {
+ if (this.this.component.validate) {
+ console.log(this.dataValue);
+ return !!this.dataValue;
+ }
+ }
}
diff --git a/components/src/components/Map/editForm/Component.edit.validation.ts b/components/src/components/Map/editForm/Component.edit.validation.ts
index 1cec573db..438873440 100644
--- a/components/src/components/Map/editForm/Component.edit.validation.ts
+++ b/components/src/components/Map/editForm/Component.edit.validation.ts
@@ -1,4 +1,7 @@
import common from '../../Common/Simple.edit.validation';
-export default [
- ...common,
-];
+export default {
+ key: 'customValidation',
+ label: 'Validation',
+ weight: 10,
+ components: common,
+};
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 3698d1e0e..089fdaae3 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -30,6 +30,7 @@ interface MapServiceOptions {
viewMode?: boolean;
myLocation?: boolean;
bcGeocoder: boolean;
+ required: boolean;
}
class MapService {
@@ -90,6 +91,7 @@ class MapService {
viewMode,
myLocation,
bcGeocoder,
+ required,
} = options;
if (drawOptions.rectangle) {
From 6ae027c421ada35cfa7ee374c030ae520b501287 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Thu, 21 Nov 2024 19:53:40 +0000
Subject: [PATCH 77/80] Fixes for PR comments, added constant for map component
height
---
components/src/components/Map/Component.ts | 3 ++-
components/src/components/Map/editForm/Component.edit.data.ts | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index c3fb06650..e66474baf 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -7,6 +7,7 @@ import * as L from 'leaflet';
const DEFAULT_CENTER: [number, number] = [
53.96717190097409, -123.98320425388914,
]; // Ensure CENTER is a tuple with exactly two elements
+const DEFAULT_CONTAINER_HEIGHT = '400px';
export default class Component extends (FieldComponent as any) {
static schema(...extend) {
@@ -42,7 +43,7 @@ export default class Component extends (FieldComponent as any) {
render() {
return super.render(
- `
`
+ `
`
);
}
diff --git a/components/src/components/Map/editForm/Component.edit.data.ts b/components/src/components/Map/editForm/Component.edit.data.ts
index d3a0e1397..1725808ff 100644
--- a/components/src/components/Map/editForm/Component.edit.data.ts
+++ b/components/src/components/Map/editForm/Component.edit.data.ts
@@ -6,7 +6,7 @@ export default {
{
html: 'Default Values
',
key: 'simplecontent1',
- type: 'simplecontent',
+ type: 'content',
input: false,
tableView: false,
label: 'Text/Images',
From 52eaeb248bd6016461b6f5ec5a82ea190da97891 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 13 Dec 2024 01:47:20 +0000
Subject: [PATCH 78/80] Added required field and overrode isEmpty from formio
base component, also added preventing the deletion of pre-set features on the
map
---
components/src/components/Map/Component.ts | 12 +-
.../src/components/Map/services/MapService.ts | 103 +++++++++++++++++-
2 files changed, 106 insertions(+), 9 deletions(-)
diff --git a/components/src/components/Map/Component.ts b/components/src/components/Map/Component.ts
index 0eecebb6e..1f85076c9 100644
--- a/components/src/components/Map/Component.ts
+++ b/components/src/components/Map/Component.ts
@@ -94,7 +94,6 @@ export default class Component extends (FieldComponent as any) {
bcGeocoder,
} = this.component;
const { required } = this.component.validate;
- console.log(this.component);
const { readOnly: viewMode } = this.options;
@@ -180,10 +179,11 @@ export default class Component extends (FieldComponent as any) {
getValue() {
return this.dataValue;
}
- isValid() {
- if (this.this.component.validate) {
- console.log(this.dataValue);
- return !!this.dataValue;
- }
+
+ isEmpty(value) {
+ return (
+ value?.features.length === 0 ||
+ value?.features.length === this.defaultValue?.features.length
+ );
}
}
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 089fdaae3..6314426ab 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -31,6 +31,7 @@ interface MapServiceOptions {
myLocation?: boolean;
bcGeocoder: boolean;
required: boolean;
+ defaultValue?: any;
}
class MapService {
@@ -47,7 +48,7 @@ class MapService {
// this.map = map;
this.drawnItems = drawnItems;
-
+ console.log(options.defaultValue);
map.invalidateSize();
// Triggering a resize event after map initialization
setTimeout(() => window.dispatchEvent(new Event('resize')), 0);
@@ -68,9 +69,24 @@ class MapService {
this.bindPopupToLayer(layer);
options.onDrawnItemsChange(drawnItems.getLayers());
});
- map.on(L.Draw.Event.DELETED, (e) => {
+
+ map.on(L.Draw.Event.DELETED, (e: any) => {
+ e.layers.eachLayer((layer) => {
+ const match = this.isDefaultFeature(layer as L.Layer);
+ if (match) {
+ //re-add the feature/layer to the map
+ drawnItems.addLayer(layer);
+ L.popup()
+ .setLatLng(map.getCenter())
+ .setContent(`Please do not delete pre-existing features
`)
+ .addTo(map);
+ }
+ });
options.onDrawnItemsChange(drawnItems.getLayers());
});
+ map.on(L.Draw.Event.DELETESTOP, (e) => {
+ console.log('end of delete');
+ });
map.on(L.Draw.Event.EDITSTOP, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
@@ -91,7 +107,6 @@ class MapService {
viewMode,
myLocation,
bcGeocoder,
- required,
} = options;
if (drawOptions.rectangle) {
@@ -132,6 +147,10 @@ class MapService {
L.DomEvent.on(button, 'click', () => {
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition((position) => {
+ console.log(
+ 'centering map on: ' +
+ [position.coords.latitude, position.coords.longitude]
+ );
map.setView(
[position.coords.latitude, position.coords.longitude],
14
@@ -272,5 +291,83 @@ class MapService {
}
return false;
}
+ isDefaultFeature(feature): boolean {
+ const defaults = this.options.defaultValue.features;
+ if (defaults.length === 0) {
+ console.log('No Defaults');
+ return false;
+ }
+ const featureType = this.getFeatureType(feature);
+ console.log(featureType);
+ const sameTypes = defaults.filter((d) => {
+ return d.type === featureType;
+ }); //filter out the types that don't match the marker to be deleted
+ if (sameTypes.length === 0) {
+ return false;
+ }
+ return sameTypes.some((f) => {
+ //returns true if one of the filtered defaults
+ switch (featureType) {
+ case 'marker':
+ return this.coordinatesEqual(f.coordinates, feature.getLatLng());
+ case 'rectangle':
+ console.log('Match Rectangle');
+ return f.bounds === feature.getBounds();
+ case 'circle':
+ console.log('Match Circle');
+ const radCheck = f.radius === feature.getRadius();
+ const pointCheck = this.coordinatesEqual(
+ f.coordinates,
+ feature.getLatLng()
+ );
+ return radCheck && pointCheck;
+ case 'polygon':
+ console.log('Match Polygon');
+ return this.polyEqual(f.coordinates, feature.getLatLngs());
+ case 'polyline':
+ console.log('Match Polyline');
+ return this.polyEqual(f.coordinates, feature.getLatLngs());
+ default:
+ console.log('Not matching a feature type');
+ return false;
+ }
+ });
+ }
+ getFeatureType(feature) {
+ if (feature instanceof L.Marker) {
+ return 'marker';
+ } else if (feature instanceof L.Rectangle) {
+ return 'rectangle';
+ } else if (feature instanceof L.Circle) {
+ return 'circle';
+ } else if (feature instanceof L.Polygon) {
+ return 'polygon';
+ } else if (feature instanceof L.Polyline) {
+ return 'polyline';
+ }
+ }
+ coordinatesEqual(c1, c2) {
+ return c1.lat === c2.lat && c1.lng === c2.lng;
+ }
+ polyEqual(c1, c2) {
+ if (c1[0] instanceof Array) {
+ c1 = c1[0];
+ console.log(c1);
+ }
+ if (c2[0] instanceof Array) {
+ c2 = c2[0];
+ }
+ if (c1.length !== c2.length) {
+ //different number of vertices, no match
+ return false;
+ } else {
+ for (var i = 0; i < c1.length; i++) {
+ if (!this.coordinatesEqual(c1[i], c2[i])) {
+ return false; //if there's no match in one of the points, it's a new feature
+ }
+ }
+ return true;
+ }
+ }
}
export default MapService;
From 23a3c6225446238e99031b75a928bb517f95a7b1 Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Fri, 13 Dec 2024 01:56:05 +0000
Subject: [PATCH 79/80] cleanup
---
.../src/components/Map/services/MapService.ts | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index 6314426ab..a75bf0b21 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -48,7 +48,6 @@ class MapService {
// this.map = map;
this.drawnItems = drawnItems;
- console.log(options.defaultValue);
map.invalidateSize();
// Triggering a resize event after map initialization
setTimeout(() => window.dispatchEvent(new Event('resize')), 0);
@@ -84,9 +83,7 @@ class MapService {
});
options.onDrawnItemsChange(drawnItems.getLayers());
});
- map.on(L.Draw.Event.DELETESTOP, (e) => {
- console.log('end of delete');
- });
+
map.on(L.Draw.Event.EDITSTOP, (e) => {
options.onDrawnItemsChange(drawnItems.getLayers());
});
@@ -294,11 +291,9 @@ class MapService {
isDefaultFeature(feature): boolean {
const defaults = this.options.defaultValue.features;
if (defaults.length === 0) {
- console.log('No Defaults');
return false;
}
const featureType = this.getFeatureType(feature);
- console.log(featureType);
const sameTypes = defaults.filter((d) => {
return d.type === featureType;
}); //filter out the types that don't match the marker to be deleted
@@ -311,10 +306,8 @@ class MapService {
case 'marker':
return this.coordinatesEqual(f.coordinates, feature.getLatLng());
case 'rectangle':
- console.log('Match Rectangle');
return f.bounds === feature.getBounds();
case 'circle':
- console.log('Match Circle');
const radCheck = f.radius === feature.getRadius();
const pointCheck = this.coordinatesEqual(
f.coordinates,
@@ -322,13 +315,10 @@ class MapService {
);
return radCheck && pointCheck;
case 'polygon':
- console.log('Match Polygon');
return this.polyEqual(f.coordinates, feature.getLatLngs());
case 'polyline':
- console.log('Match Polyline');
return this.polyEqual(f.coordinates, feature.getLatLngs());
default:
- console.log('Not matching a feature type');
return false;
}
});
@@ -352,7 +342,6 @@ class MapService {
polyEqual(c1, c2) {
if (c1[0] instanceof Array) {
c1 = c1[0];
- console.log(c1);
}
if (c2[0] instanceof Array) {
c2 = c2[0];
From 4e533619b99a6feb842602acae19c83cae9c528b Mon Sep 17 00:00:00 2001
From: RyanBirtch-aot
Date: Mon, 16 Dec 2024 17:53:37 +0000
Subject: [PATCH 80/80] Linting fixes
---
.../Map/services/BCGeocoderProvider.ts | 4 ++--
.../src/components/Map/services/MapService.ts | 18 +++++++-----------
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/components/src/components/Map/services/BCGeocoderProvider.ts b/components/src/components/Map/services/BCGeocoderProvider.ts
index 3fa9db72c..81506dd94 100644
--- a/components/src/components/Map/services/BCGeocoderProvider.ts
+++ b/components/src/components/Map/services/BCGeocoderProvider.ts
@@ -9,12 +9,12 @@ export class BCGeocoderProvider extends OpenStreetMapProvider {
};
parse = ({ data }) => {
return data.features
- .filter(function (feature) {
+ .filter((feature) => {
if (!feature.geometry.coordinates) return false;
if (feature.properties.fullAddress === 'BC') return false;
return true;
})
- .map(function (feature) {
+ .map((feature) => {
return {
x: feature.geometry.coordinates[0],
y: feature.geometry.coordinates[1],
diff --git a/components/src/components/Map/services/MapService.ts b/components/src/components/Map/services/MapService.ts
index a75bf0b21..83bb997ca 100644
--- a/components/src/components/Map/services/MapService.ts
+++ b/components/src/components/Map/services/MapService.ts
@@ -73,11 +73,11 @@ class MapService {
e.layers.eachLayer((layer) => {
const match = this.isDefaultFeature(layer as L.Layer);
if (match) {
- //re-add the feature/layer to the map
+ // re-add the feature/layer to the map
drawnItems.addLayer(layer);
L.popup()
.setLatLng(map.getCenter())
- .setContent(`Please do not delete pre-existing features
`)
+ .setContent('Please do not delete pre-existing features
')
.addTo(map);
}
});
@@ -144,10 +144,6 @@ class MapService {
L.DomEvent.on(button, 'click', () => {
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition((position) => {
- console.log(
- 'centering map on: ' +
- [position.coords.latitude, position.coords.longitude]
- );
map.setView(
[position.coords.latitude, position.coords.longitude],
14
@@ -296,12 +292,12 @@ class MapService {
const featureType = this.getFeatureType(feature);
const sameTypes = defaults.filter((d) => {
return d.type === featureType;
- }); //filter out the types that don't match the marker to be deleted
+ }); // filter out the types that don't match the marker to be deleted
if (sameTypes.length === 0) {
return false;
}
return sameTypes.some((f) => {
- //returns true if one of the filtered defaults
+ // returns true if one of the filtered defaults
switch (featureType) {
case 'marker':
return this.coordinatesEqual(f.coordinates, feature.getLatLng());
@@ -347,12 +343,12 @@ class MapService {
c2 = c2[0];
}
if (c1.length !== c2.length) {
- //different number of vertices, no match
+ // different number of vertices, no match
return false;
} else {
- for (var i = 0; i < c1.length; i++) {
+ for (let i = 0; i < c1.length; i++) {
if (!this.coordinatesEqual(c1[i], c2[i])) {
- return false; //if there's no match in one of the points, it's a new feature
+ return false; // if there's no match in one of the points, it's a new feature
}
}
return true;