@dative-gpi/foundation-shared-components 1.0.67 → 1.0.68

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.
@@ -7,7 +7,7 @@
7
7
  :style="style"
8
8
  :grow="true"
9
9
  :modelValue="$props.tab"
10
- @update:modelValue="$emit('update:tab', $event)"
10
+ @update:modelValue="onUpdateTab($event)"
11
11
  v-bind="$attrs"
12
12
  >
13
13
  <slot/>
@@ -15,7 +15,8 @@
15
15
  </template>
16
16
 
17
17
  <script lang="ts">
18
- import { computed, defineComponent, type PropType, type StyleValue } from "vue";
18
+ import { computed, defineComponent, onMounted, type PropType, type StyleValue } from "vue";
19
+ import { useRouter } from "vue-router";
19
20
 
20
21
  import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
21
22
  import { useColors } from "@dative-gpi/foundation-shared-components/composables";
@@ -24,7 +25,7 @@ export default defineComponent({
24
25
  name: "FSTabs",
25
26
  props: {
26
27
  tab: {
27
- type: Number,
28
+ type: [String, Number, Object] as PropType<any>,
28
29
  required: false,
29
30
  default: 0
30
31
  },
@@ -32,10 +33,17 @@ export default defineComponent({
32
33
  type: String as PropType<ColorBase>,
33
34
  required: false,
34
35
  default: ColorEnum.Primary
36
+ },
37
+ recordNavigation: {
38
+ type: Boolean,
39
+ required: false,
40
+ default: false
35
41
  }
36
42
  },
37
- setup(props) {
43
+ emits: ["update:tab"],
44
+ setup(props, { emit }) {
38
45
  const { getColors } = useColors();
46
+ const router = useRouter();
39
47
 
40
48
  const colors = computed(() => getColors(props.color));
41
49
  const lights = getColors(ColorEnum.Light);
@@ -51,8 +59,22 @@ export default defineComponent({
51
59
  "--fs-tab-tag-color" : colors.value.baseContrast!
52
60
  }));
53
61
 
62
+ const onUpdateTab = (tab: number): void => {
63
+ if (props.recordNavigation) {
64
+ router.replace({ query: { tab: tab.toString() } });
65
+ }
66
+ emit("update:tab", tab);
67
+ }
68
+
69
+ onMounted((): void => {
70
+ if (props.recordNavigation && router.currentRoute.value.query.tab) {
71
+ emit("update:tab", router.currentRoute.value.query.tab);
72
+ }
73
+ });
74
+
54
75
  return {
55
- style
76
+ style,
77
+ onUpdateTab
56
78
  };
57
79
  }
58
80
  });
@@ -446,7 +446,7 @@
446
446
  v-for="(item, index) in items"
447
447
  elementSelector=".fs-draggable-item"
448
448
  :disabled="draggableDisabled"
449
- :item="item"
449
+ :item="{ ...item, index }"
450
450
  :key="index"
451
451
  @update:dragend="(event, dragged) => onDragEnd(event, dragged, '.fs-data-iterator-container')"
452
452
  @dragover="(event) => onDragOver(event, '.fs-draggable-item', '.fs-data-iterator-container')"
@@ -617,7 +617,7 @@
617
617
  v-for="(item, index) in items.filter((item) => item.type === 'item')"
618
618
  elementSelector=".fs-draggable-item"
619
619
  :disabled="draggableDisabled"
620
- :item="item"
620
+ :item="{ ...item, index }"
621
621
  :key="index"
622
622
  @update:dragend="(event, dragged) => onDragEnd(event, dragged, '.fs-data-iterator-container')"
623
623
  @dragover="(event) => onDragOver(event, '.fs-draggable-item', '.fs-data-iterator-container')"
@@ -1360,10 +1360,10 @@ export default defineComponent({
1360
1360
  };
1361
1361
 
1362
1362
  const resetRowIndex = (initialIndex: number, currentIndex: number, draggedElement: HTMLElement, tbodyElement: HTMLElement) => {
1363
- if (initialIndex > currentIndex) {
1363
+ if (initialIndex > currentIndex && tbodyElement.children[initialIndex]) {
1364
1364
  tbodyElement.children[initialIndex].insertAdjacentElement("afterend", draggedElement);
1365
1365
  }
1366
- else {
1366
+ else if(tbodyElement.children[initialIndex]) {
1367
1367
  tbodyElement.children[initialIndex].insertAdjacentElement("beforebegin", draggedElement);
1368
1368
  }
1369
1369
  };
@@ -74,7 +74,7 @@ export default defineComponent({
74
74
  const dragged = (event.target as HTMLElement)?.closest(props.elementSelector) as HTMLElement;
75
75
  dragged.classList.add("fs-draggable-dragging");
76
76
  dragged.classList.add("fs-draggable-dragging-grabbegin");
77
- dragged.dataset.initialIndex = props.item?.index ?? props.item?.value;
77
+ dragged.dataset.initialIndex = props.item.index;
78
78
  event.preventDefault();
79
79
  }
80
80
  }, mobileGrabThreshold);
@@ -171,7 +171,7 @@ export default defineComponent({
171
171
  return;
172
172
  }
173
173
  const dragged = (event.target as HTMLElement)?.closest(props.elementSelector) as HTMLElement;
174
- dragged.dataset.initialIndex = props.item?.index ?? props.item?.value;
174
+ dragged.dataset.initialIndex = props.item.index;
175
175
  event.dataTransfer?.setDragImage(dragged, 25, 25);
176
176
 
177
177
  if (event.dataTransfer) {
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.67",
4
+ "version": "1.0.68",
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.67",
14
- "@dative-gpi/foundation-shared-services": "1.0.67"
13
+ "@dative-gpi/foundation-shared-domain": "1.0.68",
14
+ "@dative-gpi/foundation-shared-services": "1.0.68"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@dative-gpi/bones-ui": "^0.0.75",
@@ -35,5 +35,5 @@
35
35
  "sass": "1.71.1",
36
36
  "sass-loader": "13.3.2"
37
37
  },
38
- "gitHead": "ba62d45e0ff1f5df1090b715b4a01abc8ce9c3a4"
38
+ "gitHead": "341389f8890f7ebe2e0ac03ea54e5ed38e9c7e56"
39
39
  }