@vcmap/ui 6.1.0-rc.2 → 6.1.0-rc.4

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.
Files changed (105) hide show
  1. package/config/base.config.json +6 -0
  2. package/config/clipping.config.json +384 -0
  3. package/config/cluster.config.json +106 -0
  4. package/config/concepts-show-case.config.json +4 -0
  5. package/config/projects.config.json +5 -2
  6. package/dist/assets/{cesium-57fbd309.js → cesium-bfb31a03.js} +438 -432
  7. package/dist/assets/cesium.js +1 -1
  8. package/dist/assets/{core-fd079400.js → core-28960288.js} +4913 -4516
  9. package/dist/assets/core.js +1 -1
  10. package/dist/assets/{ol-50dfef96.js → ol-338a87a3.js} +23518 -22404
  11. package/dist/assets/ol.js +1 -1
  12. package/dist/assets/ui-4ae4c67a.css +1 -0
  13. package/dist/assets/{ui-5135917c.js → ui-4ae4c67a.js} +13456 -12758
  14. package/dist/assets/ui.js +1 -1
  15. package/dist/assets/vue.js +1 -1
  16. package/dist/assets/{vuetify-f02b7bb9.css → vuetify-1f5b5c90.css} +2 -2
  17. package/dist/assets/{vuetify-f02b7bb9.js → vuetify-1f5b5c90.js} +8024 -7634
  18. package/dist/assets/vuetify.js +1 -1
  19. package/index.d.ts +38 -19
  20. package/index.js +35 -6
  21. package/lib/olLib.js +25 -3
  22. package/package.json +6 -6
  23. package/plugins/@vcmap-show-case/callback-tester/README.md +3 -0
  24. package/plugins/@vcmap-show-case/callback-tester/package.json +5 -0
  25. package/plugins/@vcmap-show-case/callback-tester/src/CallbackTester.vue +62 -0
  26. package/plugins/@vcmap-show-case/callback-tester/src/index.js +48 -0
  27. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +1 -0
  28. package/src/actions/actionHelper.d.ts +1 -0
  29. package/src/actions/actionHelper.js +70 -19
  30. package/src/application/VcsApp.vue +83 -50
  31. package/src/application/VcsApp.vue.d.ts +24 -2
  32. package/src/application/VcsContainer.vue.d.ts +8 -0
  33. package/src/application/VcsObliqueFooter.vue +9 -3
  34. package/src/application/VcsSplashScreen.vue +37 -0
  35. package/src/application/VcsSplashScreen.vue.d.ts +6 -0
  36. package/src/application/positionDisplayInteraction.js +1 -1
  37. package/src/callback/activateClippingPolygonCallback.d.ts +29 -0
  38. package/src/callback/activateClippingPolygonCallback.js +54 -0
  39. package/src/callback/closeSplashScreenCallback.d.ts +8 -0
  40. package/src/callback/closeSplashScreenCallback.js +33 -0
  41. package/src/callback/deactivateClippingPolygonCallback.d.ts +29 -0
  42. package/src/callback/deactivateClippingPolygonCallback.js +54 -0
  43. package/src/callback/openSplashScreenCallback.d.ts +8 -0
  44. package/src/callback/openSplashScreenCallback.js +35 -0
  45. package/src/callback/toggleNavbarButtonCallback.d.ts +36 -0
  46. package/src/callback/toggleNavbarButtonCallback.js +62 -0
  47. package/src/components/form-inputs-controls/VcsSelect.vue +1 -1
  48. package/src/components/form-inputs-controls/VcsTextArea.vue +12 -7
  49. package/src/components/form-output/markdownHelper.d.ts +0 -25
  50. package/src/components/form-output/markdownHelper.js +1 -386
  51. package/src/components/lists/VcsGroupedList.vue +178 -0
  52. package/src/components/lists/VcsGroupedList.vue.d.ts +17 -0
  53. package/src/components/lists/VcsList.vue +142 -396
  54. package/src/components/lists/VcsList.vue.d.ts +38 -168
  55. package/src/components/lists/VcsTreeview.vue +11 -12
  56. package/src/components/lists/listHelper.d.ts +87 -0
  57. package/src/components/lists/listHelper.js +348 -0
  58. package/src/components/section/VcsFormSection.vue +7 -2
  59. package/src/components/section/VcsFormSection.vue.d.ts +9 -0
  60. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -1
  61. package/src/contentTree/LayerTree.vue +2 -1
  62. package/src/contentTree/LayerTree.vue.d.ts +2 -0
  63. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  64. package/src/contentTree/contentTreeCollection.js +7 -3
  65. package/src/contentTree/contentTreeItem.js +4 -2
  66. package/src/contentTree/groupContentTreeItem.js +5 -3
  67. package/src/featureInfo/ClusterFeatureComponent.vue +58 -0
  68. package/src/featureInfo/ClusterFeatureComponent.vue.d.ts +6 -0
  69. package/src/featureInfo/abstractFeatureInfoView.js +1 -2
  70. package/src/featureInfo/featureInfo.d.ts +87 -1
  71. package/src/featureInfo/featureInfo.js +350 -34
  72. package/src/featureInfo/featureInfoInteraction.js +18 -3
  73. package/src/featureInfo/iframeFeatureInfoView.js +1 -1
  74. package/src/featureInfo/markdownBalloonFeatureInfoView.js +2 -4
  75. package/src/featureInfo/markdownFeatureInfoView.js +1 -1
  76. package/src/i18n/de.d.ts +17 -4
  77. package/src/i18n/de.js +7 -0
  78. package/src/i18n/en.d.ts +17 -4
  79. package/src/i18n/en.js +7 -0
  80. package/src/legend/legendHelper.d.ts +1 -1
  81. package/src/legend/legendHelper.js +52 -9
  82. package/src/localStorage.d.ts +21 -0
  83. package/src/localStorage.js +51 -0
  84. package/src/manager/collectionManager/CollectionComponent.vue +1 -1
  85. package/src/manager/collectionManager/CollectionComponentContent.vue +2 -3
  86. package/src/manager/collectionManager/CollectionComponentList.vue +2 -3
  87. package/src/manager/collectionManager/CollectionComponentStandalone.vue +1 -1
  88. package/src/manager/navbarManager.js +9 -4
  89. package/src/manager/toolbox/ToolboxManagerComponent.vue +10 -8
  90. package/src/manager/toolbox/ToolboxManagerComponent.vue.d.ts +11 -0
  91. package/src/manager/window/windowHelper.d.ts +7 -3
  92. package/src/manager/window/windowHelper.js +30 -10
  93. package/src/navigation/overviewMap.d.ts +1 -0
  94. package/src/navigation/overviewMap.js +4 -3
  95. package/src/pluginHelper.d.ts +7 -0
  96. package/src/pluginHelper.js +18 -4
  97. package/src/search/ResultItem.vue.d.ts +1 -1
  98. package/src/search/search.js +1 -1
  99. package/src/state.d.ts +4 -2
  100. package/src/state.js +54 -31
  101. package/src/uiConfig.d.ts +27 -0
  102. package/src/uiConfig.js +16 -1
  103. package/src/vcsUiApp.js +7 -11
  104. package/dist/assets/ui-5135917c.css +0 -1
  105. /package/dist/assets/{vue-c3c55d88.js → vue-b5c1e81a.js} +0 -0
