@geogirafe/lib-geoportal 1.1.0-dev.2454789578 → 1.1.0-dev.2456794124
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +11 -0
- package/api/apigeogirafeapp.d.ts +3 -2
- package/api/apigeogirafeapp.js +14 -2
- package/assets/i18n/de.json +2 -0
- package/assets/i18n/en.json +2 -0
- package/assets/i18n/fr.json +2 -0
- package/assets/i18n/it.json +2 -0
- package/buildtools/lib-inline.js +13 -1
- package/buildtools/tools.js +10 -7
- package/components/about/component.d.ts +2 -2
- package/components/alignnorthbutton-mobile/component.d.ts +2 -2
- package/components/auth/component.d.ts +2 -2
- package/components/auth-mobile/component.d.ts +2 -2
- package/components/basemap/component.d.ts +2 -2
- package/components/contact/component.d.ts +2 -2
- package/components/context-menu/custom-context-menu/component.d.ts +2 -2
- package/components/context-menu/default-context-menu/component.d.ts +2 -2
- package/components/coordinate/component.d.ts +2 -2
- package/components/cross-section/cross-section-settings/component.d.ts +2 -2
- package/components/cross-section/cross-section-viewer/component.d.ts +2 -2
- package/components/displaymenubutton-mobile/component.d.ts +2 -2
- package/components/displayselectorbutton-mobile/component.d.ts +2 -2
- package/components/drawing/component-mobile.d.ts +2 -2
- package/components/drawing/component.d.ts +2 -2
- package/components/drawing/fixed-dimension/component.d.ts +2 -2
- package/components/drawing-container-mobile/component.d.ts +2 -2
- package/components/edit/component.d.ts +2 -2
- package/components/edit/editform/component.d.ts +2 -2
- package/components/extlayers/component.d.ts +2 -2
- package/components/geolocation-mobile/component.d.ts +2 -2
- package/components/getdirections/component.d.ts +2 -2
- package/components/help/component.d.ts +5 -4
- package/components/help/component.js +15 -5
- package/components/help/images/circled_black.webp +0 -0
- package/components/help/images/circled_white.webp +0 -0
- package/components/infobox/component.d.ts +2 -2
- package/components/infowindow/component.d.ts +2 -2
- package/components/layout/component.d.ts +2 -2
- package/components/lr-panel/component.d.ts +2 -2
- package/components/map/component.d.ts +2 -2
- package/components/menu-buttons-mobile/MenuMobile3dButton.d.ts +2 -2
- package/components/menu-buttons-mobile/MenuMobileDrawingButton.d.ts +2 -2
- package/components/menu-buttons-mobile/MenuMobileOfflineButton.d.ts +2 -2
- package/components/menu-mobile/component.d.ts +2 -2
- package/components/menubutton/component.d.ts +2 -2
- package/components/modals/component.d.ts +2 -2
- package/components/navigation/component.d.ts +2 -2
- package/components/news/news-button/component.d.ts +2 -2
- package/components/news/news-panel/component.d.ts +2 -2
- package/components/offline/component.d.ts +2 -2
- package/components/print/component.d.ts +2 -2
- package/components/prototypebanner/component.d.ts +2 -2
- package/components/querybuilder/component.d.ts +2 -2
- package/components/scale/component.d.ts +2 -2
- package/components/search/component.d.ts +2 -2
- package/components/search-mobile/component.d.ts +2 -2
- package/components/selectiongrid/component.d.ts +2 -2
- package/components/selectionpanel-mobile/component.d.ts +2 -2
- package/components/selectiontool/component.d.ts +2 -2
- package/components/selectionwindow/component.d.ts +2 -2
- package/components/share/component.d.ts +2 -2
- package/components/swipe-up-panel-mobile/component.d.ts +2 -2
- package/components/themes/component.d.ts +2 -2
- package/components/themes-mobile/group/component.d.ts +2 -2
- package/components/themes-mobile/layer/component.d.ts +2 -2
- package/components/themes-mobile/layer-selected/component.d.ts +2 -2
- package/components/themes-mobile/theme/component.d.ts +2 -2
- package/components/themes-mobile/themes-select/component.d.ts +2 -2
- package/components/timerestriction/component.d.ts +2 -2
- package/components/timerestriction/timepicker/component.d.ts +2 -2
- package/components/timerestriction/timeslider/component.d.ts +2 -2
- package/components/treeview/treeviewgroup/component.d.ts +2 -2
- package/components/treeview/treeviewitem/component.d.ts +2 -2
- package/components/treeview/treeviewroot/component.d.ts +2 -2
- package/components/treeview/treeviewtheme/component.d.ts +2 -2
- package/components/userpreferences/component.d.ts +2 -2
- package/components/videorecord/component.d.ts +2 -2
- package/package.json +4 -1
- package/templates/api.html +2 -2
- package/templates/public/about.json +1 -1
- package/templates/public/api/marker-blue.png +0 -0
- package/templates/public/api/marker-green.png +0 -0
- package/templates/public/api/parking.png +0 -0
- package/templates/public/config.api.json +17 -0
- package/templates/public/config.json +77 -0
- package/templates/public/config.mobile.json +9 -0
- package/templates/vite.config.js +3 -2
- package/tools/main.d.ts +1 -0
- package/tools/main.js +1 -0
- package/tools/onboarding/onboardingmanager.d.ts +2 -1
- package/tools/onboarding/onboardingmanager.js +7 -3
- package/tools/utils/async.d.ts +1 -0
- package/tools/utils/async.js +1 -0
- package/api/api.d.ts +0 -1
- package/api/api.js +0 -3
package/LICENSE
CHANGED
|
@@ -290,6 +290,17 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
|
290
290
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
291
291
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
292
292
|
|
|
293
|
+
-------------------------------------------------------------------------------
|
|
294
|
+
|
|
295
|
+
Thanks to the Invisible Artists
|
|
296
|
+
|
|
297
|
+
Some images in this project come from the public domain.
|
|
298
|
+
Their names may have faded with time, but their impact has not.
|
|
299
|
+
Thanks a lot to them:
|
|
300
|
+
|
|
301
|
+
- https://openclipart.org/artist/nadsud
|
|
302
|
+
|
|
303
|
+
|
|
293
304
|
-------------------------------------------------------------------------------
|
|
294
305
|
|
|
295
306
|
===============================================================================
|
package/api/apigeogirafeapp.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../base/GirafeHTMLElement.js';
|
|
2
2
|
import IGirafeContext from '../tools/context/icontext.js';
|
|
3
3
|
export default class GeoGirafeApi extends GirafeHTMLElement {
|
|
4
|
-
protected templateUrl: string;
|
|
5
|
-
protected styleUrls: string[];
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
|
+
template: () => import("uhtml").Hole;
|
|
6
7
|
private isInitialized;
|
|
7
8
|
constructor();
|
|
8
9
|
private get config();
|
package/api/apigeogirafeapp.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { html as uHtml } from 'uhtml';
|
|
1
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
3
|
import proj4 from 'proj4';
|
|
3
4
|
import GirafeHTMLElement from '../base/GirafeHTMLElement.js';
|
|
@@ -10,8 +11,16 @@ import MapCustomContextMenuComponent from '../components/context-menu/custom-con
|
|
|
10
11
|
import SearchComponent from '../components/search/component.js';
|
|
11
12
|
import SelectionWindowComponent from '../components/selectionwindow/component.js';
|
|
12
13
|
export default class GeoGirafeApi extends GirafeHTMLElement {
|
|
13
|
-
templateUrl =
|
|
14
|
-
styleUrls =
|
|
14
|
+
templateUrl = null;
|
|
15
|
+
styleUrls = null;
|
|
16
|
+
template = () => {
|
|
17
|
+
return uHtml `<style>
|
|
18
|
+
*{font-family:Arial,sans-serif}.hidden{display:none!important}.gg-rotate90{transform:rotate(90deg)}.gg-rotate180{transform:rotate(180deg)}.gg-rotate270{transform:rotate(270deg)}img{filter:var(--svg-filter)}img.legend-image{filter:var(--svg-map-filter);background:var(--svg-legend-bkg)}div{scrollbar-width:thin}a,a:visited{color:var(--link-color)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-wait{0%{transform:rotate(0)}7%{transform:rotate(360deg)}to{transform:rotate(360deg)}}.gg-spin{animation-name:spin;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}.gg-spin-wait{animation-name:spin-wait;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#999}.gg-button,.gg-select,.gg-input,.gg-textarea{background-color:var(--bkg-color);color:var(--text-color);border:var(--app-standard-border);box-sizing:border-box;cursor:pointer;border-radius:3px;outline:0;margin:0;padding:0 0 0 .5rem;display:inline-block}.gg-label{background-color:var(--bkg-color);color:var(--text-color);border:none;align-items:center;margin:0;padding:0;display:flex}.gg-button,.gg-select,.gg-input,.gg-label{min-height:calc(var(--app-standard-height) / 1.5)}.gg-textarea{max-height:initial;resize:vertical;height:6rem;padding:.5rem;line-height:1.3rem}.gg-input{cursor:text}.gg-checkbox{accent-color:var(--text-color);width:1.2rem}.gg-range{accent-color:var(--text-color)}.gg-button{padding:0 .5rem}.gg-button.active{border:solid 1px var(--text-color-grad2);background-color:var(--text-color-grad2);color:var(--bkg-color)}.gg-button:disabled{color:gray;cursor:not-allowed;background-color:#d3d3d3;border:none}.gg-input:disabled,.gg-select:disabled,.gg-textarea:disabled{color:gray;cursor:not-allowed;background-color:#d3d3d3}.gg-button>img{vertical-align:middle}.gg-icon-button{color:var(--text-color);cursor:pointer;background-color:#0000;border:none;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.gg-icon{justify-content:center;align-items:center;display:flex}.gg-big,.gg-big-withtext{min-width:var(--app-standard-height);min-height:var(--app-standard-height);max-height:var(--app-standard-height)}.gg-big img,.gg-big-withtext img{width:calc(var(--app-standard-height) - 1.5rem);margin:0}.gg-big-withtext span{font-variant:small-caps;padding:0 1rem;font-size:.9rem}.gg-medium,.gg-medium-withtext{min-width:calc(var(--app-standard-height) / 1.2);min-height:calc(var(--app-standard-height) / 1.2);max-height:calc(var(--app-standard-height) / 1.2);flex-direction:row}.gg-medium img{width:calc(var(--app-standard-height) / 2.4);margin:0}.gg-medium-withtext img{width:calc(var(--app-standard-height) / 2.4);margin-left:.5rem}.gg-medium-withtext span{padding:0 1rem 0 .5rem;font-size:.9rem}.gg-small,.gg-small-withtext{min-width:calc(var(--app-standard-height) / 2);min-height:calc(var(--app-standard-height) / 2);max-height:calc(var(--app-standard-height) / 2);flex-direction:row}.gg-small img{width:calc(var(--app-standard-height) / 3);margin:0}.gg-small-withtext img{width:calc(var(--app-standard-height) / 3);margin-left:.5rem}.gg-small-withtext span{padding:0 .5rem 0 .3rem;font-size:.9rem}.gg-button:hover,.gg-select:hover,.gg-input:hover,.gg-textarea:hover,.gg-icon-button:hover{background-color:var(--bkg-color-grad1)}.gg-opacity{opacity:.5}.gg-opacity:hover{opacity:1;background-color:#0000}.gg-tabs{cursor:pointer;grid-auto-flow:column;padding-bottom:1rem;font-size:1rem;display:grid}.gg-tab{border:none;border-bottom:var(--app-standard-border);cursor:pointer;color:var(--text-color);background:0 0;padding:.5rem}.gg-tab.active{border-bottom:solid 1px var(--text-color)}.girafe-button-big,.girafe-button-large,.girafe-button-small,.girafe-button-tiny{color:var(--text-color);background-color:#0000;border:none;flex-direction:column;display:flex}.girafe-button-big:hover,.girafe-button-large:hover,.girafe-button-small:hover,.girafe-button-tiny:hover{background-color:var(--bkg-color-grad1);cursor:pointer}.girafe-button-big.dark,.girafe-button-large.dark,.girafe-button-small.dark,.girafe-button-tiny.dark{background-color:var(--bkg-color);filter:invert()}.girafe-button-big{width:var(--app-standard-height);height:var(--app-standard-height);align-items:center;padding:1rem}.girafe-button-big img{overflow:hidden}.girafe-button-large{flex-direction:row}.girafe-button-large img{height:2rem;margin:.3rem}.girafe-button-large span{height:2rem;margin:.3rem;line-height:2rem}.girafe-button-small{min-width:calc(var(--app-standard-height) / 2);height:calc(var(--app-standard-height) / 2);align-items:center;padding:.5rem}.girafe-button-small img{overflow:hidden}.girafe-button-small span{text-align:left;text-overflow:ellipsis;width:100%;overflow:hidden}.girafe-button-tiny{align-items:center;width:1rem;height:1rem;padding:0}.girafe-button-tiny img{overflow:hidden}.girafe-onboarding-theme{background-color:var(--bkg-color)!important;color:var(--text-color)!important}.girafe-onboarding-theme button{background-color:var(--bkg-color)!important;color:var(--text-color)!important;text-shadow:none!important}.girafe-onboarding-theme button.driver-popover-close-btn{z-index:10000}
|
|
19
|
+
</style><style>
|
|
20
|
+
:host{position:relative}girafe-map{width:100%;height:100%;position:relative}girafe-basemap{display:block;position:absolute;bottom:.5rem;left:.5rem}girafe-search{width:50%;height:2.25rem;display:block;position:absolute;top:.5rem;left:.5rem;box-shadow:0 1px 4px #0000004d}girafe-selection-window{z-index:100;width:400px;height:240px;position:absolute;bottom:1rem;right:1rem}
|
|
21
|
+
</style>
|
|
22
|
+
<girafe-map></girafe-map>`;
|
|
23
|
+
};
|
|
15
24
|
isInitialized = false;
|
|
16
25
|
constructor() {
|
|
17
26
|
super('geogirafe-api');
|
|
@@ -277,7 +286,10 @@ export default class GeoGirafeApi extends GirafeHTMLElement {
|
|
|
277
286
|
}
|
|
278
287
|
injectConfigMetaTags() {
|
|
279
288
|
const location = new URL(import.meta.url);
|
|
289
|
+
// The 2 following lines are a small hack to make the api interface work in both context
|
|
290
|
+
// (debugging in vite + production app)
|
|
280
291
|
location.pathname = location.pathname.replace('/src/api', '');
|
|
292
|
+
location.pathname = location.pathname.replace('/node_modules/.vite/deps', '');
|
|
281
293
|
const origin = `${location.origin}${location.pathname.substring(0, location.pathname.lastIndexOf('/'))}`;
|
|
282
294
|
const baseConfigUrl = `${origin}/config.json`;
|
|
283
295
|
const apiConfigUrl = `${origin}/config.api.json`;
|
package/assets/i18n/de.json
CHANGED
|
@@ -181,6 +181,8 @@
|
|
|
181
181
|
"help": "Hilfe",
|
|
182
182
|
"help-basemap": "Wählen Sie aus den verfügbaren Hintergrundkarten, um Ihre Ansicht anzupassen.",
|
|
183
183
|
"help-menu": "Greifen Sie auf erweiterte Werkzeuge zu, wie Drucken, Zeichnen, 3D-Ansicht und mehr.",
|
|
184
|
+
"help-onboarding": "Starten Sie die Onboarding Tour erneut.",
|
|
185
|
+
"help-onboarding-link": "Klicken Sie hier zum starten.",
|
|
184
186
|
"help-search": "Suchen Sie nach einem Ort, einer Adresse, einer Karte oder Geodaten.",
|
|
185
187
|
"help-themes": "Entdecken Sie die verfügbaren Themen. Nach der Auswahl werden die zugehörigen Karten automatisch geladen.",
|
|
186
188
|
"help-user-preferences": "Verwalten Sie Ihre Benutzereinstellungen, einschließlich Sprache, Anzeigemodus und Kartenoptionen.",
|
package/assets/i18n/en.json
CHANGED
|
@@ -182,6 +182,8 @@
|
|
|
182
182
|
"help": "Help",
|
|
183
183
|
"help-basemap": "Choose from available background layers to customize your view.",
|
|
184
184
|
"help-menu": "Access advanced tools such as printing, drawing, 3D view, and more.",
|
|
185
|
+
"help-onboarding": "Restart the onboarding tour.",
|
|
186
|
+
"help-onboarding-link": "Click here to start.",
|
|
185
187
|
"help-search": "Search for a place, address, map, or geographic data.",
|
|
186
188
|
"help-themes": "Explore available topics. Once selected, the associated maps load automatically.",
|
|
187
189
|
"help-user-preferences": "Manage your user preferences, like language, display mode and map options.",
|
package/assets/i18n/fr.json
CHANGED
|
@@ -181,6 +181,8 @@
|
|
|
181
181
|
"help": "Aide",
|
|
182
182
|
"help-basemap": "Choisissez les fonds de carte disponibles pour personnaliser votre affichage.",
|
|
183
183
|
"help-menu": "Accédez à des outils avancés comme l'impression, le dessin, la vue 3D, et plus encore.",
|
|
184
|
+
"help-onboarding": "Relancer le tour d'onboarding.",
|
|
185
|
+
"help-onboarding-link": "Cliquez ici pour commencer.",
|
|
184
186
|
"help-search": "Recherchez un lieu, une adresse, une carte ou une donnée géographique.",
|
|
185
187
|
"help-themes": "Explorez les thèmes disponibles. Une fois un thème sélectionné, les cartes associées s'affichent automatiquement.",
|
|
186
188
|
"help-user-preferences": "Gérez vos préférences utilisateur, notamment la langue, le mode d'affichage et les options de la carte.",
|
package/assets/i18n/it.json
CHANGED
|
@@ -181,6 +181,8 @@
|
|
|
181
181
|
"help": "Aiuto",
|
|
182
182
|
"help-basemap": "Scegli tra gli sfondi cartografici disponibili per personalizzare la visualizzazione.",
|
|
183
183
|
"help-menu": "Accedi a strumenti avanzati come stampa, disegno, vista 3D e altro ancora.",
|
|
184
|
+
"help-onboarding": "Riavvia il tour di onboarding.",
|
|
185
|
+
"help-onboarding-link": "Clicca qui per iniziare.",
|
|
184
186
|
"help-search": "Cerca un luogo, un indirizzo, una mappa o un dato geografico.",
|
|
185
187
|
"help-themes": "Scopri i temi disponibili. Selezionando un tema, le mappe correlate vengono caricate automaticamente.",
|
|
186
188
|
"help-user-preferences": "Gestisci le preferenze utente, inclusa la lingua, la modalità di visualizzazione e le opzioni mappa.",
|
package/buildtools/lib-inline.js
CHANGED
|
@@ -4,7 +4,19 @@ import path from 'path';
|
|
|
4
4
|
import { findFilesRecursive, inlineTemplate } from './tools.js';
|
|
5
5
|
|
|
6
6
|
async function main() {
|
|
7
|
-
|
|
7
|
+
// Inline template for components
|
|
8
|
+
let fileList = findFilesRecursive(path.resolve('src', 'components'), ['.ts', '.js']);
|
|
9
|
+
for (const filepath of fileList) {
|
|
10
|
+
console.info(`Integrating inline HTML for file ${filepath}`);
|
|
11
|
+
const newCodeMapObject = await inlineTemplate(filepath);
|
|
12
|
+
const newFilePath = filepath.replace('src', path.join('dist', 'lib-src-inline'));
|
|
13
|
+
|
|
14
|
+
fs.mkdirSync(path.dirname(newFilePath), { recursive: true });
|
|
15
|
+
fs.writeFileSync(newFilePath, newCodeMapObject.code, 'utf-8');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Inline template for the API
|
|
19
|
+
fileList = findFilesRecursive(path.resolve('src', 'api'), ['.ts', '.js']);
|
|
8
20
|
for (const filepath of fileList) {
|
|
9
21
|
console.info(`Integrating inline HTML for file ${filepath}`);
|
|
10
22
|
const newCodeMapObject = await inlineTemplate(filepath);
|
package/buildtools/tools.js
CHANGED
|
@@ -57,9 +57,12 @@ export function deleteFiles(patterns) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export function copy(filename, sourceDir, targetDir) {
|
|
60
|
+
export function copy(filename, sourceDir, targetDir, targetFilename = null) {
|
|
61
|
+
if (targetFilename === null) {
|
|
62
|
+
targetFilename = filename;
|
|
63
|
+
}
|
|
61
64
|
const source = path.join(sourceDir, filename);
|
|
62
|
-
const target = path.join(targetDir,
|
|
65
|
+
const target = path.join(targetDir, targetFilename);
|
|
63
66
|
|
|
64
67
|
if (fs.existsSync(source)) {
|
|
65
68
|
// First create destination directory
|
|
@@ -111,8 +114,8 @@ async function getHtmlCode(currentFilename, relativeHtmlPath, styleCode) {
|
|
|
111
114
|
}
|
|
112
115
|
});
|
|
113
116
|
htmlCode = `
|
|
114
|
-
templateUrl = null;
|
|
115
|
-
styleUrls = null;
|
|
117
|
+
protected override templateUrl: string | null = null;
|
|
118
|
+
protected override styleUrls: string[] | null = null;
|
|
116
119
|
template = () => { return uHtml\`${styleCode}\n${htmlCode}\`; }`;
|
|
117
120
|
return htmlCode;
|
|
118
121
|
} catch (error) {
|
|
@@ -167,9 +170,9 @@ function isStringCommented(line) {
|
|
|
167
170
|
}
|
|
168
171
|
|
|
169
172
|
// Regex definitions
|
|
170
|
-
export const styleRegex = /(?:override\s+)?styleUrl *= *['"](.*)['"] *;?/g;
|
|
171
|
-
export const stylesRegex = /(?:override\s+)?styleUrls *= *\[([\s\S]*?)\] *;?/gs;
|
|
172
|
-
export const htmlRegex = /(?:override\s+)?templateUrl *= *['"](.*)['"] *;?/g;
|
|
173
|
+
export const styleRegex = /(?:(?:public|private|protected)\s+)?(?:override\s+)?styleUrl *= *['"](.*)['"] *;?/g;
|
|
174
|
+
export const stylesRegex = /(?:(?:public|private|protected)\s+)?(?:override\s+)?styleUrls *= *\[([\s\S]*?)\] *;?/gs;
|
|
175
|
+
export const htmlRegex = /(?:(?:public|private|protected)\s+)?(?:override\s+)?templateUrl *= *['"](.*)['"] *;?/g;
|
|
173
176
|
|
|
174
177
|
export async function inlineTemplate(filename) {
|
|
175
178
|
// Read the file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
3
3
|
declare class AboutComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
isPanelVisible: boolean;
|
|
8
8
|
panelTitle: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
export default class AlignNorthButtonMobile extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
protected connectedCallback(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
export default class OauthComponent extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
userIconUrl?: string;
|
|
7
7
|
constructor(name?: string);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import OauthComponent from '../auth/component.js';
|
|
2
2
|
export default class MobileOauthComponent extends OauthComponent {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import Basemap from '../../models/basemaps/basemap.js';
|
|
3
3
|
declare class BasemapComponent extends GirafeHTMLElement {
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
constructor();
|
|
8
8
|
changeBasemap(basemap: Basemap): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
3
3
|
declare class ContactComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
isPanelVisible: boolean;
|
|
8
8
|
panelTitle: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../../base/GirafeHTMLElement.js';
|
|
2
2
|
declare class MapCustomContextMenuComponent extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
private get map();
|
|
7
7
|
private static contextMenuOverlay;
|
|
@@ -3,8 +3,8 @@ import { printCoordinate } from '../../../tools/geometrytools.js';
|
|
|
3
3
|
import { MapContextMenuState } from './contextmenustate.js';
|
|
4
4
|
import MapContextMenuManager from './contextmenumanager.js';
|
|
5
5
|
declare class MapDefaultContextMenuComponent extends GirafeHTMLElement {
|
|
6
|
-
templateUrl: null;
|
|
7
|
-
styleUrls: null;
|
|
6
|
+
protected templateUrl: string | null;
|
|
7
|
+
protected styleUrls: string[] | null;
|
|
8
8
|
template: () => import("uhtml").Hole;
|
|
9
9
|
private get map();
|
|
10
10
|
private readonly eventsCallbacks;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
declare class CoordinateComponent extends GirafeHTMLElement {
|
|
3
3
|
#private;
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
east: string | null;
|
|
8
8
|
north: string | null;
|
|
@@ -11,8 +11,8 @@ import { Draw, Modify } from 'ol/interaction.js';
|
|
|
11
11
|
import OL3Parser from 'jsts/org/locationtech/jts/io/OL3Parser.js';
|
|
12
12
|
import IGirafePanel from '../../../tools/state/igirafepanel.js';
|
|
13
13
|
declare class CrossSectionSettingsComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
14
|
-
templateUrl: null;
|
|
15
|
-
styleUrls: null;
|
|
14
|
+
protected templateUrl: string | null;
|
|
15
|
+
protected styleUrls: string[] | null;
|
|
16
16
|
template: () => import("uhtml").Hole;
|
|
17
17
|
crossSectionState: CrossSectionState;
|
|
18
18
|
private readonly eventsCallbacks;
|
|
@@ -4,8 +4,8 @@ import { CrossSectionState } from './../crosssectionstate.js';
|
|
|
4
4
|
import { Scatterplot } from '../scatterplot.js';
|
|
5
5
|
import { PytreeManager } from '../pytreemanager.js';
|
|
6
6
|
declare class CrossSectionViewComponent extends GirafeResizableElement {
|
|
7
|
-
templateUrl: null;
|
|
8
|
-
styleUrls: null;
|
|
7
|
+
protected templateUrl: string | null;
|
|
8
|
+
protected styleUrls: string[] | null;
|
|
9
9
|
template: () => import("uhtml").Hole;
|
|
10
10
|
crossSectionState: CrossSectionState;
|
|
11
11
|
private readonly eventsCallbacks;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
export default class DisplayMenuButtonMobile extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
protected connectedCallback(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
export default class DisplaySelectorButtonMobile extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
protected connectedCallback(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import DrawingComponent from './component.js';
|
|
2
2
|
export default class DrawingComponentMobile extends DrawingComponent {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
protected connectedCallback(): void;
|
|
@@ -7,8 +7,8 @@ import GirafeColorPicker from '../../tools/utils/girafecolorpicker.js';
|
|
|
7
7
|
import LayerDrawing from '../../models/layers/layerdrawing.js';
|
|
8
8
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
9
9
|
export default class DrawingComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
10
|
-
templateUrl: null;
|
|
11
|
-
styleUrls: null;
|
|
10
|
+
protected templateUrl: string | null;
|
|
11
|
+
protected styleUrls: string[] | null;
|
|
12
12
|
template: () => import("uhtml").Hole;
|
|
13
13
|
isPanelVisible: boolean;
|
|
14
14
|
panelTitle: string;
|
|
@@ -10,8 +10,8 @@ export type DimensionUnit = {
|
|
|
10
10
|
};
|
|
11
11
|
declare class FixedDimensionComponent extends GirafeHTMLElement {
|
|
12
12
|
static readonly observedAttributes: string[];
|
|
13
|
-
templateUrl: null;
|
|
14
|
-
styleUrls: null;
|
|
13
|
+
protected templateUrl: string | null;
|
|
14
|
+
protected styleUrls: string[] | null;
|
|
15
15
|
template: () => import("uhtml").Hole;
|
|
16
16
|
checkedIcon: string;
|
|
17
17
|
notCheckedIcon: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
export default class DrawingContainerMobile extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
constructor();
|
|
7
7
|
protected connectedCallback(): void;
|
|
@@ -3,8 +3,8 @@ import EditFromComponent from './editform/component.js';
|
|
|
3
3
|
import { OapifLayer } from '../../models/serverogcapifeatures.js';
|
|
4
4
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
5
5
|
export default class EditComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
6
|
-
templateUrl: null;
|
|
7
|
-
styleUrls: null;
|
|
6
|
+
protected templateUrl: string | null;
|
|
7
|
+
protected styleUrls: string[] | null;
|
|
8
8
|
template: () => import("uhtml").Hole;
|
|
9
9
|
isPanelVisible: boolean;
|
|
10
10
|
panelTitle: string;
|
|
@@ -2,8 +2,8 @@ import GirafeHTMLElement from '../../../base/GirafeHTMLElement.js';
|
|
|
2
2
|
import Feature from 'ol/Feature.js';
|
|
3
3
|
import OgcApiFeaturesSchema from '../../../tools/ogcapi/ogcapifeaturesschema.js';
|
|
4
4
|
export default class EditFromComponent extends GirafeHTMLElement {
|
|
5
|
-
templateUrl: null;
|
|
6
|
-
styleUrls: null;
|
|
5
|
+
protected templateUrl: string | null;
|
|
6
|
+
protected styleUrls: string[] | null;
|
|
7
7
|
template: () => import("uhtml").Hole;
|
|
8
8
|
featureSchema?: OgcApiFeaturesSchema;
|
|
9
9
|
feature?: Feature;
|
|
@@ -10,8 +10,8 @@ type PredefinedSource = {
|
|
|
10
10
|
url: string;
|
|
11
11
|
};
|
|
12
12
|
declare class ExternalLayersComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
13
|
-
templateUrl: null;
|
|
14
|
-
styleUrls: null;
|
|
13
|
+
protected templateUrl: string | null;
|
|
14
|
+
protected styleUrls: string[] | null;
|
|
15
15
|
template: () => import("uhtml").Hole;
|
|
16
16
|
isPanelVisible: boolean;
|
|
17
17
|
panelTitle: string;
|
|
@@ -2,8 +2,8 @@ import Geolocation from 'ol/Geolocation.js';
|
|
|
2
2
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
3
3
|
type GeolocationStatus = 'off' | 'error' | 'searching' | 'tracking' | 'headlock';
|
|
4
4
|
export default class GeolocationMobile extends GirafeHTMLElement {
|
|
5
|
-
templateUrl: null;
|
|
6
|
-
styleUrls: null;
|
|
5
|
+
protected templateUrl: string | null;
|
|
6
|
+
protected styleUrls: string[] | null;
|
|
7
7
|
template: () => import("uhtml").Hole;
|
|
8
8
|
geolocation: Geolocation | null;
|
|
9
9
|
status: GeolocationStatus;
|
|
@@ -3,8 +3,8 @@ import { Feature } from 'ol';
|
|
|
3
3
|
import { Callback } from '../../tools/state/statemanager.js';
|
|
4
4
|
declare class GetDirectionsArtifact extends GirafeHTMLElement {
|
|
5
5
|
static readonly observedAttributes: string[];
|
|
6
|
-
templateUrl: null;
|
|
7
|
-
styleUrls: null;
|
|
6
|
+
protected templateUrl: string | null;
|
|
7
|
+
protected styleUrls: string[] | null;
|
|
8
8
|
template: () => import("uhtml").Hole;
|
|
9
9
|
feature?: Feature;
|
|
10
10
|
directionsAvailable: boolean;
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
declare class HelpComponent extends GirafeHTMLElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
content: HTMLElement;
|
|
7
7
|
themes: HTMLElement;
|
|
8
8
|
search: HTMLElement;
|
|
9
9
|
menu: HTMLElement;
|
|
10
|
+
onboarding: HTMLElement;
|
|
10
11
|
basemap: HTMLElement;
|
|
11
12
|
userPreferences: HTMLElement;
|
|
12
13
|
darkFrontendMode: boolean;
|
|
13
|
-
arrowBlack: string;
|
|
14
|
-
arrowWhite: string;
|
|
15
14
|
currentArrow?: string;
|
|
15
|
+
currentCircle?: string;
|
|
16
16
|
constructor();
|
|
17
17
|
render(): void;
|
|
18
18
|
private hideHelpFor;
|
|
19
19
|
registerEvents(): void;
|
|
20
20
|
changeArrowColor(): void;
|
|
21
21
|
toggleHelp(visible: boolean): void;
|
|
22
|
+
startOnboardingTour(): void;
|
|
22
23
|
protected connectedCallback(): void;
|
|
23
24
|
}
|
|
24
25
|
export default HelpComponent;
|
|
@@ -3,7 +3,10 @@ import { html as uHtml } from 'uhtml';
|
|
|
3
3
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
4
4
|
import ArrowBlack from './images/arrow_black.webp';
|
|
5
5
|
import ArrowWhite from './images/arrow_white.webp';
|
|
6
|
+
import CircledBlack from './images/circled_black.webp';
|
|
7
|
+
import CircledWhite from './images/circled_white.webp';
|
|
6
8
|
import { systemIsInDarkMode } from '../../tools/utils/utils.js';
|
|
9
|
+
import { noop } from '../../tools/utils/async.js';
|
|
7
10
|
class HelpComponent extends GirafeHTMLElement {
|
|
8
11
|
templateUrl = null;
|
|
9
12
|
styleUrls = null;
|
|
@@ -11,20 +14,20 @@ class HelpComponent extends GirafeHTMLElement {
|
|
|
11
14
|
return uHtml `<style>
|
|
12
15
|
*{font-family:Arial,sans-serif}.hidden{display:none!important}.gg-rotate90{transform:rotate(90deg)}.gg-rotate180{transform:rotate(180deg)}.gg-rotate270{transform:rotate(270deg)}img{filter:var(--svg-filter)}img.legend-image{filter:var(--svg-map-filter);background:var(--svg-legend-bkg)}div{scrollbar-width:thin}a,a:visited{color:var(--link-color)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-wait{0%{transform:rotate(0)}7%{transform:rotate(360deg)}to{transform:rotate(360deg)}}.gg-spin{animation-name:spin;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}.gg-spin-wait{animation-name:spin-wait;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#999}.gg-button,.gg-select,.gg-input,.gg-textarea{background-color:var(--bkg-color);color:var(--text-color);border:var(--app-standard-border);box-sizing:border-box;cursor:pointer;border-radius:3px;outline:0;margin:0;padding:0 0 0 .5rem;display:inline-block}.gg-label{background-color:var(--bkg-color);color:var(--text-color);border:none;align-items:center;margin:0;padding:0;display:flex}.gg-button,.gg-select,.gg-input,.gg-label{min-height:calc(var(--app-standard-height) / 1.5)}.gg-textarea{max-height:initial;resize:vertical;height:6rem;padding:.5rem;line-height:1.3rem}.gg-input{cursor:text}.gg-checkbox{accent-color:var(--text-color);width:1.2rem}.gg-range{accent-color:var(--text-color)}.gg-button{padding:0 .5rem}.gg-button.active{border:solid 1px var(--text-color-grad2);background-color:var(--text-color-grad2);color:var(--bkg-color)}.gg-button:disabled{color:gray;cursor:not-allowed;background-color:#d3d3d3;border:none}.gg-input:disabled,.gg-select:disabled,.gg-textarea:disabled{color:gray;cursor:not-allowed;background-color:#d3d3d3}.gg-button>img{vertical-align:middle}.gg-icon-button{color:var(--text-color);cursor:pointer;background-color:#0000;border:none;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.gg-icon{justify-content:center;align-items:center;display:flex}.gg-big,.gg-big-withtext{min-width:var(--app-standard-height);min-height:var(--app-standard-height);max-height:var(--app-standard-height)}.gg-big img,.gg-big-withtext img{width:calc(var(--app-standard-height) - 1.5rem);margin:0}.gg-big-withtext span{font-variant:small-caps;padding:0 1rem;font-size:.9rem}.gg-medium,.gg-medium-withtext{min-width:calc(var(--app-standard-height) / 1.2);min-height:calc(var(--app-standard-height) / 1.2);max-height:calc(var(--app-standard-height) / 1.2);flex-direction:row}.gg-medium img{width:calc(var(--app-standard-height) / 2.4);margin:0}.gg-medium-withtext img{width:calc(var(--app-standard-height) / 2.4);margin-left:.5rem}.gg-medium-withtext span{padding:0 1rem 0 .5rem;font-size:.9rem}.gg-small,.gg-small-withtext{min-width:calc(var(--app-standard-height) / 2);min-height:calc(var(--app-standard-height) / 2);max-height:calc(var(--app-standard-height) / 2);flex-direction:row}.gg-small img{width:calc(var(--app-standard-height) / 3);margin:0}.gg-small-withtext img{width:calc(var(--app-standard-height) / 3);margin-left:.5rem}.gg-small-withtext span{padding:0 .5rem 0 .3rem;font-size:.9rem}.gg-button:hover,.gg-select:hover,.gg-input:hover,.gg-textarea:hover,.gg-icon-button:hover{background-color:var(--bkg-color-grad1)}.gg-opacity{opacity:.5}.gg-opacity:hover{opacity:1;background-color:#0000}.gg-tabs{cursor:pointer;grid-auto-flow:column;padding-bottom:1rem;font-size:1rem;display:grid}.gg-tab{border:none;border-bottom:var(--app-standard-border);cursor:pointer;color:var(--text-color);background:0 0;padding:.5rem}.gg-tab.active{border-bottom:solid 1px var(--text-color)}.girafe-button-big,.girafe-button-large,.girafe-button-small,.girafe-button-tiny{color:var(--text-color);background-color:#0000;border:none;flex-direction:column;display:flex}.girafe-button-big:hover,.girafe-button-large:hover,.girafe-button-small:hover,.girafe-button-tiny:hover{background-color:var(--bkg-color-grad1);cursor:pointer}.girafe-button-big.dark,.girafe-button-large.dark,.girafe-button-small.dark,.girafe-button-tiny.dark{background-color:var(--bkg-color);filter:invert()}.girafe-button-big{width:var(--app-standard-height);height:var(--app-standard-height);align-items:center;padding:1rem}.girafe-button-big img{overflow:hidden}.girafe-button-large{flex-direction:row}.girafe-button-large img{height:2rem;margin:.3rem}.girafe-button-large span{height:2rem;margin:.3rem;line-height:2rem}.girafe-button-small{min-width:calc(var(--app-standard-height) / 2);height:calc(var(--app-standard-height) / 2);align-items:center;padding:.5rem}.girafe-button-small img{overflow:hidden}.girafe-button-small span{text-align:left;text-overflow:ellipsis;width:100%;overflow:hidden}.girafe-button-tiny{align-items:center;width:1rem;height:1rem;padding:0}.girafe-button-tiny img{overflow:hidden}.girafe-onboarding-theme{background-color:var(--bkg-color)!important;color:var(--text-color)!important}.girafe-onboarding-theme button{background-color:var(--bkg-color)!important;color:var(--text-color)!important;text-shadow:none!important}.girafe-onboarding-theme button.driver-popover-close-btn{z-index:10000}
|
|
13
16
|
</style><style>
|
|
14
|
-
#content{z-index:10000;display:none;position:fixed;inset:0}.box{background-repeat:no-repeat;position:absolute}.description{color:var(--bkg-color);width:15rem;font-size:1.2rem;position:absolute}#themes{background-position:left -60px bottom -50px;width:150px;height:120px;top:4.5rem;left:0;transform:rotateY(0)rotateX(0)rotate(90deg)}#themes-description{top:10.5rem;left:10rem}#search{background-position:-60px -30px;width:180px;height:70px;top:8rem;left:45%;transform:rotateY(0)rotateX(0)rotate(90deg)}#search-description{text-align:center;top:16rem;left:45%}#menu{background-position:left -60px bottom -50px;width:150px;height:120px;top:4.5rem;right:3rem;transform:rotateY(0)rotateX(0)rotate(180deg)}#menu-description{text-align:right;top:14rem;right:10rem}#basemap{background-position:left -60px bottom -50px;width:150px;height:120px;bottom:11rem;left:26rem;transform:rotateY(0)rotateX(180deg)rotate(90deg)}#basemap-description{bottom:17rem;left:36rem}#user-preferences{background-position:left -60px bottom -50px;width:150px;height:120px;bottom:.5rem;right:3rem;transform:rotateY(180deg)rotateX(0)rotate(0)}#user-preferences-description{text-align:right;bottom:10rem;right:10rem}
|
|
17
|
+
#content{z-index:10000;display:none;position:fixed;inset:0}.box{background-repeat:no-repeat;position:absolute}.description{color:var(--bkg-color);width:15rem;font-size:1.2rem;position:absolute}#themes{background-position:left -60px bottom -50px;width:150px;height:120px;top:4.5rem;left:0;transform:rotateY(0)rotateX(0)rotate(90deg)}#themes-description{top:10.5rem;left:10rem}#search{background-position:-60px -30px;width:180px;height:70px;top:8rem;left:45%;transform:rotateY(0)rotateX(0)rotate(90deg)}#search-description{text-align:center;top:16rem;left:45%}#menu{background-position:left -60px bottom -50px;width:150px;height:120px;top:4.5rem;right:3rem;transform:rotateY(0)rotateX(0)rotate(180deg)}#menu-description{text-align:right;top:14rem;right:10rem}#onboarding,#onboarding-description{--onboarding-help-width:320px;--onboarding-help-height:160px}#onboarding{top:calc(50% - var(--onboarding-help-height) * .5);right:calc(50% - var(--onboarding-help-width) * .5);width:var(--onboarding-help-width);height:var(--onboarding-help-height);background-size:var(--onboarding-help-width) var(--onboarding-help-height)}#onboarding-description{top:calc(50% - var(--onboarding-help-height) * .5);right:calc(50% - var(--onboarding-help-width) * .5);width:var(--onboarding-help-width);height:var(--onboarding-help-height);text-align:center;flex-direction:column;align-items:center;display:flex;& span{flex-grow:1;align-content:center;align-items:end;margin:0 4rem;display:inline-flex}& button{cursor:pointer;font:inherit;color:currentColor;-webkit-appearance:none;background:0 0;border:0;flex-grow:1;align-items:baseline;margin:0 4rem;padding:0;text-decoration:underline;display:inline-flex}}#basemap{background-position:left -60px bottom -50px;width:150px;height:120px;bottom:11rem;left:26rem;transform:rotateY(0)rotateX(180deg)rotate(90deg)}#basemap-description{bottom:17rem;left:36rem}#user-preferences{background-position:left -60px bottom -50px;width:150px;height:120px;bottom:.5rem;right:3rem;transform:rotateY(180deg)rotateX(0)rotate(0)}#user-preferences-description{text-align:right;bottom:10rem;right:10rem}
|
|
15
18
|
</style>
|
|
16
|
-
<div id="content"><div id="themes" class="box"></div><div id="themes-description" class="description" i18n="help-themes">Explore available topics. Once selected, the associated maps load automatically.</div><div id="search" class="box"></div><div id="search-description" class="description" i18n="help-search">Search for a place, address, map, or geographic data.</div><div id="menu" class="box"></div><div id="menu-description" class="description" i18n="help-menu">Access advanced tools such as printing, drawing, 3D view, and more.</div><div id="basemap" class="box"></div><div id="basemap-description" class="description" i18n="help-basemap">Choose from available background layers to customize your view.</div><div id="user-preferences" class="box"></div><div id="user-preferences-description" class="description" i18n="help-user-preferences">Manage your user preferences, like language, display mode and map options.</div></div>`;
|
|
19
|
+
<div id="content"><div id="themes" class="box"></div><div id="themes-description" class="description" i18n="help-themes">Explore available topics. Once selected, the associated maps load automatically.</div><div id="search" class="box"></div><div id="search-description" class="description" i18n="help-search">Search for a place, address, map, or geographic data.</div><div id="menu" class="box"></div><div id="menu-description" class="description" i18n="help-menu">Access advanced tools such as printing, drawing, 3D view, and more.</div><div id="onboarding" class="box"></div><div id="onboarding-description" class="description"><span i18n="help-onboarding"></span> <button i18n="help-onboarding-link" onclick="${() => this.startOnboardingTour()}"></button></div><div id="basemap" class="box"></div><div id="basemap-description" class="description" i18n="help-basemap">Choose from available background layers to customize your view.</div><div id="user-preferences" class="box"></div><div id="user-preferences-description" class="description" i18n="help-user-preferences">Manage your user preferences, like language, display mode and map options.</div></div>`;
|
|
17
20
|
};
|
|
18
21
|
content;
|
|
19
22
|
themes;
|
|
20
23
|
search;
|
|
21
24
|
menu;
|
|
25
|
+
onboarding;
|
|
22
26
|
basemap;
|
|
23
27
|
userPreferences;
|
|
24
28
|
darkFrontendMode = false;
|
|
25
|
-
arrowBlack = ArrowBlack;
|
|
26
|
-
arrowWhite = ArrowWhite;
|
|
27
29
|
currentArrow;
|
|
30
|
+
currentCircle;
|
|
28
31
|
constructor() {
|
|
29
32
|
super('help');
|
|
30
33
|
}
|
|
@@ -35,6 +38,7 @@ class HelpComponent extends GirafeHTMLElement {
|
|
|
35
38
|
this.themes = this.shadow.querySelector('#themes');
|
|
36
39
|
this.search = this.shadow.querySelector('#search');
|
|
37
40
|
this.menu = this.shadow.querySelector('#menu');
|
|
41
|
+
this.onboarding = this.shadow.querySelector('#onboarding');
|
|
38
42
|
this.basemap = this.shadow.querySelector('#basemap');
|
|
39
43
|
this.userPreferences = this.shadow.querySelector('#user-preferences');
|
|
40
44
|
// hide help for hideable Parts of the UI
|
|
@@ -61,10 +65,12 @@ class HelpComponent extends GirafeHTMLElement {
|
|
|
61
65
|
changeArrowColor() {
|
|
62
66
|
// change the arrow color depending on the darkFrontendMode state
|
|
63
67
|
this.darkFrontendMode = this.context.stateManager.state.interface.darkFrontendMode ?? systemIsInDarkMode();
|
|
64
|
-
this.currentArrow = this.darkFrontendMode ?
|
|
68
|
+
this.currentArrow = this.darkFrontendMode ? ArrowBlack : ArrowWhite;
|
|
69
|
+
this.currentCircle = this.darkFrontendMode ? CircledBlack : CircledWhite;
|
|
65
70
|
this.themes.style.backgroundImage = `url(${this.currentArrow})`;
|
|
66
71
|
this.search.style.backgroundImage = `url(${this.currentArrow})`;
|
|
67
72
|
this.menu.style.backgroundImage = `url(${this.currentArrow})`;
|
|
73
|
+
this.onboarding.style.backgroundImage = `url(${this.currentCircle})`;
|
|
68
74
|
this.basemap.style.backgroundImage = `url(${this.currentArrow})`;
|
|
69
75
|
this.userPreferences.style.backgroundImage = `url(${this.currentArrow})`;
|
|
70
76
|
this.content.style.backgroundColor = this.darkFrontendMode ? 'rgba(255, 255, 255, 0.65)' : 'rgba(0, 0, 0, 0.65)';
|
|
@@ -78,6 +84,10 @@ class HelpComponent extends GirafeHTMLElement {
|
|
|
78
84
|
this.content.style.display = 'none';
|
|
79
85
|
}
|
|
80
86
|
}
|
|
87
|
+
startOnboardingTour() {
|
|
88
|
+
this.toggleHelp(false);
|
|
89
|
+
this.context.onBoardingManager.restart().then(noop);
|
|
90
|
+
}
|
|
81
91
|
connectedCallback() {
|
|
82
92
|
super.connectedCallback();
|
|
83
93
|
this.render();
|
|
Binary file
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import { InfoBoxContent } from '../../tools/state/state.js';
|
|
3
3
|
declare class InfoboxComponent extends GirafeHTMLElement {
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
infos: InfoBoxContent[];
|
|
8
8
|
urlRegExp: RegExp;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeDraggableElement from '../../base/GirafeDraggableElement.js';
|
|
2
2
|
declare class InfoWindowComponent extends GirafeDraggableElement {
|
|
3
|
-
templateUrl: null;
|
|
4
|
-
styleUrls: null;
|
|
3
|
+
protected templateUrl: string | null;
|
|
4
|
+
protected styleUrls: string[] | null;
|
|
5
5
|
template: () => import("uhtml").Hole;
|
|
6
6
|
visible: boolean;
|
|
7
7
|
private resizeWindow;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
3
3
|
declare class LayoutComponent extends GirafeHTMLElement implements IGirafePanel {
|
|
4
|
-
templateUrl: null;
|
|
5
|
-
styleUrls: null;
|
|
4
|
+
protected templateUrl: string | null;
|
|
5
|
+
protected styleUrls: string[] | null;
|
|
6
6
|
template: () => import("uhtml").Hole;
|
|
7
7
|
isPanelVisible: boolean;
|
|
8
8
|
panelTitle: string;
|
|
@@ -15,8 +15,8 @@ import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
|
15
15
|
* </girafe-lr-panel>
|
|
16
16
|
*/
|
|
17
17
|
declare class LRPanelComponent extends GirafeResizableElement {
|
|
18
|
-
templateUrl: null;
|
|
19
|
-
styleUrls: null;
|
|
18
|
+
protected templateUrl: string | null;
|
|
19
|
+
protected styleUrls: string[] | null;
|
|
20
20
|
template: () => import("uhtml").Hole;
|
|
21
21
|
private stateToggleManager?;
|
|
22
22
|
panelTitle: string;
|