@dative-gpi/foundation-shared-components 1.0.107 → 1.0.108

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.
@@ -129,7 +129,7 @@
129
129
  <template
130
130
  v-else-if="$props.to"
131
131
  >
132
- <router-link
132
+ <FSRouterLink
133
133
  :to="$props.to"
134
134
  >
135
135
  <FSIcon
@@ -143,7 +143,7 @@
143
143
  >
144
144
  {{ $props.label }}
145
145
  </FSSpan>
146
- </router-link>
146
+ </FSRouterLink>
147
147
  </template>
148
148
  <template
149
149
  v-else
@@ -170,6 +170,7 @@ import { type RouteLocation } from "vue-router";
170
170
  import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
171
171
  import { useColors } from "@dative-gpi/foundation-shared-components/composables";
172
172
 
173
+ import FSRouterLink from "./FSRouterLink.vue";
173
174
  import FSClickable from "./FSClickable.vue";
174
175
  import FSSpan from "./FSSpan.vue";
175
176
  import FSIcon from "./FSIcon.vue";
@@ -185,6 +186,7 @@ const DEFAULT_PADDING = PADDING_ICON_LABEL;
185
186
  export default defineComponent({
186
187
  name: "FSButton",
187
188
  components: {
189
+ FSRouterLink,
188
190
  FSClickable,
189
191
  FSSpan,
190
192
  FSIcon,
@@ -198,7 +200,7 @@ export default defineComponent({
198
200
  default: DEFAULT_PADDING
199
201
  },
200
202
  to: {
201
- type: [String, Object] as PropType<string | RouteLocation | null>,
203
+ type: Object as PropType<RouteLocation | null>,
202
204
  required: false,
203
205
  default: null
204
206
  },
@@ -40,7 +40,7 @@
40
40
  />
41
41
  </template>
42
42
  </a>
43
- <router-link
43
+ <FSRouterLink
44
44
  v-else-if="$props.to"
45
45
  :style="style"
46
46
  :to="$props.to"
@@ -80,7 +80,7 @@
80
80
  :color="loadColor"
81
81
  />
82
82
  </template>
83
- </router-link>
83
+ </FSRouterLink>
84
84
  <button
85
85
  v-else
86
86
  :type="$props.type"
@@ -134,11 +134,13 @@ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-compone
134
134
  import { useColors } from "@dative-gpi/foundation-shared-components/composables";
135
135
  import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
136
136
 
137
+ import FSRouterLink from "./FSRouterLink.vue";
137
138
  import FSCard from "./FSCard.vue";
138
139
 
139
140
  export default defineComponent({
140
141
  name: "FSClickable",
141
142
  components: {
143
+ FSRouterLink,
142
144
  FSCard
143
145
  },
144
146
  props: {
@@ -163,7 +165,7 @@ export default defineComponent({
163
165
  default: null
164
166
  },
165
167
  to: {
166
- type: [String, Object] as PropType<string | RouteLocation | null>,
168
+ type: Object as PropType<RouteLocation | null>,
167
169
  required: false,
168
170
  default: null
169
171
  },
@@ -2,13 +2,16 @@
2
2
  <a
3
3
  v-if="$props.href"
4
4
  :href="$props.href"
5
+ :class="classes"
5
6
  :style="style"
6
7
  >
7
8
  <slot>
8
- {{ $props.label }}
9
+ <FSSpan>
10
+ {{ $props.label }}
11
+ </FSSpan>
9
12
  </slot>
10
13
  </a>
11
- <router-link
14
+ <FSRouterLink
12
15
  v-else-if="$props.to"
13
16
  :to="$props.to"
14
17
  :class="classes"
@@ -19,9 +22,11 @@
19
22
  <slot
20
23
  v-bind="props"
21
24
  >
22
- {{ $props.label }}
25
+ <FSSpan>
26
+ {{ $props.label }}
27
+ </FSSpan>
23
28
  </slot>
24
- </router-link>
29
+ </FSRouterLink>
25
30
  </template>
26
31
 
27
32
  <script lang="ts">
@@ -31,8 +36,15 @@ import { type RouteLocation } from "vue-router";
31
36
  import { useBreakpoints, useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
32
37
  import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
33
38
 
39
+ import FSRouterLink from "./FSRouterLink.vue";
40
+ import FSSpan from "./FSSpan.vue";
41
+
34
42
  export default defineComponent({
35
43
  name: "FSLink",
44
+ components: {
45
+ FSRouterLink,
46
+ FSSpan
47
+ },
36
48
  props: {
37
49
  label: {
38
50
  type: String as PropType<string | null>,
@@ -40,7 +52,7 @@ export default defineComponent({
40
52
  default: null
41
53
  },
42
54
  to: {
43
- type: [String, Object] as PropType<string | RouteLocation | null>,
55
+ type: Object as PropType<RouteLocation | null>,
44
56
  required: false,
45
57
  default: null
46
58
  },
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <router-link
3
+ :to="$props.to"
4
+ @auxclick="handleRoutingEvent($event, $props.to)"
5
+ @click="handleRoutingEvent($event, $props.to)"
6
+ v-bind="$attrs"
7
+ >
8
+ <template
9
+ v-for="(_, name) in $slots"
10
+ v-slot:[name]="slotData"
11
+ >
12
+ <slot
13
+ :name="name"
14
+ v-bind="{ ...slotData }"
15
+ />
16
+ </template>
17
+ </router-link>
18
+ </template>
19
+
20
+ <script lang="ts">
21
+ import { defineComponent, type PropType } from "vue";
22
+ import { type RouteLocation } from "vue-router";
23
+
24
+ import { useRouting } from "@dative-gpi/foundation-shared-services/composables";
25
+
26
+ export default defineComponent({
27
+ name: "FSRouterLink",
28
+ props: {
29
+ to: {
30
+ type: Object as PropType<RouteLocation>,
31
+ required: true
32
+ }
33
+ },
34
+ setup() {
35
+ const { handleRoutingEvent } = useRouting();
36
+
37
+ return {
38
+ handleRoutingEvent
39
+ };
40
+ }
41
+ });
42
+ </script>
@@ -46,7 +46,7 @@
46
46
  </template>
47
47
 
48
48
  <script lang="ts">
49
- import { ref, defineComponent, onMounted, type PropType, watch } from "vue";
49
+ import { ref, defineComponent, type PropType, watch } from "vue";
50
50
 
51
51
  import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui";
52
52
 
@@ -71,7 +71,7 @@ export default defineComponent({
71
71
  },
72
72
  props: {
73
73
  modelValue: {
74
- type: String as PropType<"daily" | "weekly" | "monthly" | "yearly">,
74
+ type: String as PropType<string>,
75
75
  required: true
76
76
  },
77
77
  editable: {
@@ -118,9 +118,9 @@ export default defineComponent({
118
118
  emit('update:modelValue', period.item.default);
119
119
  });
120
120
 
121
- onMounted(() => {
121
+ watch(() => props.modelValue, () => {
122
122
  selectedPeriod.value = getPeriod(props.modelValue);
123
- });
123
+ }, { immediate: true });
124
124
 
125
125
  return {
126
126
  availablePeriod,
@@ -100,7 +100,7 @@ export default defineComponent({
100
100
  if (isNaN(parseInt(props.modelValue[3]))) {
101
101
  return 0;
102
102
  }
103
- return parseInt(props.modelValue[3]) - 1;
103
+ return parseInt(props.modelValue[3]);
104
104
  });
105
105
 
106
106
  const time = computed((): number => {
@@ -113,19 +113,19 @@ export default defineComponent({
113
113
  const onUpdateDay = (value: number): void => {
114
114
  const hours = Math.floor(value / (60 * 60 * 1000));
115
115
  const minutes = Math.floor(value / (60 * 1000) % 60);
116
- emit("update:modelValue", [`${minutes}`, `${hours}`, `${value}`, `${month.value + 1}`, "*"]);
116
+ emit("update:modelValue", [`${minutes}`, `${hours}`, `${value}`, `${month.value}`, "*"]);
117
117
  };
118
118
 
119
119
  const onUpdateHours = (value: number): void => {
120
120
  const hours = Math.floor(value / (60 * 60 * 1000));
121
121
  const minutes = Math.floor(value / (60 * 1000) % 60);
122
- emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${month.value + 1}`, "*"]);
122
+ emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${month.value}`, "*"]);
123
123
  };
124
124
 
125
125
  const onUpdateMonth = (value: number): void => {
126
126
  const hours = Math.floor(value / (60 * 60 * 1000));
127
127
  const minutes = Math.floor(value / (60 * 1000) % 60);
128
- emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${value + 1}`, "*"]);
128
+ emit("update:modelValue", [`${minutes}`, `${hours}`, `${day.value}`, `${value}`, "*"]);
129
129
  };
130
130
 
131
131
  return {
@@ -696,6 +696,7 @@ import { useRouter } from "vue-router";
696
696
  import { ColorEnum, type FSDataTableColumn, type FSDataTableFilter, type FSDataTableOrder, type FSToggle } from "@dative-gpi/foundation-shared-components/models";
697
697
  import { useBreakpoints, useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
698
698
  import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
699
+ import { useRouting } from "@dative-gpi/foundation-shared-services/composables";
699
700
  import { uuidv4 } from "@dative-gpi/bones-ui/tools/uuid"
700
701
 
701
702
  import { alphanumericSort, containsSearchTerm, sizeToVar } from "../../utils";
@@ -888,6 +889,7 @@ export default defineComponent({
888
889
  },
889
890
  emits: ["update:modelValue", "update:headers", "update:showFilters", "update:filters", "update:mode", "update:sortBy", "update:rowsPerPage", "update:page", "update:include", "update:items", "click:row"],
890
891
  setup(props, { emit }) {
892
+ const { handleRoutingEvent } = useRouting();
891
893
  const { isExtraSmall } = useBreakpoints();
892
894
  const { $tr } = useTranslationsProvider();
893
895
  const { getColors } = useColors();
@@ -1107,12 +1109,7 @@ export default defineComponent({
1107
1109
  clickable: true,
1108
1110
  row: (event: PointerEvent, row: any) => {
1109
1111
  if (props.itemTo && router) {
1110
- if (event.metaKey || event.ctrlKey || event.button === 1) {
1111
- window.open(router.resolve(props.itemTo(row.item)).href, "_blank");
1112
- }
1113
- else {
1114
- router.push(props.itemTo(row.item));
1115
- }
1112
+ handleRoutingEvent(event, props.itemTo(row.item), true);
1116
1113
  }
1117
1114
  else {
1118
1115
  emit("click:row", row.item);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dative-gpi/foundation-shared-components",
3
3
  "sideEffects": false,
4
- "version": "1.0.107",
4
+ "version": "1.0.108",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -10,8 +10,8 @@
10
10
  "author": "",
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
- "@dative-gpi/foundation-shared-domain": "1.0.107",
14
- "@dative-gpi/foundation-shared-services": "1.0.107"
13
+ "@dative-gpi/foundation-shared-domain": "1.0.108",
14
+ "@dative-gpi/foundation-shared-services": "1.0.108"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@dative-gpi/bones-ui": "^1.0.0",
@@ -35,5 +35,5 @@
35
35
  "sass": "1.71.1",
36
36
  "sass-loader": "13.3.2"
37
37
  },
38
- "gitHead": "eb566a0c7b51ca46c2d469196aa8e6e83b70bae3"
38
+ "gitHead": "f5ec01bfa6108f5140a55273e0abfc6b9b2e69bc"
39
39
  }
@@ -1,9 +1,8 @@
1
1
  .fs-dialog-mobile > .v-overlay__content {
2
- flex-direction: column-reverse !important;
3
-
4
2
  max-height: 100vh !important;
5
3
  max-width: 100vw !important;
6
- height: 100% !important;
7
4
  width: 100% !important;
8
5
  margin: 0 !important;
6
+ position: absolute;
7
+ bottom: 0;
9
8
  }