@vcmap/ui 5.0.0-rc.26 → 5.0.0-rc.27

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 (102) hide show
  1. package/build/buildCesium.js +7 -0
  2. package/config/dev.config.json +4 -0
  3. package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +21 -0
  4. package/dist/assets/cesium/ThirdParty/Workers/draco_decoder_nodejs.js +117 -0
  5. package/dist/assets/cesium/ThirdParty/Workers/package.json +1 -0
  6. package/dist/assets/cesium/ThirdParty/Workers/pako_deflate.min.js +2 -0
  7. package/dist/assets/cesium/ThirdParty/Workers/pako_inflate.min.js +2 -0
  8. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -0
  9. package/dist/assets/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  10. package/dist/assets/cesium/ThirdParty/draco_decoder.wasm +0 -0
  11. package/dist/assets/cesium/ThirdParty/google-earth-dbroot-parser.js +8337 -0
  12. package/dist/assets/{cesium.305b7c.js → cesium.82fdbe.js} +4 -4
  13. package/dist/assets/cesium.js +1 -1
  14. package/dist/assets/{core.f3d6d4.js → core.df069a.js} +2 -2
  15. package/dist/assets/core.js +1 -1
  16. package/dist/assets/index-1cff371d.js +1 -0
  17. package/dist/assets/ol.js +1 -1
  18. package/dist/assets/style/icon-marker-blue.534e37.png +0 -0
  19. package/dist/assets/style/icon-marker-green.0b6a92.png +0 -0
  20. package/dist/assets/style/icon-marker-o-blue.7b6d62.png +0 -0
  21. package/dist/assets/style/icon-marker-o-green.c863c0.png +0 -0
  22. package/dist/assets/style/icon-marker-o-red.93ff58.png +0 -0
  23. package/dist/assets/style/icon-marker-o.036477.png +0 -0
  24. package/dist/assets/style/icon-marker-red.313d03.png +0 -0
  25. package/dist/assets/style/icon-marker.70960f.png +0 -0
  26. package/dist/assets/style/icon-pin-blue.7be369.png +0 -0
  27. package/dist/assets/style/icon-pin-green.cbb935.png +0 -0
  28. package/dist/assets/style/icon-pin-red.3f25b2.png +0 -0
  29. package/dist/assets/style/icon-pin.b7ce77.png +0 -0
  30. package/dist/assets/{ui.74022f.css → ui.3ed7ff.css} +2 -2
  31. package/dist/assets/ui.3ed7ff.js +14763 -0
  32. package/dist/assets/ui.js +1 -1
  33. package/dist/assets/vue.js +2 -2
  34. package/dist/assets/{vuetify.30486f.js → vuetify.614278.js} +1 -1
  35. package/dist/assets/vuetify.js +2 -2
  36. package/dist/index.html +1 -1
  37. package/index.js +17 -1
  38. package/package.json +1 -1
  39. package/plugins/@vcmap/create-link/index.js +8 -8
  40. package/plugins/@vcmap-show-case/collection-manager-example/index.js +6 -1
  41. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +36 -8
  42. package/plugins/@vcmap-show-case/form-inputs-example/exampleActions.js +0 -19
  43. package/plugins/@vcmap-show-case/form-inputs-example/index.js +1 -2
  44. package/plugins/@vcmap-show-case/style-input-example/README.md +4 -0
  45. package/plugins/@vcmap-show-case/style-input-example/index.js +42 -0
  46. package/plugins/@vcmap-show-case/style-input-example/package.json +5 -0
  47. package/plugins/@vcmap-show-case/style-input-example/styleExample.vue +191 -0
  48. package/plugins/@vcmap-show-case/window-tester/WindowExample.vue +12 -13
  49. package/plugins/@vcmap-show-case/window-tester/windowExampleToggleChild.vue +44 -0
  50. package/public/assets/style/icon-marker-blue.png +0 -0
  51. package/public/assets/style/icon-marker-green.png +0 -0
  52. package/public/assets/style/icon-marker-o-blue.png +0 -0
  53. package/public/assets/style/icon-marker-o-green.png +0 -0
  54. package/public/assets/style/icon-marker-o-red.png +0 -0
  55. package/public/assets/style/icon-marker-o.png +0 -0
  56. package/public/assets/style/icon-marker-red.png +0 -0
  57. package/public/assets/style/icon-marker.png +0 -0
  58. package/public/assets/style/icon-pin-blue.png +0 -0
  59. package/public/assets/style/icon-pin-green.png +0 -0
  60. package/public/assets/style/icon-pin-red.png +0 -0
  61. package/public/assets/style/icon-pin.png +0 -0
  62. package/src/actions/actionHelper.js +1 -0
  63. package/src/application/VcsApp.vue +7 -1
  64. package/src/components/buttons/VcsActionButtonList.vue +1 -0
  65. package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -2
  66. package/src/components/form-inputs-controls/VcsFormSection.vue +59 -9
  67. package/src/components/form-inputs-controls/VcsLabel.vue +10 -0
  68. package/src/components/form-inputs-controls/VcsRadioGrid.vue +175 -0
  69. package/src/components/form-inputs-controls/VcsSelect.vue +3 -0
  70. package/src/components/form-inputs-controls/VcsTextField.vue +12 -0
  71. package/src/components/icons/+all.js +4 -0
  72. package/src/components/icons/EditVerticesIcon.vue +39 -0
  73. package/src/components/lists/VcsActionList.vue +2 -0
  74. package/src/components/style/MenuWrapper.vue +138 -0
  75. package/src/components/style/VcsFillMenu.vue +61 -0
  76. package/src/components/style/VcsFillSelector.vue +45 -0
  77. package/src/components/style/VcsImageMenu.vue +84 -0
  78. package/src/components/style/VcsImageSelector.vue +609 -0
  79. package/src/components/style/VcsStrokeMenu.vue +73 -0
  80. package/src/components/style/VcsStrokeSelector.vue +87 -0
  81. package/src/components/style/VcsTextMenu.vue +81 -0
  82. package/src/components/style/VcsTextSelector.vue +271 -0
  83. package/src/components/style/VcsVectorStyleComponent.vue +119 -0
  84. package/src/components/style/composables.js +84 -0
  85. package/src/contentTree/contentTreeCollection.js +1 -0
  86. package/src/i18n/de.js +51 -17
  87. package/src/i18n/en.js +56 -22
  88. package/src/legend/vcsLegend.vue +7 -5
  89. package/src/manager/collectionManager/CollectionComponent.vue +9 -17
  90. package/src/manager/collectionManager/CollectionComponentList.vue +22 -9
  91. package/src/manager/collectionManager/CollectionManager.vue +20 -1
  92. package/src/manager/collectionManager/collectionComponent.js +11 -0
  93. package/src/manager/window/WindowComponent.vue +2 -1
  94. package/src/manager/window/WindowManager.vue +23 -9
  95. package/src/manager/window/windowHelper.js +76 -4
  96. package/src/manager/window/windowManager.js +38 -6
  97. package/src/vcsUiApp.js +1 -0
  98. package/dist/assets/index-f94d5be3.js +0 -1
  99. package/dist/assets/ui.74022f.js +0 -13466
  100. /package/dist/assets/{ol.39cc05.js → ol.90a5d0.js} +0 -0
  101. /package/dist/assets/{vue.9b8c6e.js → vue.537ff3.js} +0 -0
  102. /package/dist/assets/{vuetify.30486f.css → vuetify.614278.css} +0 -0
