@tekkare/auriga 0.2.99 → 0.2.100

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/dist/module.json CHANGED
@@ -4,5 +4,5 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0"
6
6
  },
7
- "version": "0.2.99"
7
+ "version": "0.2.100"
8
8
  }
@@ -16,11 +16,6 @@
16
16
  v-if="hoveredRegion !== null"
17
17
  :id="`tooltip_map-${title}`"
18
18
  class="tooltip_container"
19
- :style="{
20
- top: tooltipPosition.y + 'px',
21
- left: tooltipPosition.x + 'px',
22
- width: tooltipPosition.width + 'px',
23
- }"
24
19
  >
25
20
  <div class="tooltip">
26
21
  <p class="card_title">{{ hoveredRegion }}</p>
@@ -48,13 +43,28 @@
48
43
  v-for="region in RegionsNo"
49
44
  :key="region"
50
45
  :data="{
51
- color: getColor(data.find((x) => x.name == region)?.value),
52
- value: data.find((x) => x.name == region)?.value,
53
- }"
46
+ color: getColor(
47
+ region
48
+ ),
49
+ value: data.find((x) =>
50
+ GroupedRegions[Object.keys(GroupedRegions).find((groupKey) =>
51
+ GroupedRegions[groupKey as RegionGroupsNo].includes(region)
52
+ ) as RegionGroupsNo]?.includes(region)
53
+ )?.value,
54
+ group: Object.keys(GroupedRegions).find((groupKey) =>
55
+ GroupedRegions[groupKey as RegionGroupsNo].includes(region)
56
+ ) as RegionGroupsNo
57
+ }"
54
58
  :current-region="region"
55
59
  :title="title"
56
60
  :hoveredRegion="hoveredRegion"
57
- @hover="handleHover(region)"
61
+ @hover="
62
+ handleHover(
63
+ Object.keys(GroupedRegions).find((groupKey) =>
64
+ GroupedRegions[groupKey as RegionGroupsNo].includes(region)
65
+ ) as RegionGroupsNo
66
+ )
67
+ "
58
68
  @mouseleave="handleMouseLeave"
59
69
  />
60
70
  </svg>
@@ -72,8 +82,8 @@
72
82
  </template>
73
83
 
74
84
  <script>
75
- import { onMounted, ref, watch, defineComponent, nextTick } from "vue";
76
- import { RegionsNo } from "./maps/interfaces";
85
+ import { onMounted, ref, watch, defineComponent } from "vue";
86
+ import { GroupedRegions, RegionsNo } from "./maps/interfaces";
77
87
  import oneRegionNo from "./oneRegionNo.vue";
78
88
  import ArgSourceContainer from "./argSourceContainer.vue";