@@ -55,7 +55,7 @@ class PositionDisplayInteraction extends AbstractInteraction {
55
55
  * @returns {Promise<import("@vcmap/core").InteractionEvent>}
56
56
  */
57
57
  pipe(event) {
58
- if (!event.position.every((pos) => pos === 0)) {
58
+ if (event.position && !event.position.every((pos) => pos === 0)) {
59
59
  this.position.value = [...event.position];
60
60
  }
61
61
  return Promise.resolve(event);
@@ -0,0 +1,29 @@
1
+ export default ActivateClippingPolygonCallback;
2
+ export type ActivateClippingPolygonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
3
+ names: string[];
4
+ };
5
+ /**
6
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} ActivateClippingPolygonOptions
7
+ * @property {string[]} names - names of the ClippingPolygonObjects to activate
8
+ */
9
+ /**
10
+ * @class
11
+ * @extends {VcsCallback}
12
+ */
13
+ declare class ActivateClippingPolygonCallback extends VcsCallback {
14
+ /**
15
+ * @param {ActivateClippingPolygonOptions} options
16
+ * @param {import("@src/vcsUiApp.js").default} app
17
+ */
18
+ constructor(options: ActivateClippingPolygonOptions, app: import("@src/vcsUiApp.js").default);
19
+ /**
20
+ * @type {string[]}
21
+ * @private
22
+ */
23
+ private _names;
24
+ /**
25
+ * @returns {ActivateClippingPolygonOptions}
26
+ */
27
+ toJSON(): ActivateClippingPolygonOptions;
28
+ }
29
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,54 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} ActivateClippingPolygonOptions
5
+ * @property {string[]} names - names of the ClippingPolygonObjects to activate
6
+ */
7
+
8
+ /**
9
+ * @class
10
+ * @extends {VcsCallback}
11
+ */
12
+ class ActivateClippingPolygonCallback extends VcsCallback {
13
+ /**
14
+ * @type {string}
15
+ */
16
+ static get className() {
17
+ return 'ActivateClippingPolygonCallback';
18
+ }
19
+
20
+ /**
21
+ * @param {ActivateClippingPolygonOptions} options
22
+ * @param {import("@src/vcsUiApp.js").default} app
23
+ */
24
+ constructor(options, app) {
25
+ super(options, app);
26
+ /**
27
+ * @type {string[]}
28
+ * @private
29
+ */
30
+ this._names = options.names;
31
+ }
32
+
33
+ callback() {
34
+ this._names
35
+ .map((n) => this._app.clippingPolygons.getByKey(n))
36
+ .filter((l) => l)
37
+ .forEach((l) => l.activate());
38
+ }
39
+
40
+ /**
41
+ * @returns {ActivateClippingPolygonOptions}
42
+ */
43
+ toJSON() {
44
+ const config = super.toJSON();
45
+ config.names = this._names.slice();
46
+ return config;
47
+ }
48
+ }
49
+
50
+ export default ActivateClippingPolygonCallback;
51
+ callbackClassRegistry.registerClass(
52
+ ActivateClippingPolygonCallback.className,
53
+ ActivateClippingPolygonCallback,
54
+ );
@@ -0,0 +1,8 @@
1
+ export default CloseSplashScreenCallback;
2
+ /**
3
+ * @class
4
+ * @extends {VcsCallback}
5
+ */
6
+ declare class CloseSplashScreenCallback extends VcsCallback {
7
+ }
8
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,33 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @class
5
+ * @extends {VcsCallback}
6
+ */
7
+ class CloseSplashScreenCallback extends VcsCallback {
8
+ /**
9
+ * @type {string}
10
+ */
11
+ static get className() {
12
+ return 'CloseSplashScreenCallback';
13
+ }
14
+
15
+ callback() {
16
+ this._app.uiConfig.showSplashScreen = false;
17
+ }
18
+
19
+ /**
20
+ * @returns {import('./vcsCallback.js').VcsCallbackOptions}
21
+ */
22
+ toJSON() {
23
+ return super.toJSON();
24
+ }
25
+ }
26
+
27
+ export default CloseSplashScreenCallback;
28
+
29
+ // Register the class
30
+ callbackClassRegistry.registerClass(
31
+ CloseSplashScreenCallback.className,
32
+ CloseSplashScreenCallback,
33
+ );
@@ -0,0 +1,29 @@
1
+ export default DeactivateClippingPolygonCallback;
2
+ export type DeactivateClippingPolygonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
3
+ names: string[];
4
+ };
5
+ /**
6
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} DeactivateClippingPolygonOptions
7
+ * @property {string[]} names - names of the ClippingPolygonObjects to deactivate
8
+ */
9
+ /**
10
+ * @class
11
+ * @extends {VcsCallback}
12
+ */
13
+ declare class DeactivateClippingPolygonCallback extends VcsCallback {
14
+ /**
15
+ * @param {DeactivateClippingPolygonOptions} options
16
+ * @param {import("@src/vcsUiApp.js").default} app
17
+ */
18
+ constructor(options: DeactivateClippingPolygonOptions, app: import("@src/vcsUiApp.js").default);
19
+ /**
20
+ * @type {string[]}
21
+ * @private
22
+ */
23
+ private _names;
24
+ /**
25
+ * @returns {DeactivateClippingPolygonOptions}
26
+ */
27
+ toJSON(): DeactivateClippingPolygonOptions;
28
+ }
29
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,54 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} DeactivateClippingPolygonOptions
5
+ * @property {string[]} names - names of the ClippingPolygonObjects to deactivate
6
+ */
7
+
8
+ /**
9
+ * @class
10
+ * @extends {VcsCallback}
11
+ */
12
+ class DeactivateClippingPolygonCallback extends VcsCallback {
13
+ /**
14
+ * @type {string}
15
+ */
16
+ static get className() {
17
+ return 'DeactivateClippingPolygonCallback';
18
+ }
19
+
20
+ /**
21
+ * @param {DeactivateClippingPolygonOptions} options
22
+ * @param {import("@src/vcsUiApp.js").default} app
23
+ */
24
+ constructor(options, app) {
25
+ super(options, app);
26
+ /**
27
+ * @type {string[]}
28
+ * @private
29
+ */
30
+ this._names = options.names;
31
+ }
32
+
33
+ callback() {
34
+ this._names
35
+ .map((n) => this._app.clippingPolygons.getByKey(n))
36
+ .filter((l) => l)
37
+ .forEach((l) => l.deactivate());
38
+ }
39
+
40
+ /**
41
+ * @returns {DeactivateClippingPolygonOptions}
42
+ */
43
+ toJSON() {
44
+ const config = super.toJSON();
45
+ config.names = this._names.slice();
46
+ return config;
47
+ }
48
+ }
49
+
50
+ export default DeactivateClippingPolygonCallback;
51
+ callbackClassRegistry.registerClass(
52
+ DeactivateClippingPolygonCallback.className,
53
+ DeactivateClippingPolygonCallback,
54
+ );
@@ -0,0 +1,8 @@
1
+ export default OpenSplashScreenCallback;
2
+ /**
3
+ * @class
4
+ * @extends {VcsCallback}
5
+ */
6
+ declare class OpenSplashScreenCallback extends VcsCallback {
7
+ }
8
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,35 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @class
5
+ * @extends {VcsCallback}
6
+ */
7
+ class OpenSplashScreenCallback extends VcsCallback {
8
+ /**
9
+ * @type {string}
10
+ */
11
+ static get className() {
12
+ return 'OpenSplashScreenCallback';
13
+ }
14
+
15
+ callback() {
16
+ if (this._app.uiConfig.getByKey('splashScreen')) {
17
+ this._app.uiConfig.showSplashScreen = true;
18
+ }
19
+ }
20
+
21
+ /**
22
+ * @returns {import('./vcsCallback.js').VcsCallbackOptions}
23
+ */
24
+ toJSON() {
25
+ return super.toJSON();
26
+ }
27
+ }
28
+
29
+ export default OpenSplashScreenCallback;
30
+
31
+ // Register the class
32
+ callbackClassRegistry.registerClass(
33
+ OpenSplashScreenCallback.className,
34
+ OpenSplashScreenCallback,
35
+ );
@@ -0,0 +1,36 @@
1
+ export default ToggleNavbarButtonCallback;
2
+ export type ToggleNavbarButtonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
3
+ buttonId: string;
4
+ activeState?: boolean;
5
+ };
6
+ /**
7
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { buttonId: string, activeState?:boolean }} ToggleNavbarButtonOptions
8
+ * @property {string} buttonId - id of the Navbar button
9
+ * @property {boolean} [activeState] - state to be applied to the button
10
+ */
11
+ /**
12
+ * @class
13
+ * @extends {VcsCallback}
14
+ */
15
+ declare class ToggleNavbarButtonCallback extends VcsCallback {
16
+ /**
17
+ * @param {ToggleNavbarButtonOptions} options
18
+ * @param {import("@src/vcsUiApp.js").default} app
19
+ */
20
+ constructor(options: ToggleNavbarButtonOptions, app: import("@src/vcsUiApp.js").default);
21
+ /**
22
+ * @type {string}
23
+ * @private
24
+ */
25
+ private _buttonId;
26
+ /**
27
+ * @type {boolean|undefined}
28
+ * @private
29
+ */
30
+ private _activeState;
31
+ /**
32
+ * @returns {ToggleNavbarButtonOptions}
33
+ */
34
+ toJSON(): ToggleNavbarButtonOptions;
35
+ }
36
+ import VcsCallback from './vcsCallback.js';
@@ -0,0 +1,62 @@
1
+ import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
2
+
3
+ /**
4
+ * @typedef {import("./vcsCallback.js").VcsCallbackOptions & { buttonId: string, activeState?:boolean }} ToggleNavbarButtonOptions
5
+ * @property {string} buttonId - id of the Navbar button
6
+ * @property {boolean} [activeState] - state to be applied to the button
7
+ */
8
+
9
+ /**
10
+ * @class
11
+ * @extends {VcsCallback}
12
+ */
13
+ class ToggleNavbarButtonCallback extends VcsCallback {
14
+ /**
15
+ * @type {string}
16
+ */
17
+ static get className() {
18
+ return 'ToggleNavbarButtonCallback';
19
+ }
20
+
21
+ /**
22
+ * @param {ToggleNavbarButtonOptions} options
23
+ * @param {import("@src/vcsUiApp.js").default} app
24
+ */
25
+ constructor(options, app) {
26
+ super(options, app);
27
+ /**
28
+ * @type {string}
29
+ * @private
30
+ */
31
+ this._buttonId = options.buttonId;
32
+ /**
33
+ * @type {boolean|undefined}
34
+ * @private
35
+ */
36
+ this._activeState = options.activeState;
37
+ }
38
+
39
+ callback() {
40
+ this._app.navbarManager.toggle(this._buttonId, this._activeState);
41
+ }
42
+
43
+ /**
44
+ * @returns {ToggleNavbarButtonOptions}
45
+ */
46
+ toJSON() {
47
+ const config = super.toJSON();
48
+ config.buttonId = this._buttonId;
49
+ if (this._activeState) {
50
+ config.activeState = this._activeState;
51
+ }
52
+ return config;
53
+ }
54
+ }
55
+
56
+ export default ToggleNavbarButtonCallback;
57
+
58
+ // Register the class
59
+ callbackClassRegistry.registerClass(
60
+ ToggleNavbarButtonCallback.className,
61
+ ToggleNavbarButtonCallback,
62
+ );
@@ -52,7 +52,7 @@
52
52
  <template #prepend="prependScope" v-if="multiple">
