@dative-gpi/foundation-shared-components 1.1.3-sandbox-1 → 1.1.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.
@@ -48,30 +48,26 @@ export default {
48
48
  to: {
49
49
  type: Object as PropType<RouteLocation | null>,
50
50
  required: false
51
- },
52
- html: {
53
- type: [String, HTMLElement] as PropType<string | HTMLElement>,
54
- required: false
55
51
  }
56
52
  },
57
53
  emits: ['click', 'auxclick'],
58
54
  setup(props, { emit }) {
59
55
  const map = inject<Ref<Map | null>>(MAP);
60
56
  const markerClusterGroup = inject<Ref<MarkerClusterGroup | null>>(MARKERCLUSTERGROUP, ref(null));
61
-
57
+
62
58
  const { getColors } = useColors();
63
59
  const { handleRoutingEvent } = useRouting();
64
60
 
65
- if (!map) {
61
+ if(!map) {
66
62
  throw new Error('FSMapTileLayer must be used inside a FSMap component');
67
63
  }
68
64
 
69
- if (!map.value) {
65
+ if(!map.value) {
70
66
  throw new Error('FSMapTileLayer must be used inside a FSMap component with a map');
71
67
  }
72
-
68
+
73
69
  const getMarkerIcon = () => {
74
- if (props.variant === 'gps') {
70
+ if(props.variant === 'gps') {
75
71
  const size = 16;
76
72
  return divIcon({
77
73
  html: gpsMarkerHtml(),
@@ -81,7 +77,7 @@ export default {
81
77
  });
82
78
  }
83
79
 
84
- if (props.variant === 'location') {
80
+ if(props.variant === 'location') {
85
81
  const size = 36;
86
82
  return divIcon({
87
83
  html: locationMarkerHtml(props.icon ?? "mdi-map-marker", getColors(props.color).base, props.label),
@@ -93,7 +89,7 @@ export default {
93
89
 
94
90
  const size = 16;
95
91
  return divIcon({
96
- html: props.html ?? pinMarkerHtml(getColors(props.color).base, props.label),
92
+ html: pinMarkerHtml(getColors(props.color).base, props.label),
97
93
  iconSize: [size, size],
98
94
  className: props.selected ? 'fs-map-marker fs-map-pin fs-map-pin-selected' : 'fs-map-marker fs-map-pin',
99
95
  iconAnchor: [size / 2, size / 2],
@@ -107,11 +103,11 @@ export default {
107
103
  });
108
104
 
109
105
  const onClick = (event: MouseEvent) => {
110
- if (props.to) {
106
+ if(props.to) {
111
107
  handleRoutingEvent(event, props.to, true);
112
108
  return;
113
109
  }
114
-
110
+
115
111
  emit('click', {
116
112
  ...event,
117
113
  latlng: props.latlng
@@ -119,7 +115,7 @@ export default {
119
115
  }
120
116
 
121
117
  const onAuxClick = (event: MouseEvent) => {
122
- if (props.to) {
118
+ if(props.to) {
123
119
  handleRoutingEvent(event, props.to);
124
120
  return;
125
121
  }
@@ -131,19 +127,19 @@ export default {
131
127
  }
132
128
 
133
129
  watch(map, () => {
134
- if (!map.value) {
130
+ if(!map.value) {
135
131
  return;
136
132
  }
137
133
 
138
- if (markerClusterGroup && markerClusterGroup.value) {
134
+ if(markerClusterGroup && markerClusterGroup.value) {
139
135
  actualMarker.value.addTo(markerClusterGroup.value);
140
136
  } else {
141
137
  actualMarker.value.addTo(map.value);
142
138
  }
143
139
  }, { immediate: true });
144
140
 
145
- watch([() => props.variant, () => props.color, () => props.selected, () => props.html], () => {
146
- if (!actualMarker.value || !map.value) {
141
+ watch([() => props.variant, () => props.color, () => props.selected], () => {
142
+ if(!actualMarker.value || !map.value) {
147
143
  return;
148
144
  }
149
145
 
@@ -152,7 +148,7 @@ export default {
152
148
  });
153
149
 
154
150
  watch([() => props.latlng?.lat, () => props.latlng?.lng], () => {
155
- if (!actualMarker.value || !map.value || !props.latlng) {
151
+ if(!actualMarker.value || !map.value || !props.latlng) {
156
152
  return;
157
153
  }
158
154
 
@@ -160,7 +156,7 @@ export default {
160
156
  });
161
157
 
162
158
  watch(markerElement, (newMarkerElement) => {
163
- if (!newMarkerElement) {
159
+ if(!newMarkerElement) {
164
160
  return;
165
161
  }
166
162
 
@@ -169,8 +165,8 @@ export default {
169
165
  }, { immediate: true });
170
166
 
171
167
  onUnmounted(() => {
172
- if (actualMarker.value && map.value) {
173
- if (markerClusterGroup && markerClusterGroup.value) {
168
+ if(actualMarker.value && map.value) {
169
+ if(markerClusterGroup && markerClusterGroup.value) {
174
170
  markerClusterGroup.value.removeLayer(actualMarker.value as Marker);
175
171
  } else {
176
172
  map.value.removeLayer(actualMarker.value as Marker);
@@ -5,10 +5,8 @@ export * from "./useBreakpoints";
5
5
  export * from "./useColors";
6
6
  export * from "./useCountUp";
7
7
  export * from "./useDebounce";
8
- export * from "./useDynamicVNode";
9
8
  export * from "./useElementVisibility";
10
9
  export * from "./useMapLayers";
11
- export * from "./useResize";
12
10
  export * from "./useRules";
13
11
  export * from "./useSlots";
14
12
  export * from "./useTables";
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://github.com/Dative-GPI/foundation-shared-ui.git"
5
5
  },
6
6
  "sideEffects": false,
7
- "version": "1.1.3-sandbox-1",
7
+ "version": "1.1.4",
8
8
  "description": "",
9
9
  "publishConfig": {
10
10
  "access": "public"
@@ -13,8 +13,8 @@
13
13
  "author": "",
14
14
  "license": "ISC",
15
15
  "dependencies": {
16
- "@dative-gpi/foundation-shared-domain": "1.1.3-sandbox-1",
17
- "@dative-gpi/foundation-shared-services": "1.1.3-sandbox-1"
16
+ "@dative-gpi/foundation-shared-domain": "1.1.4",
17
+ "@dative-gpi/foundation-shared-services": "1.1.4"
18
18
  },
19
19
  "peerDependencies": {
20
20
  "@dative-gpi/bones-ui": "^1.0.0",
@@ -38,5 +38,5 @@
38
38
  "sass": "1.71.1",
39
39
  "sass-loader": "13.3.2"
40
40
  },
41
- "gitHead": "8857dc338d7d3ec5f09ce9f67b0b359ae25e8e40"
41
+ "gitHead": "a9b44d2e225cc899966d6ccfa1f0d14df9c50273"
42
42
  }
@@ -27,12 +27,18 @@
27
27
  transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1);
28
28
  }
29
29
 
30
- .fs-map-overlay-desktop {
30
+ .fs-map-overlay-desktop {
31
31
  position: absolute;
32
32
  top: 0;
33
33
  left: 0;
34
34
  margin: 12px;
35
35
  max-height: calc(100% - 24px);
36
+ display: flex;
37
+ flex-direction: column;
38
+
39
+ .fs-card {
40
+ min-height: 0;
41
+ }
36
42
  }
37
43
 
38
44
  .fs-map-layer-button {
@@ -1,62 +0,0 @@
1
- import { h, render, getCurrentInstance, onBeforeUnmount, type Component, type VNode } from "vue";
2
-
3
- export function useDynamicVNode<TProps extends Record<string, any>>(component: Component<TProps>) {
4
-
5
- let vnode: VNode | null = null;
6
- let container: HTMLElement | null = null;
7
- let mountPoint: HTMLElement | null = null;
8
-
9
- const instance = getCurrentInstance();
10
- if (!instance) {
11
- throw new Error("useDynamicVNode must be used inside setup()");
12
- }
13
-
14
- const appContext = instance.appContext;
15
-
16
- const mount = async (props: TProps) => {
17
- if (!mountPoint) {
18
- throw new Error(`You must call getElement() first to create the mount point`);
19
- }
20
-
21
- if (!container) {
22
- container = document.createElement("div");
23
- mountPoint.appendChild(container);
24
- }
25
-
26
- vnode = h(component, props);
27
- vnode.appContext = appContext;
28
-
29
- render(vnode, container);
30
- };
31
-
32
- const unmount = () => {
33
- if (container) {
34
- render(null, container);
35
- container.remove();
36
- }
37
- vnode = null;
38
- container = null;
39
- };
40
-
41
- const getElement = (style?: Partial<CSSStyleDeclaration>): HTMLElement => {
42
- if (!mountPoint) {
43
- mountPoint = document.createElement("div");
44
- }
45
- mountPoint = document.createElement("div");
46
- Object.assign(mountPoint.style, style ?? {});
47
- return mountPoint;
48
- };
49
-
50
- const destroy = () => {
51
- unmount();
52
- mountPoint = null;
53
- };
54
-
55
- onBeforeUnmount(destroy);
56
-
57
- return {
58
- mount,
59
- unmount,
60
- getElement
61
- };
62
- }
@@ -1,32 +0,0 @@
1
- import { onMounted, onBeforeUnmount } from 'vue';
2
-
3
- export function useResize(
4
- getElement: () => HTMLElement | null | undefined,
5
- onResize: () => void
6
- ) {
7
- let resizeObserver: ResizeObserver | null = null;
8
-
9
- onMounted(() => {
10
- if (typeof ResizeObserver !== 'undefined') {
11
- resizeObserver = new ResizeObserver(() => {
12
- onResize();
13
- });
14
- const element = getElement();
15
- if (element) {
16
- resizeObserver.observe(element);
17
- }
18
- }
19
-
20
- window.addEventListener('resize', onResize);
21
- });
22
-
23
- onBeforeUnmount(() => {
24
- window.removeEventListener('resize', onResize);
25
- resizeObserver?.disconnect();
26
- resizeObserver = null;
27
- });
28
-
29
- return {
30
- resize: onResize
31
- };
32
- }