79
89
  export default defineComponent({
@@ -115,11 +125,19 @@ export default defineComponent({
115
125
  const minimalValue = ref(null);
116
126
  const maximalValue = ref(null);
117
127
  const hoveredRegion = ref(null);
118
- const tooltipPosition = ref({ x: 0, y: 0, width: 0 });
119
128
  const scale = ref([]);
120
- function getColor(value) {
121
- if (!value)
129
+ function getColor(region) {
130
+ if (!region)
122
131
  return "var(--lightest)";
132
+ const regionGroup = Object.keys(GroupedRegions).find(
133
+ (groupKey) => GroupedRegions[groupKey].includes(region)
134
+ );
135
+ if (!regionGroup)
136
+ return "var(--lightest)";
137
+ const groupData = props.data.find((x) => x.name === regionGroup);
138
+ if (!groupData || !groupData.value)
139
+ return "var(--lightest)";
140
+ const value = groupData.value;
123
141
  if (value >= scale.value[9]) {
124
142
  return "#3F1151";
125
143
  } else if (value >= scale.value[8]) {
@@ -141,6 +159,7 @@ export default defineComponent({
141
159
  } else if (value >= scale.value[0]) {
142
160
  return "#F9E855";
143
161
  }
162
+ return "var(--lightest)";
144
163
  }
145
164
  function handleHover(region) {
146
165
  hoveredRegion.value = region;
@@ -185,34 +204,6 @@ export default defineComponent({
185
204
  const containerPosition = document.getElementById(`container_map-${props.title}-${props.uniqueID}`)?.getBoundingClientRect();
186
205
  if (!selectedRegion || !containerPosition)
187
206
  return;
188
- tooltipPosition.value = {
189
- x: selectedRegion?.x - containerPosition?.x,
190
- y: selectedRegion?.top - containerPosition?.top - 60,
191
- width: selectedRegion?.width
192
- };
193
- }
194
- }
195
- );
196
- watch(
197
- () => hoveredRegion.value,
198
- async () => {
199
- if (hoveredRegion.value) {
200
- await nextTick();
201
- const selectedRegion = document.getElementById(
202
- `interactiveMap-${props.title}-${hoveredRegion.value}`
203
- )?.getBoundingClientRect();
204
- const containerPosition = document.getElementById(`container_map-${props.title}`)?.getBoundingClientRect();
205
- const tooltipElement = document.getElementById(
206
- `tooltip_map-${props.title}`
207
- );
208
- const tooltipHeight = tooltipElement ? tooltipElement.getBoundingClientRect().height : 60;
209
- if (!selectedRegion || !containerPosition)
210
- return;
211
- tooltipPosition.value = {
212
- x: selectedRegion?.x - containerPosition?.x,
213
- y: selectedRegion?.top - containerPosition?.top - tooltipHeight,
214
- width: selectedRegion?.width
215
- };
216
207
  }
217
208
  }
218
209
  );
@@ -222,14 +213,14 @@ export default defineComponent({
222
213
  handleMouseLeave,
223
214
  RegionsNo,
224
215
  hoveredRegion,
225
- tooltipPosition,
226
216
  scale,
227
- openSource
217
+ openSource,
218
+ GroupedRegions
228
219
  };
229
220
  }
230
221
  });
231
222
  </script>
232
223
 
233
224
  <style scoped>
234
- .map{margin-top:24px;width:100%}.p24{padding:24px}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:0;min-width:-moz-fit-content;min-width:fit-content;position:absolute;top:0;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:50%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855);height:10px;transform:rotate(180deg)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
225
+ .map{margin-top:24px;width:100%}.p24{padding:24px}.map path{stroke-width:2px;stroke:rgba(0,0,0,.2);max-height:400px;position:relative}.map path:hover{transition:all .2s}.map_card-container{display:flex;flex-direction:column;gap:8px;min-width:400px;position:relative;width:100%}.test{margin-bottom:200px}.tooltip_container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:30%;position:absolute;top:250px;width:200px;z-index:96}.tooltip{background:#fff;border:1px solid var(--light);border-radius:4px;box-shadow:var(--medium-shadow);color:var(--darkest);font-size:12px}.card_title{background-color:var(--light);border-radius:4px 4px 0 0;font-size:14px;font-weight:600;padding:2px 8px;width:calc(100% - 15px)}.card_text{color:var(--dark);font-size:12px;font-weight:400;line-height:160%;padding:8px;width:100%}.legend{display:flex;flex-direction:column;gap:8px;margin:auto;width:50%}.scale{background:linear-gradient(45deg,#3f1151,#432974,#404a85,#3f668a,#43808c,#4c9c8a,#5fb57e,#85cb68,#bddd51,#f9e855);height:10px;transform:rotate(180deg)}.legend-text{align-items:center;color:var(--dark);display:flex;font-size:12px;font-weight:400;justify-content:space-between;line-height:160%}.p-24{padding:0 24px}
235
226
  </style>
@@ -1,7 +1,7 @@
1
1
  import type { PropType } from "vue";
2
- import { RegionsNo } from "./maps/interfaces";
2
+ import { RegionGroupsNo, RegionsNo } from "./maps/interfaces";
3
3
  type dataRegion = {
4
- name: RegionsNo;
4
+ name: RegionGroupsNo;
5
5
  value: number;
6
6
  };
7
7
  declare const _default: import("vue").DefineComponent<{
@@ -35,18 +35,14 @@ declare const _default: import("vue").DefineComponent<{
35
35
  required: false;
36
36
  };
37
37
  }, {
38
- getColor: (value?: number) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855" | undefined;
39
- handleHover: (region: RegionsNo) => void;
38
+ getColor: (region?: RegionsNo) => "var(--lightest)" | "#3F1151" | "#432974" | "#404A85" | "#3F668A" | "#43808C" | "#4C9C8A" | "#5FB57E" | "#85CB68" | "#BDDD51" | "#F9E855";
39
+ handleHover: (region?: RegionGroupsNo) => void;
40
40
  handleMouseLeave: () => void;
41
41
  RegionsNo: typeof RegionsNo;
42
- hoveredRegion: import("vue").Ref<RegionsNo | null>;
43
- tooltipPosition: import("vue").Ref<{
44
- x: number;
45
- y: number;
46
- width: number;
47
- }>;
42
+ hoveredRegion: import("vue").Ref<RegionGroupsNo | null>;
48
43
  scale: import("vue").Ref<number[]>;
49
44
  openSource: () => void;
45
+ GroupedRegions: Record<RegionGroupsNo, RegionsNo[]>;
50
46
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "openSource"[], "openSource", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
51
47
  data: {
52
48
  type: PropType<dataRegion[]>;
@@ -57,6 +57,13 @@ export declare enum RegionsNo {
57
57
  VestAgder = "Vest-Agder",
58
58
  Vestfold = "Vestfold"
59
59
  }
60
+ export declare enum RegionGroupsNo {
61
+ Nord = "Helse Nord",
62
+ Sord = "Helse S\u00F8r-\u00D8st",
63
+ Vest = "Helse Vest",
64
+ Norge = "Helse Midt-Norge"
65
+ }
66
+ export declare const GroupedRegions: Record<RegionGroupsNo, RegionsNo[]>;
60
67
  export declare enum RegionsKr {
61
68
  NorthChungcheong = "Chungcheongbuk-do",
62
69
  SouthChungcheong = "Chungcheongnam-do",
@@ -60,6 +60,42 @@ export var RegionsNo = /* @__PURE__ */ ((RegionsNo2) => {
60
60
  RegionsNo2["Vestfold"] = "Vestfold";
61
61
  return RegionsNo2;
62
62
  })(RegionsNo || {});
63
+ export var RegionGroupsNo = /* @__PURE__ */ ((RegionGroupsNo2) => {
64
+ RegionGroupsNo2["Nord"] = "Helse Nord";
65
+ RegionGroupsNo2["Sord"] = "Helse S\xF8r-\xD8st";
66
+ RegionGroupsNo2["Vest"] = "Helse Vest";
67
+ RegionGroupsNo2["Norge"] = "Helse Midt-Norge";
68
+ return RegionGroupsNo2;
69
+ })(RegionGroupsNo || {});
70
+ export const GroupedRegions = {
71
+ ["Helse Nord" /* Nord */]: [
72
+ "Nordland" /* Nordland */,
73
+ "Troms" /* Troms */,
74
+ "Finnmark" /* Finnmark */
75
+ ],
76
+ ["Helse Midt-Norge" /* Norge */]: [
77
+ "M\xF8re og Romsdal" /* MoreOgRomsdal */,
78
+ "S\xF8r-Tr\xF8ndelag" /* SørTrondelag */,
79
+ "Nord-Tr\xF8ndelag" /* NordTrondelag */
80
+ ],
81
+ ["Helse S\xF8r-\xD8st" /* Sord */]: [
82
+ "Akershus" /* Akershus */,
83
+ "Buskerud" /* Buskerud */,
84
+ "Hedmark" /* Hedmark */,
85
+ "Oppland" /* Oppland */,
86
+ "Oslo" /* Oslo */,
87
+ "\xD8stfold" /* Ostfold */,
88
+ "Telemark" /* Telemark */,
89
+ "Vestfold" /* Vestfold */,
90
+ "Aust-Agder" /* AustAgder */,
91
+ "Vest-Agder" /* VestAgder */
92
+ ],
93
+ ["Helse Vest" /* Vest */]: [
94
+ "Hordaland" /* Hordaland */,
95
+ "Rogaland" /* Rogaland */,
96
+ "Sogn og Fjordane" /* SognOgFjordane */
97
+ ]
98
+ };
63
99
  export var RegionsKr = /* @__PURE__ */ ((RegionsKr2) => {
64
100
  RegionsKr2["NorthChungcheong"] = "Chungcheongbuk-do";
65
101
  RegionsKr2["SouthChungcheong"] = "Chungcheongnam-do";
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <path
3
3
  :class="
4
- hoveredRegion && hoveredRegion !== currentRegion && data.value
4
+ hoveredRegion && hoveredRegion !== data.group && data.value
5
5
  ? 'hovered'
6
6
  : 'hover'
7
7
  "
@@ -16,6 +16,7 @@
16
16
  </template>
17
17
 
18
18
  <script>
19
+ import { RegionGroupsNo } from "./maps/interfaces";
19
20
  import regionsPathNo from "./maps/regionsPathNo.json";
20
21
  import { defineComponent } from "vue";
21
22
  export default defineComponent({
@@ -51,12 +52,13 @@ export default defineComponent({
51
52
  return {
52
53
  regionsPathNo,
53
54
  onMouseOver,
54
- onMouseLeave
55
+ onMouseLeave,
56
+ RegionGroupsNo
55
57
  };
56
58
  }
57
59
  });
58
60
  </script>
59
61
 
60
62
  <style scoped>
61
- .hovered{opacity:.5;transition:all .2s ease-in-out}.hover{cursor:pointer}
63
+ .hovered{opacity:.3;transition:all .2s ease-in-out}.hover{cursor:pointer}.hover,.hover>path{stroke:blue}
62
64
  </style>
@@ -1,8 +1,9 @@
1
- import { RegionsNo } from "./maps/interfaces";
1
+ import { RegionGroupsNo, RegionsNo } from "./maps/interfaces";
2
2
  import type { PropType } from "vue";
3
3
  type CurrentData = {
4
4
  color?: string;
5
5
  value?: number;
6
+ group?: string;
6
7
  };
7
8
  declare const _default: import("vue").DefineComponent<{
8
9
  data: {
@@ -10,7 +11,7 @@ declare const _default: import("vue").DefineComponent<{
10
11
  default: () => void;
11
12
  };
12
13
  hoveredRegion: {
13
- type: PropType<RegionsNo | null>;
14
+ type: PropType<RegionGroupsNo | null>;
14
15
  required: false;
15
16
  default: null;
16
17
  };
@@ -26,13 +27,14 @@ declare const _default: import("vue").DefineComponent<{
26
27
  regionsPathNo: any;
27
28
  onMouseOver: () => void;
28
29
  onMouseLeave: () => void;
30
+ RegionGroupsNo: typeof RegionGroupsNo;
29
31
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("mouseleave" | "hover")[], "mouseleave" | "hover", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
30
32
  data: {
31
33
  type: PropType<CurrentData>;
32
34
  default: () => void;
33
35
  };
34
36
  hoveredRegion: {
35
- type: PropType<RegionsNo | null>;
37
+ type: PropType<RegionGroupsNo | null>;
36
38
  required: false;
37
39
  default: null;
38
40
  };
@@ -49,6 +51,6 @@ declare const _default: import("vue").DefineComponent<{
49
51
  onHover?: ((...args: any[]) => any) | undefined;
50
52
  }, {
51
53
  data: CurrentData;
52
- hoveredRegion: RegionsNo | null;
54
+ hoveredRegion: RegionGroupsNo | null;
53
55
  }, {}>;
54
56
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekkare/auriga",
3
- "version": "0.2.99",
3
+ "version": "0.2.100",
4
4
  "description": "Aurgia is a UI kit developped by Tekkare",
5
5
  "license": "MIT",
6
6
  "type": "module",