53
53
  <VcsCheckbox
54
54
  v-model="prependScope.isSelected"
55
- class="py-0"
55
+ class="py-0 pr-1"
56
56
  ></VcsCheckbox>
57
57
  </template>
58
58
  </v-list-item>
@@ -72,24 +72,27 @@
72
72
  border-color: rgb(var(--v-theme-primary));
73
73
  }
74
74
 
75
- :deep(.v-field--focused .v-field__outline__end) {
76
- border-width: 1px 1px 1px 0 !important;
77
- }
78
75
  :deep(.v-field--focused .v-field__outline__start) {
79
76
  border-width: 1px 0 1px 1px !important;
80
77
  }
78
+ :deep(.v-field--focused .v-field__outline__notch)::after {
79
+ border-width: 0 0 1px 0 !important;
80
+ }
81
+ :deep(.v-field--focused .v-field__outline__end) {
82
+ border-width: 1px 1px 1px 0 !important;
83
+ }
81
84
 
82
85
  // remove outline, if not focused, hovered or an error
83
86
  :deep(.v-field:not(.v-field--focused):not(.v-field--error):not(:hover)) {
84
87
  .v-field__outline * {
85
- border-width: 0 0 0 0;
88
+ border-width: 0 0 1px 0 !important;
86
89
  border-radius: 0;
87
90
  }
91
+ .v-field__outline__start {
92
+ margin-left: 4px;
93
+ }
88
94
  .v-field__outline__end {
89
- border-width: 0 0 1px 0 !important;
90
- border-radius: 0;
91
95
  margin-right: 4px;
92
- margin-left: -8px;
93
96
  }
94
97
  .v-field__loader {
95
98
  padding-left: 3px;
@@ -102,6 +105,8 @@
102
105
  .v-field__outline * label {
103
106
  color: rgb(var(--v-theme-primary));
104
107
  margin-left: -4px;
108
+ border-width: 0 0 0 0;
109
+ border-radius: 0;
105
110
  }
106
111
  }
107
112
  :deep(.v-field .v-field--focused .v-field--error):hover {
@@ -1,30 +1,5 @@
1
- /**
2
- * @typedef {Object} Block
3
- * @property {RegExpExecArray} opening
4
- * @property {RegExpExecArray} closing
5
- */
6
- /**
7
- * @typedef {Block} ConditionalBlock
8
- * @property {RegExpExecArray|undefined} elseStatement
9
- * @property {RegExpExecArray[]} elseIfs
10
- */
11
1
  /**
12
2
  * @param {string} content
13
3
  * @returns {string}
14
4
  */
15
5
  export function parseAndSanitizeMarkdown(content: string): string;
16
- /**
17
- * Renders a template in these steps
18
- * 1. expand conditional blocks. this will remove any blocks that do not match their expressions and choose from if / elseif / else block which of them to render
19
- * 2. expand iterations. this will create new templates for each iteration and re-run the rendering for those blocks
20
- * 3. render attributes. this will add the attributes to all the blocks not within each blocks
21
- * @param {string|string[]} template
22
- * @param {Record<string, unknown>} data
23
- * @returns {string}
24
- */
25
- export function renderTemplate(template: string | string[], data: Record<string, unknown>): string;
26
- export type Block = {
27
- opening: RegExpExecArray;
28
- closing: RegExpExecArray;
29
- };
30
- export type ConditionalBlock = Block;