@@ -11,12 +11,14 @@ import { vcsAppSymbol } from '../../pluginHelper.js';
11
11
  * @property {string} STATIC - Static windows cannot be moved and will be positioned top-left.
12
12
  * @property {string} DYNAMIC_LEFT - Positioned top-left, if no static window is present. Can be moved by user interaction.
13
13
  * @property {string} DYNAMIC_RIGHT - Positioned top-right. Can be moved by user interaction.
14
+ * @property {string} DYNAMIC_CHILD - Positioned top-right of a parent window. Can be moved by user interaction. Will be moved with parent window, if docked. Requires parentId.
14
15
  * @property {string} DETACHED - Positioned at initial provided position. Can be moved by user interaction.
15
16
  */
16
17
  export const WindowSlot = {
17
18
  STATIC: 'static',
18
19
  DYNAMIC_LEFT: 'dynamicLeft',
19
20
  DYNAMIC_RIGHT: 'dynamicRight',
21
+ DYNAMIC_CHILD: 'dynamicChild',
20
22
  DETACHED: 'detached',
21
23
  };
22
24
 
@@ -102,11 +104,12 @@ export function isSlotPosition(windowPosition) {
102
104
  /**
103
105
  * @typedef WindowComponentOptions
104
106
  * @property {string} [id] Optional ID, If not provided an uuid will be generated.
107
+ * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
105
108
  * @property {import("vue").Component} component Main Component which is shown below the header.
106
109
  * @property {import("vue").Component} [headerComponent] Replaces the Header Component.
107
110
  * @property {WindowState} [state]
108
- * @property {WindowPositionOptions} [position] Will be ignored if WindowSlot !== DETACHED, can be given otherwise or default will be used
109
- * @property {WindowSlot} [slot] If WindowSlot is not detached the position will be ignored
111
+ * @property {WindowPositionOptions} [position] Will be merged with default position for slot
112
+ * @property {WindowSlot} [slot]
110
113
  * @property {Object} [props]
111
114
  * @property {Object} [provides]
112
115
  */
@@ -130,10 +133,11 @@ export function isSlotPosition(windowPosition) {
130
133
  /**
131
134
  * @typedef WindowComponent
132
135
  * @property {string} id
136
+ * @property {string} [parentId]
133
137
  * @property {import("vue").Component} component
134
138
  * @property {import("vue").Component} [headerComponent]
135
139
  * @property {WindowState} state
136
- * @property {WindowPosition} position
140
+ * @property {WindowPosition} [position]
137
141
  * @property {WindowPositionOptions} initialPositionOptions
138
142
  * @property {import("vue").Ref<WindowSlot>} slot
139
143
  * @property {WindowSlot} initialSlot
@@ -225,9 +229,16 @@ function setWindowPosition(windowComponent, windowPositionOptions) {
225
229
  const initialWindowPosition = windowPositionFromOptions(
226
230
  windowComponent.initialPositionOptions,
227
231
  );
232
+ const isInitialPosition = compareWindowPositions(
233
+ windowPosition,
234
+ initialWindowPosition,
235
+ );
228
236
  windowComponent.state.dockable =
229
- windowComponent.slot.value === WindowSlot.DETACHED &&
230
- !compareWindowPositions(windowPosition, initialWindowPosition);
237
+ windowComponent.slot.value === WindowSlot.DETACHED && !isInitialPosition;
238
+
239
+ if (isInitialPosition) {
240
+ windowComponent.slot.value = windowComponent.initialSlot;
241
+ }
231
242
  }
232
243
 
233
244
  /**
@@ -299,6 +310,12 @@ class WindowManager {
299
310
  this._windowComponents.delete(id);
300
311
  this._handleSlotsChanged(windowComponent.slot.value);
301
312
  this.removed.raiseEvent(windowComponent);
313
+ const child = Array.from(this._windowComponents.values()).find(
314
+ ({ parentId }) => id === parentId,
315
+ );
316
+ if (child) {
317
+ this.remove(child.id);
318
+ }
302
319
  }
303
320
  }
304
321
 
@@ -369,6 +386,9 @@ class WindowManager {
369
386
  if (slot === WindowSlot.DYNAMIC_RIGHT) {
370
387
  return { ...position, ...WindowPositions.TOP_RIGHT };
371
388
  }
389
+ if (slot === WindowSlot.DYNAMIC_CHILD) {
390
+ return { ...position, ...WindowPositions.TOP_LEFT };
391
+ }
372
392
  return position || WindowPositions.DETACHED;
373
393
  }
374
394
 
@@ -449,6 +469,14 @@ class WindowManager {
449
469
  const slotOption =
450
470
  windowComponentOptions.slot?.value || windowComponentOptions.slot;
451
471
  const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
472
+ if (
473
+ slot === WindowSlot.DYNAMIC_CHILD &&
474
+ !this.has(windowComponentOptions.parentId)
475
+ ) {
476
+ throw new Error(
477
+ `The mandatory parent window with id ${windowComponentOptions.parentId} is not registered. Add the parent window or choose another slot than dynamicChild.`,
478
+ );
479
+ }
452
480
  const windowPositionOptions = this._getPositionOptionsForSlot(
453
481
  slot,
454
482
  windowComponentOptions.position,
@@ -491,6 +519,9 @@ class WindowManager {
491
519
  get id() {
492
520
  return id;
493
521
  },
522
+ get parentId() {
523
+ return windowComponentOptions?.parentId;
524
+ },
494
525
  get state() {
495
526
  return state;
496
527
  },
@@ -561,11 +592,12 @@ class WindowManager {
561
592
  }
562
593
  this._removeWindowAtSlot(component.initialSlot);
563
594
  component.slot.value = component.initialSlot;
595
+ component.state.dockable = false;
564
596
  const dockedPosition = this._getPositionOptionsForSlot(
565
597
  component.initialSlot,
566
598
  component.initialPositionOptions,
567
599
  );
568
- this.setWindowPositionOptions(id, dockedPosition);
600
+ windowPositionFromOptions(dockedPosition, component.position);
569
601
  this._windowPositionsCache.delete(id);
570
602
  }
571
603
 
package/src/vcsUiApp.js CHANGED
@@ -617,6 +617,7 @@ class VcsUiApp extends VcsApp {
617
617
  config.uiConfig = this._uiConfig.serializeModule(moduleId);
618
618
  config.featureInfo = this._featureInfo.serializeModule(moduleId);
619
619
  config.i18n = this._i18n.serializeModule(moduleId);
620
+ config.contentTree = this._contentTree.serializeModule(moduleId);
620
621
  config.plugins = this._plugins.serializeModule(moduleId);
621
622
  return config;
622
623
  }
@@ -1 +0,0 @@
1
- import{initAppFromAppConfig as p}from"./ui.74022f.js";p("#app","app.config.json");