@geogirafe/lib-geoportal 1.2.0-dev.2813242211 → 1.2.0-dev.2829121016
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/api/apicontext.d.ts +4 -0
- package/api/apicontext.js +8 -0
- package/api/apigeogirafeapp.js +7 -5
- package/api/style.css +18 -1
- package/assets/i18n/de.json +1 -0
- package/assets/i18n/en.json +1 -0
- package/assets/i18n/fr.json +1 -0
- package/assets/i18n/it.json +1 -0
- package/assets/icons/theme-checked.svg +1 -0
- package/components/drawing/component.d.ts +9 -2
- package/components/drawing/component.js +27 -10
- package/components/drawing-toolbar/component.js +2 -2
- package/components/extlayers/component.d.ts +0 -1
- package/components/extlayers/component.js +1 -6
- package/components/main.d.ts +3 -1
- package/components/main.js +3 -1
- package/components/{map → map-2d}/component.d.ts +9 -24
- package/components/{map → map-2d}/component.js +28 -260
- package/components/map-2d/deprecatedmapcomponent.d.ts +15 -0
- package/components/map-2d/deprecatedmapcomponent.js +24 -0
- package/components/{map → map-2d}/style.css +0 -30
- package/components/{map → map-2d}/tools/swipemanager.d.ts +1 -1
- package/components/map-3d/component.d.ts +50 -0
- package/components/map-3d/component.js +139 -0
- package/components/map-3d/style.css +34 -0
- package/components/map-3d/tools/globe.d.ts +42 -0
- package/components/map-3d/tools/globe.js +198 -0
- package/components/search/component.d.ts +5 -0
- package/components/search/component.js +71 -19
- package/components/search/style.css +36 -9
- package/components/selectiontool/component.d.ts +2 -2
- package/components/selectiontool/component.js +2 -2
- package/components/treeview/style.css +4 -0
- package/components/treeview/treeviewgroup/component.js +1 -1
- package/components/treeview/treeviewitem/component.js +1 -1
- package/components/treeview/treeviewtheme/component.d.ts +2 -0
- package/components/treeview/treeviewtheme/component.js +18 -3
- package/package.json +1 -1
- package/styles/iframe.css +18 -1
- package/styles/index.css +18 -1
- package/styles/mobile.css +18 -1
- package/templates/iframe.html +4 -1
- package/templates/index.html +4 -1
- package/templates/mobile.html +4 -1
- package/templates/public/about.json +1 -1
- package/templates/vite.config.js +43 -25
- package/tools/app/geogirafeapp-mobile.js +7 -2
- package/tools/app/geogirafeapp.js +7 -2
- package/tools/context/context.d.ts +4 -0
- package/tools/context/context.js +8 -0
- package/tools/context/icontext.d.ts +4 -0
- package/tools/drawing/cesiumDrawing.d.ts +9 -5
- package/tools/drawing/cesiumDrawing.js +8 -8
- package/tools/drawing/olDrawing.d.ts +2 -2
- package/tools/drawing/olDrawing.js +1 -1
- package/tools/main.d.ts +2 -0
- package/tools/main.js +2 -0
- package/tools/selection/selectionmanager.d.ts +19 -0
- package/tools/selection/selectionmanager.js +80 -0
- package/tools/state/componentManager.d.ts +1 -1
- package/tools/tests/mockcontext.d.ts +4 -0
- package/tools/tests/mockcontext.js +8 -0
- package/tools/themes/themeshelper.d.ts +44 -1
- package/tools/themes/themeshelper.js +149 -16
- package/{components/map/tools → tools/wmts}/wmtsmanager.d.ts +4 -7
- package/{components/map/tools → tools/wmts}/wmtsmanager.js +7 -10
- /package/components/{map → map-2d}/tools/cogmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/cogmanager.js +0 -0
- /package/components/{map → map-2d}/tools/contextmenu.d.ts +0 -0
- /package/components/{map → map-2d}/tools/contextmenu.js +0 -0
- /package/components/{map → map-2d}/tools/drawingmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/drawingmanager.js +0 -0
- /package/components/{map → map-2d}/tools/focusfeature.d.ts +0 -0
- /package/components/{map → map-2d}/tools/focusfeature.js +0 -0
- /package/components/{map → map-2d}/tools/osmmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/osmmanager.js +0 -0
- /package/components/{map → map-2d}/tools/swipemanager.js +0 -0
- /package/components/{map → map-2d}/tools/vectortilesmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/vectortilesmanager.js +0 -0
- /package/components/{map → map-2d}/tools/viewmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/viewmanager.js +0 -0
- /package/components/{map → map-2d}/tools/xyzmanager.d.ts +0 -0
- /package/components/{map → map-2d}/tools/xyzmanager.js +0 -0
- /package/components/{map → map-3d}/tools/wmsmanager3d.d.ts +0 -0
- /package/components/{map → map-3d}/tools/wmsmanager3d.js +0 -0
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
.search-icon,
|
|
37
37
|
.close-icon,
|
|
38
|
+
.theme-icon,
|
|
38
39
|
.select-color-icon {
|
|
39
40
|
width: 14px;
|
|
40
41
|
color: var(--text-color);
|
|
@@ -70,6 +71,15 @@
|
|
|
70
71
|
color: var(--text-color);
|
|
71
72
|
}
|
|
72
73
|
|
|
74
|
+
.entry img {
|
|
75
|
+
margin-right: 1rem;
|
|
76
|
+
width: 0.8em;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.entry span {
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
}
|
|
82
|
+
|
|
73
83
|
.provider,
|
|
74
84
|
.group {
|
|
75
85
|
font-weight: 600;
|
|
@@ -88,26 +98,43 @@
|
|
|
88
98
|
}
|
|
89
99
|
|
|
90
100
|
.result {
|
|
101
|
+
border-top: solid 1px #ccc;
|
|
102
|
+
background: transparent;
|
|
103
|
+
width: 100%;
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: stretch;
|
|
106
|
+
padding: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.result button {
|
|
110
|
+
padding: 0.3rem 1rem;
|
|
91
111
|
cursor: pointer;
|
|
92
112
|
border: none;
|
|
93
|
-
border-top: solid 1px #ccc;
|
|
94
113
|
background: transparent;
|
|
95
114
|
text-align: left;
|
|
96
115
|
width: 100%;
|
|
116
|
+
color: var(--text-color);
|
|
97
117
|
}
|
|
98
118
|
|
|
99
|
-
.
|
|
100
|
-
|
|
101
|
-
|
|
119
|
+
.result button:hover {
|
|
120
|
+
background-color: var(--bkg-color-grad2) !important;
|
|
121
|
+
color: var(--text-color);
|
|
102
122
|
}
|
|
103
123
|
|
|
104
|
-
.
|
|
105
|
-
|
|
124
|
+
.result .tools {
|
|
125
|
+
width: 1.3rem;
|
|
126
|
+
margin: 0;
|
|
106
127
|
}
|
|
107
128
|
|
|
108
|
-
.result.
|
|
109
|
-
|
|
110
|
-
|
|
129
|
+
.result .tools button {
|
|
130
|
+
margin: 0;
|
|
131
|
+
padding: 0 0.3rem;
|
|
132
|
+
height: -webkit-fill-available;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.result .tools button img {
|
|
136
|
+
margin: 0;
|
|
137
|
+
padding: 0;
|
|
111
138
|
}
|
|
112
139
|
|
|
113
140
|
#no-result {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
2
2
|
import { SelectionMode, SelectionTool } from '../../models/selection.js';
|
|
3
3
|
import { Draw, Interaction } from 'ol/interaction.js';
|
|
4
|
-
import
|
|
4
|
+
import Map2dComponent from '../map-2d/component.js';
|
|
5
5
|
import { Style } from 'ol/style.js';
|
|
6
6
|
import { FeatureLike } from 'ol/Feature.js';
|
|
7
7
|
import IGirafePanel from '../../tools/state/igirafepanel.js';
|
|
@@ -31,7 +31,7 @@ export default class SelectionToolComponent extends GirafeHTMLElement implements
|
|
|
31
31
|
defaultVertexStrokeWidth: number;
|
|
32
32
|
};
|
|
33
33
|
get map(): import("ol").Map;
|
|
34
|
-
get mapComponent():
|
|
34
|
+
get mapComponent(): Map2dComponent;
|
|
35
35
|
private defaultStyle;
|
|
36
36
|
private labelStyle;
|
|
37
37
|
styleFunction: (featureLike: FeatureLike) => Style[];
|
|
@@ -3,7 +3,7 @@ import { html as uHtml } from 'uhtml';
|
|
|
3
3
|
import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
|
|
4
4
|
import { SelectionMode, SelectionTool } from '../../models/selection.js';
|
|
5
5
|
import { Draw, Interaction } from 'ol/interaction.js';
|
|
6
|
-
import
|
|
6
|
+
import Map2dComponent from '../map-2d/component.js';
|
|
7
7
|
import { createBox } from 'ol/interaction/Draw.js';
|
|
8
8
|
import { Circle, Fill, RegularShape, Stroke, Style, Text } from 'ol/style.js';
|
|
9
9
|
import { LineString, Point } from 'ol/geom.js';
|
|
@@ -49,7 +49,7 @@ ${this.htmlUnsafe(this.feedbackTemplateHtml ?? '')}`;
|
|
|
49
49
|
return this.context.mapManager.getMap();
|
|
50
50
|
}
|
|
51
51
|
get mapComponent() {
|
|
52
|
-
return this.context.componentManager.getComponents(
|
|
52
|
+
return this.context.componentManager.getComponents(Map2dComponent)[0];
|
|
53
53
|
}
|
|
54
54
|
defaultStyle;
|
|
55
55
|
labelStyle;
|
|
@@ -8,7 +8,7 @@ class TreeViewGroupComponent extends TreeViewGroupElement {
|
|
|
8
8
|
styleUrls = null;
|
|
9
9
|
template = () => {
|
|
10
10
|
return uHtml `<style>
|
|
11
|
-
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
11
|
+
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}.tool.visible,header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
12
12
|
</style><style>
|
|
13
13
|
.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}button,input,select,textarea{font:inherit}.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-grad1);background-color:var(--bkg-color-grad2)}.gg-button:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed;border:none}.gg-button:disabled img{filter:opacity(.6)}.gg-input:disabled,.gg-select:disabled,.gg-textarea:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed}.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:not(:disabled),.gg-select:hover:not(:disabled),.gg-input:hover:not(:disabled),.gg-textarea:hover:not(:disabled),.gg-icon-button:hover:not(:disabled){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}.tippy-box{background-color:var(--bkg-color)!important;border:var(--app-standard-border)!important}.tippy-content{color:var(--text-color)!important}.tippy-arrow{color:var(--bkg-color)!important}.tippy-box[data-theme~=error]{background-color:var(--error-color);white-space:pre-line}div.tippy-box[data-theme=image-popup]{border:var(--app-standard-border)!important;& div.tippy-content{background-color:var(--bkg-color)!important;& img{max-width:20rem;max-height:20rem}}& div.tippy-arrow{color:var(--bkg-color)!important}}
|
|
14
14
|
</style>
|
|
@@ -14,7 +14,7 @@ class TreeViewItemComponent extends TreeViewElement {
|
|
|
14
14
|
styleUrls = null;
|
|
15
15
|
template = () => {
|
|
16
16
|
return uHtml `<style>
|
|
17
|
-
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
17
|
+
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}.tool.visible,header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
18
18
|
</style><style>
|
|
19
19
|
.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}button,input,select,textarea{font:inherit}.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-grad1);background-color:var(--bkg-color-grad2)}.gg-button:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed;border:none}.gg-button:disabled img{filter:opacity(.6)}.gg-input:disabled,.gg-select:disabled,.gg-textarea:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed}.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:not(:disabled),.gg-select:hover:not(:disabled),.gg-input:hover:not(:disabled),.gg-textarea:hover:not(:disabled),.gg-icon-button:hover:not(:disabled){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}.tippy-box{background-color:var(--bkg-color)!important;border:var(--app-standard-border)!important}.tippy-content{color:var(--text-color)!important}.tippy-arrow{color:var(--bkg-color)!important}.tippy-box[data-theme~=error]{background-color:var(--error-color);white-space:pre-line}div.tippy-box[data-theme=image-popup]{border:var(--app-standard-border)!important;& div.tippy-content{background-color:var(--bkg-color)!important;& img{max-width:20rem;max-height:20rem}}& div.tippy-arrow{color:var(--bkg-color)!important}}
|
|
20
20
|
</style>
|
|
@@ -12,12 +12,12 @@ class TreeViewThemeComponent extends TreeViewGroupElement {
|
|
|
12
12
|
return uHtml `<style>
|
|
13
13
|
.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}button,input,select,textarea{font:inherit}.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-grad1);background-color:var(--bkg-color-grad2)}.gg-button:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed;border:none}.gg-button:disabled img{filter:opacity(.6)}.gg-input:disabled,.gg-select:disabled,.gg-textarea:disabled{background-color:var(--bkg-color-grad1);color:var(--text-color-grad2);cursor:not-allowed}.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:not(:disabled),.gg-select:hover:not(:disabled),.gg-input:hover:not(:disabled),.gg-textarea:hover:not(:disabled),.gg-icon-button:hover:not(:disabled){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}.tippy-box{background-color:var(--bkg-color)!important;border:var(--app-standard-border)!important}.tippy-content{color:var(--text-color)!important}.tippy-arrow{color:var(--bkg-color)!important}.tippy-box[data-theme~=error]{background-color:var(--error-color);white-space:pre-line}div.tippy-box[data-theme=image-popup]{border:var(--app-standard-border)!important;& div.tippy-content{background-color:var(--bkg-color)!important;& img{max-width:20rem;max-height:20rem}}& div.tippy-arrow{color:var(--bkg-color)!important}}
|
|
14
14
|
</style><style>
|
|
15
|
-
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
15
|
+
header{border-top:1px solid #ddd;align-items:center;height:2rem;display:flex}.tool{display:none!important}.tool.visible,header:hover .tool{display:flex!important}.tool.active{order:100;opacity:1!important;display:flex!important}.label-container{flex-grow:1;align-items:center;display:flex;overflow:auto}.label-out-resolution span{font-style:italic}.resolution-tool{margin-left:.5rem}.legend{display:flex}.legend img{background:var(--svg-legend-bkg);height:fit-content;filter:var(--svg-map-filter)}.legend-icon{background:var(--svg-legend-bkg);max-height:1.5rem;filter:var(--svg-map-filter);margin-left:.5rem}.children{flex-basis:100%;order:10;padding-left:1.3rem}.dragAfter{border-bottom:1rem dashed #ccc}.dragBefore{border-top:1rem dashed #ccc}.gg-checkbox{width:1.2rem}.gg-caret,.gg-spacer{text-align:center;width:1.5rem;padding:0}.gg-caret{transform:scale(1.3)}.gg-caret.gg-rotate90{transform:scale(1.3)rotate(90deg)}.gg-small.gg-lock{min-width:1rem}.gg-opacity.gg-lock:hover{opacity:.5!important}.gg-tree-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-left:0;overflow:hidden}.gg-grab:hover{cursor:grab}.gg-selected{opacity:1}.legend-file{color:var(--text-color);font-style:italic;display:flex}@keyframes headerFade{0%{background-color:var(--highlight-color)}to{background-color:#0000}}.highlight{animation:3s ease-in-out forwards headerFade}
|
|
16
16
|
</style><style>
|
|
17
17
|
header{border:none;flex-direction:row-reverse;margin-top:.5rem;margin-bottom:.5rem;position:relative}.theme-button{font-size:1.2rem;font-weight:600}.theme-button span{margin-left:.5rem}.theme-button:hover{cursor:default;background-color:#0000;border:none}.children{padding-left:.5rem}.children:first-child{border:none}.label-container{position:absolute;inset:0}.label-container button{text-align:center;flex-grow:1}.tool{z-index:1}
|
|
18
18
|
</style>
|
|
19
19
|
<style>${this.customStyle}</style>
|
|
20
|
-
<link rel="stylesheet" href="lib/tippy.js/tippy.css"><link rel="stylesheet" href="lib/tippy.js/backdrop.css"><link rel="stylesheet" href="lib/tippy.js/border.css"><link rel="stylesheet" href="lib/tippy.js/svg-arrow.css"><div id="container"><header><div class="label-container"><button class="gg-icon-button gg-small theme-button" onclick="${() => this.layer.isExpanded = !this.layer.isExpanded}"><img alt="theme-icon" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NDAgNjQwIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIHY3LjAuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIENvcHlyaWdodCAyMDI1IEZvbnRpY29ucywgSW5jLi0tPjxwYXRoIGQ9Ik01NzYgMTEyQzU3NiAxMDMuNyA1NzEuNyA5NiA1NjQuNyA5MS42QzU1Ny43IDg3LjIgNTQ4LjggODYuOCA1NDEuNCA5MC41TDQxNi41IDE1Mi4xTDI0NCA5My40QzIzMC4zIDg4LjcgMjE1LjMgODkuNiAyMDIuMSA5NS43TDc3LjggMTU0LjNDNjkuNCAxNTguMiA2NCAxNjYuNyA2NCAxNzZMNjQgNTI4QzY0IDUzNi4yIDY4LjIgNTQzLjkgNzUuMSA1NDguM0M4MiA1NTIuNyA5MC43IDU1My4yIDk4LjIgNTQ5LjdMMjI1LjUgNDg5LjhMMzk2LjIgNTQ2LjdDNDA5LjkgNTUxLjMgNDI0LjcgNTUwLjQgNDM3LjggNTQ0LjJMNTYyLjIgNDg1LjdDNTcwLjYgNDgxLjcgNTc2IDQ3My4zIDU3NiA0NjRMNTc2IDExMnpNMjA4IDE0Ni4xTDIwOCA0NDUuMUwxMTIgNDkwLjNMMTEyIDE5MS4zTDIwOCAxNDYuMXpNMjU2IDQ0OS40TDI1NiAxNDguM0wzODQgMTkxLjhMMzg0IDQ5Mi4xTDI1NiA0NDkuNHpNNDMyIDE5OEw1MjggMTUwLjZMNTI4IDQ0OC44TDQzMiA0OTRMNDMyIDE5OHoiLz48L3N2Zz4="> <span i18n="${this.layer.name}" class="gg-tree-label">${this.layer.name}</span></button></div><button class="${this.getButtonClass('removable')}" tip="Remove theme" onclick="${() => this.deleteTheme()}"><img alt="Remove theme" src="icons/trash.svg"></button> <button id="drag-button" class="${this.getButtonClass('draggable')}" tip="Move"><img alt="Move layer" src="icons/drag.svg"></button></header><div class="${((this.layer.isExpanded && this.layer.isVisible) ? 'children' : 'hidden')}">${this.sortedChildren().filter(layer => layer.isVisible).map(layer => (layer instanceof GroupLayer) ? uHtmlFor(layer, layer.treeItemId) `<girafe-tree-view-group groupid="${layer.treeItemId}"></girafe-tree-view-group>` : uHtmlFor(layer, layer.treeItemId) `<girafe-tree-view-item layerid="${layer.treeItemId}"></girafe-tree-view-item>`)}</div></div>
|
|
20
|
+
<link rel="stylesheet" href="lib/tippy.js/tippy.css"><link rel="stylesheet" href="lib/tippy.js/backdrop.css"><link rel="stylesheet" href="lib/tippy.js/border.css"><link rel="stylesheet" href="lib/tippy.js/svg-arrow.css"><div id="container"><header><div class="label-container"><button class="gg-icon-button gg-small theme-button" onclick="${() => this.layer.isExpanded = !this.layer.isExpanded}"><img alt="theme-icon" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NDAgNjQwIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIHY3LjAuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIENvcHlyaWdodCAyMDI1IEZvbnRpY29ucywgSW5jLi0tPjxwYXRoIGQ9Ik01NzYgMTEyQzU3NiAxMDMuNyA1NzEuNyA5NiA1NjQuNyA5MS42QzU1Ny43IDg3LjIgNTQ4LjggODYuOCA1NDEuNCA5MC41TDQxNi41IDE1Mi4xTDI0NCA5My40QzIzMC4zIDg4LjcgMjE1LjMgODkuNiAyMDIuMSA5NS43TDc3LjggMTU0LjNDNjkuNCAxNTguMiA2NCAxNjYuNyA2NCAxNzZMNjQgNTI4QzY0IDUzNi4yIDY4LjIgNTQzLjkgNzUuMSA1NDguM0M4MiA1NTIuNyA5MC43IDU1My4yIDk4LjIgNTQ5LjdMMjI1LjUgNDg5LjhMMzk2LjIgNTQ2LjdDNDA5LjkgNTUxLjMgNDI0LjcgNTUwLjQgNDM3LjggNTQ0LjJMNTYyLjIgNDg1LjdDNTcwLjYgNDgxLjcgNTc2IDQ3My4zIDU3NiA0NjRMNTc2IDExMnpNMjA4IDE0Ni4xTDIwOCA0NDUuMUwxMTIgNDkwLjNMMTEyIDE5MS4zTDIwOCAxNDYuMXpNMjU2IDQ0OS40TDI1NiAxNDguM0wzODQgMTkxLjhMMzg0IDQ5Mi4xTDI1NiA0NDkuNHpNNDMyIDE5OEw1MjggMTUwLjZMNTI4IDQ0OC44TDQzMiA0OTRMNDMyIDE5OHoiLz48L3N2Zz4="> <span i18n="${this.layer.name}" class="gg-tree-label">${this.layer.name}</span></button></div>${this.isThemeComplete() ? '' : uHtml ` <button class="gg-icon-button gg-small tool visible theme-button" tip="Complete the theme" onclick="${() => this.completeTheme()}"><img alt="Complete the theme" src="icons/theme-checked.svg"></button> `} <button class="${this.getButtonClass('removable')}" tip="Remove theme" onclick="${() => this.deleteTheme()}"><img alt="Remove theme" src="icons/trash.svg"></button> <button id="drag-button" class="${this.getButtonClass('draggable')}" tip="Move"><img alt="Move layer" src="icons/drag.svg"></button></header><div class="${((this.layer.isExpanded && this.layer.isVisible) ? 'children' : 'hidden')}">${this.sortedChildren().filter(layer => layer.isVisible).map(layer => (layer instanceof GroupLayer) ? uHtmlFor(layer, layer.treeItemId) `<girafe-tree-view-group groupid="${layer.treeItemId}"></girafe-tree-view-group>` : uHtmlFor(layer, layer.treeItemId) `<girafe-tree-view-item layerid="${layer.treeItemId}"></girafe-tree-view-item>`)}</div></div>
|
|
21
21
|
${this.htmlUnsafe(this.feedbackTemplateHtml ?? '')}`;
|
|
22
22
|
};
|
|
23
23
|
layer;
|
|
@@ -37,7 +37,10 @@ ${this.htmlUnsafe(this.feedbackTemplateHtml ?? '')}`;
|
|
|
37
37
|
registerEvents() {
|
|
38
38
|
this.subscribe(/layers\.layersList\..*\.isExpanded/, (_oldValue, _newValue, theme) => this.refreshRender(theme));
|
|
39
39
|
this.subscribe(/layers\.layersList\..*\.activeState/, (_oldValue, _newValue, theme) => this.refreshRender(theme));
|
|
40
|
-
this.subscribe(/layers\.layersList\..*\.children/, (_oldValue, _newValue, group) =>
|
|
40
|
+
this.subscribe(/layers\.layersList\..*\.children/, (_oldValue, _newValue, group) => {
|
|
41
|
+
this.refreshRender(group);
|
|
42
|
+
this.refreshRender(group.parent);
|
|
43
|
+
});
|
|
41
44
|
this.subscribe(/layers\.layersList\..*\.filter/, (_oldValue, _newValue, layer) => this.refreshRender(layer));
|
|
42
45
|
this.subscribe(/layers\.layersList\..*\.order/, (_oldValue, _newValue, layer) => {
|
|
43
46
|
this.refreshRender(layer);
|
|
@@ -58,5 +61,17 @@ ${this.htmlUnsafe(this.feedbackTemplateHtml ?? '')}`;
|
|
|
58
61
|
this.removeFromParent();
|
|
59
62
|
this.state.themes.lastSelectedTheme = null;
|
|
60
63
|
}
|
|
64
|
+
isThemeComplete() {
|
|
65
|
+
return this.context.themesHelper.isThemeComplete(this.layer);
|
|
66
|
+
}
|
|
67
|
+
completeTheme() {
|
|
68
|
+
const originalTheme = this.context.themesHelper.getOriginalTheme(this.layer);
|
|
69
|
+
if (originalTheme) {
|
|
70
|
+
this.context.themesHelper.completeTheme(originalTheme);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.error('Cannot complete theme, original theme not found.');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
61
76
|
}
|
|
62
77
|
export default TreeViewThemeComponent;
|
package/package.json
CHANGED
package/styles/iframe.css
CHANGED
|
@@ -39,10 +39,27 @@ body {
|
|
|
39
39
|
overflow-y: hidden;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
#maps {
|
|
43
43
|
position: relative;
|
|
44
44
|
width: 100%;
|
|
45
45
|
height: 100%;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
girafe-map-2d {
|
|
50
|
+
display: block;
|
|
51
|
+
position: relative;
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 100%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
girafe-map-3d {
|
|
57
|
+
display: none;
|
|
58
|
+
position: absolute;
|
|
59
|
+
top: 0;
|
|
60
|
+
height: 100%;
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
border-left: solid 3px #444;
|
|
46
63
|
}
|
|
47
64
|
|
|
48
65
|
girafe-basemap {
|
package/styles/index.css
CHANGED
|
@@ -187,10 +187,27 @@ girafe-lr-panel > * {
|
|
|
187
187
|
height: 100%;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
#maps {
|
|
191
191
|
position: relative;
|
|
192
192
|
width: 100%;
|
|
193
193
|
flex-grow: 1;
|
|
194
|
+
overflow: hidden;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
girafe-map-2d {
|
|
198
|
+
display: block;
|
|
199
|
+
position: relative;
|
|
200
|
+
width: 100%;
|
|
201
|
+
height: 100%;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
girafe-map-3d {
|
|
205
|
+
display: none;
|
|
206
|
+
position: absolute;
|
|
207
|
+
top: 0;
|
|
208
|
+
height: 100%;
|
|
209
|
+
overflow: hidden;
|
|
210
|
+
border-left: solid 3px #444;
|
|
194
211
|
}
|
|
195
212
|
|
|
196
213
|
.info-area {
|
package/styles/mobile.css
CHANGED
|
@@ -91,10 +91,27 @@ girafe-search {
|
|
|
91
91
|
right: 0;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
#maps {
|
|
95
95
|
position: relative;
|
|
96
96
|
width: 100%;
|
|
97
97
|
height: 100%;
|
|
98
|
+
overflow: hidden;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
girafe-map-2d {
|
|
102
|
+
display: block;
|
|
103
|
+
position: relative;
|
|
104
|
+
width: 100%;
|
|
105
|
+
height: 100%;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
girafe-map-3d {
|
|
109
|
+
display: none;
|
|
110
|
+
position: absolute;
|
|
111
|
+
top: 0;
|
|
112
|
+
height: 100%;
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
border-left: solid 3px #444;
|
|
98
115
|
}
|
|
99
116
|
|
|
100
117
|
girafe-infobox {
|
package/templates/iframe.html
CHANGED
|
@@ -111,7 +111,10 @@
|
|
|
111
111
|
|
|
112
112
|
<div id="content">
|
|
113
113
|
<div id="main">
|
|
114
|
-
<
|
|
114
|
+
<div id="maps">
|
|
115
|
+
<girafe-map-2d></girafe-map-2d>
|
|
116
|
+
<girafe-map-3d></girafe-map-3d>
|
|
117
|
+
</div>
|
|
115
118
|
<girafe-basemap></girafe-basemap>
|
|
116
119
|
<girafe-search id="search"></girafe-search>
|
|
117
120
|
</div>
|
package/templates/index.html
CHANGED
|
@@ -134,7 +134,10 @@
|
|
|
134
134
|
<girafe-tree-view slot="main"></girafe-tree-view>
|
|
135
135
|
</girafe-lr-panel>
|
|
136
136
|
<div id="content-map">
|
|
137
|
-
<
|
|
137
|
+
<div id="maps">
|
|
138
|
+
<girafe-map-2d></girafe-map-2d>
|
|
139
|
+
<girafe-map-3d></girafe-map-3d>
|
|
140
|
+
</div>
|
|
138
141
|
<div class="info-area">
|
|
139
142
|
<girafe-basemap data-tour="basemap-selection"></girafe-basemap>
|
|
140
143
|
<girafe-infobox></girafe-infobox>
|
package/templates/mobile.html
CHANGED
|
@@ -92,7 +92,10 @@
|
|
|
92
92
|
<girafe-search></girafe-search>
|
|
93
93
|
<girafe-modals></girafe-modals>
|
|
94
94
|
<div id="content">
|
|
95
|
-
<
|
|
95
|
+
<div id="maps">
|
|
96
|
+
<girafe-map-2d></girafe-map-2d>
|
|
97
|
+
<girafe-map-3d></girafe-map-3d>
|
|
98
|
+
</div>
|
|
96
99
|
<girafe-infobox></girafe-infobox>
|
|
97
100
|
</div>
|
|
98
101
|
<girafe-swipe-up-panel>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.2.0-dev.
|
|
1
|
+
{"version":"1.2.0-dev.2829121016", "build":"2829121016", "date":"08/09/2026"}
|
package/templates/vite.config.js
CHANGED
|
@@ -74,31 +74,49 @@ export default defineConfig(({ command, mode }) => {
|
|
|
74
74
|
api: resolve(__dirname, 'api.html')
|
|
75
75
|
},
|
|
76
76
|
output: {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
77
|
+
codeSplitting: {
|
|
78
|
+
groups: [
|
|
79
|
+
// Dependencies that the application needs on startup and on which Cesium also depends
|
|
80
|
+
// (OpenLayers and dompurify). They need their own chunk, otherwise they end up in the
|
|
81
|
+
// (huge) cesium chunk, which would then have to be loaded on startup and would defeat
|
|
82
|
+
// the lazy loading of Cesium below.
|
|
83
|
+
// minSize: 0 prevents the group from being merged back into another chunk.
|
|
84
|
+
{
|
|
85
|
+
name: 'shared',
|
|
86
|
+
test: (id) => ['dompurify', 'ol'].some((dep) => id.includes(`node_modules/${dep}/`)),
|
|
87
|
+
priority: 30,
|
|
88
|
+
minSize: 0
|
|
89
|
+
},
|
|
90
|
+
// lazy loading for cesium dependencies
|
|
91
|
+
{
|
|
92
|
+
name: 'cesium',
|
|
93
|
+
test: (id) => ['cesium', 'olcs/OLCesium'].some((dep) => id.includes(`node_modules/${dep}`)),
|
|
94
|
+
priority: 20,
|
|
95
|
+
minSize: 0
|
|
96
|
+
},
|
|
97
|
+
// lazy loading for not priritary libraries
|
|
98
|
+
{
|
|
99
|
+
name: 'lazy',
|
|
100
|
+
test: (id) =>
|
|
101
|
+
[
|
|
102
|
+
'@geoblocks/mapfishprint',
|
|
103
|
+
'@geoblocks/print',
|
|
104
|
+
'buffer',
|
|
105
|
+
'd3',
|
|
106
|
+
'error-stack-parser',
|
|
107
|
+
'file-saver',
|
|
108
|
+
'tabulator-tables',
|
|
109
|
+
'lz-string',
|
|
110
|
+
'qr-code-styling',
|
|
111
|
+
'source-map-js',
|
|
112
|
+
'tippy.js',
|
|
113
|
+
'vanilla-picker',
|
|
114
|
+
'driver.js'
|
|
115
|
+
].some((dep) => id.includes(`node_modules/${dep}`)),
|
|
116
|
+
priority: 10,
|
|
117
|
+
minSize: 0
|
|
118
|
+
}
|
|
119
|
+
]
|
|
102
120
|
},
|
|
103
121
|
entryFileNames: (chunkInfo) => {
|
|
104
122
|
if (chunkInfo.name === 'api') {
|
|
@@ -8,7 +8,9 @@ import DrawingContainerMobile from '../../components/drawing-container-mobile/co
|
|
|
8
8
|
import DrawingComponentMobile from '../../components/drawing/component-mobile.js';
|
|
9
9
|
import GeolocationMobile from '../../components/geolocation-mobile/component.js';
|
|
10
10
|
import InfoboxComponent from '../../components/infobox/component.js';
|
|
11
|
-
import
|
|
11
|
+
import Map2dComponent from '../../components/map-2d/component.js';
|
|
12
|
+
import DeprecatedMapComponent from '../../components/map-2d/deprecatedmapcomponent.js';
|
|
13
|
+
import Map3dComponent from '../../components/map-3d/component.js';
|
|
12
14
|
import MenuMobile3dButton from '../../components/menu-buttons-mobile/MenuMobile3dButton.js';
|
|
13
15
|
import MenuMobileDrawingButton from '../../components/menu-buttons-mobile/MenuMobileDrawingButton.js';
|
|
14
16
|
import MenuMobileOfflineButton from '../../components/menu-buttons-mobile/MenuMobileOfflineButton.js';
|
|
@@ -44,7 +46,10 @@ export default class GeoGirafeAppMobile extends GeoGirafeApp {
|
|
|
44
46
|
}
|
|
45
47
|
defineCoreComponents() {
|
|
46
48
|
customElements.define('girafe-infobox', InfoboxComponent);
|
|
47
|
-
customElements.define('girafe-map',
|
|
49
|
+
customElements.define('girafe-map-2d', Map2dComponent);
|
|
50
|
+
customElements.define('girafe-map-3d', Map3dComponent);
|
|
51
|
+
// Deprecated alias of <girafe-map-2d>, kept for the applications that were not migrated yet.
|
|
52
|
+
customElements.define('girafe-map', DeprecatedMapComponent);
|
|
48
53
|
customElements.define('girafe-search', MobileSearchComponent);
|
|
49
54
|
customElements.define('girafe-offline', OfflineComponent);
|
|
50
55
|
customElements.define('girafe-theme-select', MobileThemeComponent);
|
|
@@ -17,7 +17,9 @@ import InfoboxComponent from '../../components/infobox/component.js';
|
|
|
17
17
|
import InfoWindowComponent from '../../components/infowindow/component.js';
|
|
18
18
|
import LayoutComponent from '../../components/layout/component.js';
|
|
19
19
|
import LRPanelComponent from '../../components/lr-panel/component.js';
|
|
20
|
-
import
|
|
20
|
+
import Map2dComponent from '../../components/map-2d/component.js';
|
|
21
|
+
import DeprecatedMapComponent from '../../components/map-2d/deprecatedmapcomponent.js';
|
|
22
|
+
import Map3dComponent from '../../components/map-3d/component.js';
|
|
21
23
|
import MenuButtonComponent from '../../components/menubutton/component.js';
|
|
22
24
|
import ModalsComponent from '../../components/modals/component.js';
|
|
23
25
|
import NavigationComponent from '../../components/navigation/component.js';
|
|
@@ -116,7 +118,10 @@ export default class GeoGirafeApp {
|
|
|
116
118
|
customElements.define('girafe-cross-section-settings', CrossSectionSettingsComponent);
|
|
117
119
|
customElements.define('girafe-cross-section-view', CrossSectionViewComponent);
|
|
118
120
|
customElements.define('girafe-lr-panel', LRPanelComponent);
|
|
119
|
-
customElements.define('girafe-map',
|
|
121
|
+
customElements.define('girafe-map-2d', Map2dComponent);
|
|
122
|
+
customElements.define('girafe-map-3d', Map3dComponent);
|
|
123
|
+
// Deprecated alias of <girafe-map-2d>, kept for the applications that were not migrated yet.
|
|
124
|
+
customElements.define('girafe-map', DeprecatedMapComponent);
|
|
120
125
|
customElements.define('girafe-menu-button', MenuButtonComponent);
|
|
121
126
|
customElements.define('girafe-modals', ModalsComponent);
|
|
122
127
|
customElements.define('girafe-nav-history', NavigationComponent);
|
|
@@ -29,6 +29,8 @@ import UrlManager from '../url/urlmanager.js';
|
|
|
29
29
|
import UserDataManager from '../userdata/userdatamanager.js';
|
|
30
30
|
import WfsManager from '../wfs/wfsmanager.js';
|
|
31
31
|
import WmsManager from '../wms/wmsmanager.js';
|
|
32
|
+
import WmtsManager from '../wmts/wmtsmanager.js';
|
|
33
|
+
import SelectionManager from '../selection/selectionmanager.js';
|
|
32
34
|
import IGirafeContext from './icontext.js';
|
|
33
35
|
import ThemeFavoritesManager from '../themes/themefavoritesmanager.js';
|
|
34
36
|
import SearchManager from '../search/searchmanager.js';
|
|
@@ -62,6 +64,8 @@ export default class GirafeContext implements IGirafeContext {
|
|
|
62
64
|
readonly orderingManager: OrderingManager;
|
|
63
65
|
readonly userLayerManager: UserLayerManager;
|
|
64
66
|
readonly wmsManager: WmsManager;
|
|
67
|
+
readonly wmtsManager: WmtsManager;
|
|
68
|
+
readonly selectionManager: SelectionManager;
|
|
65
69
|
readonly ogcApiFeaturesManager: OgcApiFeaturesManager;
|
|
66
70
|
readonly localFileManager: LocalFileManager;
|
|
67
71
|
readonly onBoardingManager: OnBoardingManager;
|
package/tools/context/context.js
CHANGED
|
@@ -30,6 +30,8 @@ import UrlManager from '../url/urlmanager.js';
|
|
|
30
30
|
import UserDataManager from '../userdata/userdatamanager.js';
|
|
31
31
|
import WfsManager from '../wfs/wfsmanager.js';
|
|
32
32
|
import WmsManager from '../wms/wmsmanager.js';
|
|
33
|
+
import WmtsManager from '../wmts/wmtsmanager.js';
|
|
34
|
+
import SelectionManager from '../selection/selectionmanager.js';
|
|
33
35
|
import ThemeFavoritesManager from '../themes/themefavoritesmanager.js';
|
|
34
36
|
import SearchManager from '../search/searchmanager.js';
|
|
35
37
|
import FeedbackManager from '../feedback/feedbackmanager.js';
|
|
@@ -62,6 +64,8 @@ export default class GirafeContext {
|
|
|
62
64
|
orderingManager;
|
|
63
65
|
userLayerManager;
|
|
64
66
|
wmsManager;
|
|
67
|
+
wmtsManager;
|
|
68
|
+
selectionManager;
|
|
65
69
|
ogcApiFeaturesManager;
|
|
66
70
|
localFileManager;
|
|
67
71
|
onBoardingManager;
|
|
@@ -97,6 +101,8 @@ export default class GirafeContext {
|
|
|
97
101
|
this.customThemesManager = new CustomThemesManager(this);
|
|
98
102
|
this.themesManager = new ThemesManager(this);
|
|
99
103
|
this.wmsManager = new WmsManager(this);
|
|
104
|
+
this.wmtsManager = new WmtsManager(this);
|
|
105
|
+
this.selectionManager = new SelectionManager(this);
|
|
100
106
|
this.localFileManager = new LocalFileManager(this);
|
|
101
107
|
this.ogcApiFeaturesManager = new OgcApiFeaturesManager(this);
|
|
102
108
|
this.onBoardingManager = new OnBoardingManager(this);
|
|
@@ -136,7 +142,9 @@ export default class GirafeContext {
|
|
|
136
142
|
this.customThemesManager.initializeSingleton();
|
|
137
143
|
this.themesManager.initializeSingleton();
|
|
138
144
|
this.wmsManager.initializeSingleton();
|
|
145
|
+
this.wmtsManager.initializeSingleton();
|
|
139
146
|
this.localFileManager.initializeSingleton();
|
|
147
|
+
this.selectionManager.initializeSingleton();
|
|
140
148
|
this.ogcApiFeaturesManager.initializeSingleton();
|
|
141
149
|
this.onBoardingManager.initializeSingleton();
|
|
142
150
|
this.themeFavoritesManager.initializeSingleton();
|
|
@@ -29,6 +29,8 @@ import UrlManager from '../url/urlmanager.js';
|
|
|
29
29
|
import UserDataManager from '../userdata/userdatamanager.js';
|
|
30
30
|
import WfsManager from '../wfs/wfsmanager.js';
|
|
31
31
|
import WmsManager from '../wms/wmsmanager.js';
|
|
32
|
+
import WmtsManager from '../wmts/wmtsmanager.js';
|
|
33
|
+
import SelectionManager from '../selection/selectionmanager.js';
|
|
32
34
|
import ThemeFavoritesManager from '../themes/themefavoritesmanager.js';
|
|
33
35
|
import SearchManager from '../search/searchmanager.js';
|
|
34
36
|
import FeedbackManager from '../feedback/feedbackmanager.js';
|
|
@@ -61,6 +63,8 @@ export default interface IGirafeContext {
|
|
|
61
63
|
readonly orderingManager: OrderingManager;
|
|
62
64
|
readonly userLayerManager: UserLayerManager;
|
|
63
65
|
readonly wmsManager: WmsManager;
|
|
66
|
+
readonly wmtsManager: WmtsManager;
|
|
67
|
+
readonly selectionManager: SelectionManager;
|
|
64
68
|
readonly ogcApiFeaturesManager: OgcApiFeaturesManager;
|
|
65
69
|
readonly localFileManager: LocalFileManager;
|
|
66
70
|
readonly onBoardingManager: OnBoardingManager;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Map3dComponent from '../../components/map-3d/component.js';
|
|
2
2
|
import IGirafeContext from '../context/icontext.js';
|
|
3
3
|
export default class CesiumDrawing {
|
|
4
4
|
private readonly stateLocation;
|
|
5
5
|
private activeShapePoints;
|
|
6
6
|
private activeShapes;
|
|
7
7
|
private floatingPoint;
|
|
8
|
-
private scene;
|
|
9
|
-
private handler;
|
|
10
|
-
private entities;
|
|
8
|
+
private readonly scene;
|
|
9
|
+
private readonly handler;
|
|
10
|
+
private readonly entities;
|
|
11
11
|
private fixedLineLength;
|
|
12
12
|
private drawingText;
|
|
13
13
|
private readonly context;
|
|
14
14
|
private get state();
|
|
15
15
|
private get drawingState();
|
|
16
16
|
private get config();
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* The 3D Map has to be loaded before creating a CesiumDrawing.
|
|
19
|
+
* This class is loaded on demand, so that Cesium stays out of the initial bundle.
|
|
20
|
+
*/
|
|
21
|
+
constructor(map: Map3dComponent, stateLocation: string, context: IGirafeContext);
|
|
18
22
|
setFixedLineLength(length: number): void;
|
|
19
23
|
setDrawingText(text: string): void;
|
|
20
24
|
/**
|