fds-vue-core 4.7.0 → 4.7.2

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.
@@ -1004,12 +1004,12 @@ const _hoisted_4$9 = {
1004
1004
  };
1005
1005
  const _hoisted_5$8 = { class: "flex items-start justify-between gap-4" };
1006
1006
  const _hoisted_6$5 = { class: "m-0 text-base font-main font-bold tracking-wide" };
1007
- const _hoisted_7$4 = { class: "flex items-start gap-3" };
1008
- const _hoisted_8$3 = {
1007
+ const _hoisted_7$5 = { class: "flex items-start gap-3" };
1008
+ const _hoisted_8$4 = {
1009
1009
  key: 1,
1010
1010
  class: "mb-0-last-child"
1011
1011
  };
1012
- const _hoisted_9$3 = { key: 1 };
1012
+ const _hoisted_9$4 = { key: 1 };
1013
1013
  const _hoisted_10$2 = { class: "flex items-start justify-between gap-4" };
1014
1014
  const _hoisted_11$2 = { class: "flex items-center gap-3" };
1015
1015
  const _hoisted_12$1 = { class: "m-0 text-base font-main font-bold tracking-wide" };
@@ -1059,16 +1059,16 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
1059
1059
  __props.heading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$9, [
1060
1060
  vue.createElementVNode("header", _hoisted_5$8, [
1061
1061
  vue.createElementVNode("h3", _hoisted_6$5, vue.toDisplayString(__props.heading), 1),
1062
- vue.createElementVNode("div", _hoisted_7$4, [
1062
+ vue.createElementVNode("div", _hoisted_7$5, [
1063
1063
  vue.renderSlot(_ctx.$slots, "headerInfo")
1064
1064
  ])
1065
1065
  ])
1066
1066
  ])) : vue.createCommentVNode("", true),
1067
- vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$3, [
1067
+ vue.unref(hasSlot) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$4, [
1068
1068
  vue.renderSlot(_ctx.$slots, "default")
1069
1069
  ])) : vue.createCommentVNode("", true)
1070
1070
  ])
1071
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$3, [
1071
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$4, [
1072
1072
  __props.heading ? (vue.openBlock(), vue.createElementBlock("div", {
1073
1073
  key: 0,
1074
1074
  class: vue.normalizeClass({ "mb-2": vue.unref(hasSlot) })
@@ -8424,6 +8424,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8424
8424
  const clearButtonLabel = vue.computed(() => props.locale === "sv" ? "Rensa input" : "Clear input");
8425
8425
  const passwordButtonShowLabel = vue.computed(() => props.locale === "sv" ? "Visa" : "Show");
8426
8426
  const passwordButtonHideLabel = vue.computed(() => props.locale === "sv" ? "Dölj" : "Hide");
8427
+ const dateButtonLabel = vue.computed(() => props.locale === "sv" ? "Öppna datumväljare" : "Open date picker");
8427
8428
  const showInvalidMessage = vue.computed(() => props.valid === false && !props.optional && props.invalidMessage);
8428
8429
  const isInvalid = vue.computed(() => props.valid === false && !props.optional && !props.disabled);
8429
8430
  const isValid = vue.computed(() => props.valid === true);
@@ -8432,8 +8433,10 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8432
8433
  );
8433
8434
  const showClearButton = vue.computed(() => props.clearButton && !!internalValue.value && !props.disabled);
8434
8435
  const showValidationIcon = vue.computed(() => isInvalid.value || isValid.value);
8436
+ const showDateIcon = vue.computed(() => inputType.value === "date");
8435
8437
  const rightIconCount = vue.computed(() => {
8436
8438
  let count = 0;
8439
+ if (showDateIcon.value) count++;
8437
8440
  if (showValidationIcon.value) count++;
8438
8441
  if (showClearButton.value) count++;
8439
8442
  if (props.searchIcon) count++;
@@ -8454,6 +8457,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8454
8457
  maxlength.value ? "" : "w-full",
8455
8458
  inputPaddingRight.value,
8456
8459
  "focus:outline-2 focus:outline-blue-500 -outline-offset-2 focus:border-transparent",
8460
+ showDateIcon.value && "[&::-webkit-calendar-picker-indicator]:opacity-0 [&::-webkit-calendar-picker-indicator]:pointer-events-none",
8457
8461
  props.disabled ? "text-gray-800 outline-dashed outline-2 outline-gray-400 cursor-not-allowed border-transparent" : "bg-white",
8458
8462
  isInvalid.value && "outline-2 outline-red-600",
8459
8463
  props.inputClass
@@ -8484,6 +8488,10 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8484
8488
  internalValue.value = "";
8485
8489
  emit("clearInput");
8486
8490
  }
8491
+ function onDateIconClick() {
8492
+ if (!showDateIcon.value || props.disabled) return;
8493
+ inputRef.value?.showPicker?.();
8494
+ }
8487
8495
  const showPassword = vue.ref(false);
8488
8496
  const isLazy = vue.computed(() => props.modelModifiers?.lazy === true);
8489
8497
  function toggleShowPassword() {
@@ -8615,30 +8623,38 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
8615
8623
  vue.createElementVNode("div", {
8616
8624
  class: vue.normalizeClass(rightIconsContainerClasses.value)
8617
8625
  }, [
8618
- isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
8626
+ showDateIcon.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, {
8619
8627
  key: 0,
8628
+ "aria-label": dateButtonLabel.value,
8629
+ onClick: onDateIconClick,
8630
+ icon: "calendar",
8631
+ size: 28,
8632
+ class: "fill-blue-500"
8633
+ }, null, 8, ["aria-label"])) : vue.createCommentVNode("", true),
8634
+ isInvalid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
8635
+ key: 1,
8620
8636
  name: "alert",
8621
8637
  class: "fill-red-600"
8622
8638
  })) : vue.createCommentVNode("", true),
8623
8639
  isValid.value ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
8624
- key: 1,
8640
+ key: 2,
8625
8641
  name: "bigSuccess"
8626
8642
  })) : vue.createCommentVNode("", true),
8627
8643
  props.searchIcon ? (vue.openBlock(), vue.createBlock(_sfc_main$E, {
8628
- key: 2,
8644
+ key: 3,
8629
8645
  name: "search",
8630
8646
  size: 24,
8631
8647
  class: "fill-blue-500"
8632
8648
  })) : vue.createCommentVNode("", true),
8633
8649
  showClearButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$D, vue.mergeProps({
8634
- key: 3,
8650
+ key: 4,
8635
8651
  icon: "cross"
8636
8652
  }, { "aria-label": clearButtonLabel.value }, {
8637
8653
  onClick: onClear,
8638
8654
  size: 30
8639
8655
  }), null, 16)) : vue.createCommentVNode("", true),
8640
8656
  showPasswordToggle.value ? (vue.openBlock(), vue.createBlock(_sfc_main$v, {
8641
- key: 4,
8657
+ key: 5,
8642
8658
  icon: showPassword.value ? "viewOff" : "viewOn",
8643
8659
  text: showPassword.value ? passwordButtonHideLabel.value : passwordButtonShowLabel.value,
8644
8660
  onClick: toggleShowPassword
@@ -8812,9 +8828,9 @@ const _hoisted_3$8 = {
8812
8828
  const _hoisted_4$7 = { class: "w-full text-left text-xs border-collapse" };
8813
8829
  const _hoisted_5$7 = ["onClick"];
8814
8830
  const _hoisted_6$4 = { class: "py-1.5 px-3 font-mono break-all" };
8815
- const _hoisted_7$3 = { class: "py-1.5 px-3 font-mono whitespace-pre-wrap break-all" };
8816
- const _hoisted_8$2 = { class: "mt-4 space-y-2" };
8817
- const _hoisted_9$2 = { class: "flex flex-col gap-1" };
8831
+ const _hoisted_7$4 = { class: "py-1.5 px-3 font-mono whitespace-pre-wrap break-all" };
8832
+ const _hoisted_8$3 = { class: "mt-4 space-y-2" };
8833
+ const _hoisted_9$3 = { class: "flex flex-col gap-1" };
8818
8834
  const _hoisted_10$1 = { class: "flex flex-col gap-1" };
8819
8835
  const _hoisted_11$1 = {
8820
8836
  key: 0,
@@ -9117,14 +9133,14 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
9117
9133
  onClick: ($event) => selectLocalEntry(entry)
9118
9134
  }, [
9119
9135
  vue.createElementVNode("td", _hoisted_6$4, vue.toDisplayString(entry.key), 1),
9120
- vue.createElementVNode("td", _hoisted_7$3, vue.toDisplayString(entry.value), 1)
9136
+ vue.createElementVNode("td", _hoisted_7$4, vue.toDisplayString(entry.value), 1)
9121
9137
  ], 8, _hoisted_5$7);
9122
9138
  }), 128))
9123
9139
  ])
9124
9140
  ])
9125
9141
  ])),
9126
- vue.createElementVNode("div", _hoisted_8$2, [
9127
- vue.createElementVNode("div", _hoisted_9$2, [
9142
+ vue.createElementVNode("div", _hoisted_8$3, [
9143
+ vue.createElementVNode("div", _hoisted_9$3, [
9128
9144
  _cache[13] || (_cache[13] = vue.createElementVNode("label", { class: "text-xs font-semibold" }, "Nyckel", -1)),
9129
9145
  vue.withDirectives(vue.createElementVNode("input", {
9130
9146
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => localEditKey.value = $event),
@@ -9694,9 +9710,9 @@ const _hoisted_6$3 = {
9694
9710
  key: 0,
9695
9711
  class: "flex justify-center p-4"
9696
9712
  };
9697
- const _hoisted_7$2 = ["id", "onMouseup"];
9698
- const _hoisted_8$1 = ["id", "onKeydown"];
9699
- const _hoisted_9$1 = ["for", "innerHTML"];
9713
+ const _hoisted_7$3 = ["id", "onMouseup"];
9714
+ const _hoisted_8$2 = ["id", "onKeydown"];
9715
+ const _hoisted_9$2 = ["for", "innerHTML"];
9700
9716
  const _hoisted_10 = {
9701
9717
  key: 2,
9702
9718
  class: "block m-0 list-none p-0"
@@ -10187,13 +10203,13 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
10187
10203
  vue.withKeys((e) => handleClick(e, item), ["enter"]),
10188
10204
  vue.withKeys(vue.withModifiers((e) => handleClick(e, item), ["prevent"]), ["space"])
10189
10205
  ]
10190
- }, null, 40, _hoisted_8$1),
10206
+ }, null, 40, _hoisted_8$2),
10191
10207
  vue.createElementVNode("label", {
10192
10208
  for: `search-select-radio-${index}`,
10193
10209
  class: vue.normalizeClass([labelClasses.value, listItemClasses.value]),
10194
10210
  innerHTML: handleMatchingString(item)
10195
- }, null, 10, _hoisted_9$1)
10196
- ], 42, _hoisted_7$2);
10211
+ }, null, 10, _hoisted_9$2)
10212
+ ], 42, _hoisted_7$3);
10197
10213
  }), 128))
10198
10214
  ], 32),
10199
10215
  __props.page !== void 0 && totalPages.value !== null && totalPages.value > 1 ? (vue.openBlock(), vue.createBlock(_sfc_main$j, {
@@ -10941,9 +10957,9 @@ const _hoisted_6$2 = {
10941
10957
  key: 2,
10942
10958
  class: "items-center max-h-[28px]"
10943
10959
  };
10944
- const _hoisted_7$1 = { class: "flex flex-col gap-2" };
10945
- const _hoisted_8 = ["onClick"];
10946
- const _hoisted_9 = { key: 0 };
10960
+ const _hoisted_7$2 = { class: "flex flex-col gap-2" };
10961
+ const _hoisted_8$1 = ["onClick"];
10962
+ const _hoisted_9$1 = { key: 0 };
10947
10963
  const popoverWidth = 327;
10948
10964
  const popoverHeight = 80;
10949
10965
  const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
@@ -11218,7 +11234,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
11218
11234
  }, ["stop"])),
11219
11235
  onFocusout: onPanelFocusOut
11220
11236
  }, [
11221
- vue.createElementVNode("div", _hoisted_7$1, [
11237
+ vue.createElementVNode("div", _hoisted_7$2, [
11222
11238
  (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(options, (option) => {
11223
11239
  return vue.createElementVNode("div", {
11224
11240
  key: option.value,
@@ -11238,7 +11254,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
11238
11254
  onBlur: closePopover,
11239
11255
  label: option.label
11240
11256
  }, null, 8, ["modelValue", "id", "name", "value", "label"])
11241
- ], 8, _hoisted_8);
11257
+ ], 8, _hoisted_8$1);
11242
11258
  }), 64))
11243
11259
  ]),
11244
11260
  vue.createVNode(_sfc_main$D, vue.mergeProps({
@@ -11256,7 +11272,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
11256
11272
  ])) : vue.createCommentVNode("", true)
11257
11273
  ])
11258
11274
  ], 4),
11259
- vue.unref(expandedNodes).has(props.nodeId) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
11275
+ vue.unref(expandedNodes).has(props.nodeId) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$1, [
11260
11276
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredNodes.value, (child) => {
11261
11277
  return vue.openBlock(), vue.createBlock(_component_TreeNode, {
11262
11278
  key: child.nodeId,
@@ -11556,13 +11572,41 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
11556
11572
  };
11557
11573
  }
11558
11574
  });
11559
- const _hoisted_1$4 = { class: "h-[2px] absolute top-[22px] left-[50%] bg-white-solid transform -translate-x-1/2 w-[calc(100%-50px)]" };
11560
- const _hoisted_2$3 = { class: "flex justify-between list-none mb-8 p-0" };
11561
- const _hoisted_3$3 = { class: "flex justify-between w-full" };
11562
- const _hoisted_4$3 = ["onClick", "disabled"];
11563
- const _hoisted_5$3 = { key: 0 };
11564
- const _hoisted_6$1 = { class: "text-blue-600 font-bold text-sm" };
11565
11575
  const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11576
+ ...{
11577
+ inheritAttrs: false
11578
+ },
11579
+ __name: "FdsLead",
11580
+ props: {
11581
+ dataTestid: { default: void 0 }
11582
+ },
11583
+ setup(__props) {
11584
+ const props = __props;
11585
+ const attrs = vue.useAttrs();
11586
+ const rootAttrs = vue.computed(() => {
11587
+ const result = { ...attrs };
11588
+ if (props.dataTestid) {
11589
+ result["data-testid"] = props.dataTestid;
11590
+ }
11591
+ return result;
11592
+ });
11593
+ return (_ctx, _cache) => {
11594
+ return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({ class: "inline-block font-light text-lg" }, rootAttrs.value), [
11595
+ vue.renderSlot(_ctx.$slots, "default")
11596
+ ], 16);
11597
+ };
11598
+ }
11599
+ });
11600
+ const _hoisted_1$4 = { class: "mb-6" };
11601
+ const _hoisted_2$3 = { class: "mb-0" };
11602
+ const _hoisted_3$3 = { class: "relative" };
11603
+ const _hoisted_4$3 = { class: "h-[2px] absolute top-[22px] left-[50%] bg-white-solid transform -translate-x-1/2 w-[calc(100%-50px)]" };
11604
+ const _hoisted_5$3 = { class: "flex justify-between list-none mb-8 p-0" };
11605
+ const _hoisted_6$1 = { class: "flex justify-between w-full" };
11606
+ const _hoisted_7$1 = ["onClick", "disabled"];
11607
+ const _hoisted_8 = { key: 0 };
11608
+ const _hoisted_9 = { class: "text-blue-600 font-bold text-sm" };
11609
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
11566
11610
  __name: "FdsWizard",
11567
11611
  props: {
11568
11612
  routes: {},
@@ -11576,11 +11620,16 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11576
11620
  },
11577
11621
  emits: ["go"],
11578
11622
  setup(__props, { expose: __expose, emit: __emit }) {
11623
+ const mainHeading = vue.ref("");
11624
+ const mainLead = vue.ref("");
11625
+ const contentClass = vue.ref("max-w-screen-sm");
11579
11626
  const props = __props;
11580
11627
  const emit = __emit;
11581
11628
  const instance = vue.getCurrentInstance();
11582
11629
  const internalCompletedTo = vue.ref(0);
11583
11630
  const internalMaxStep = vue.ref(0);
11631
+ const wizardData = vue.ref({});
11632
+ const validatedRouteNames = vue.ref({});
11584
11633
  const router = vue.computed(() => {
11585
11634
  try {
11586
11635
  return instance?.appContext.config.globalProperties.$router;
@@ -11670,29 +11719,50 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11670
11719
  }
11671
11720
  return classes.join(" ");
11672
11721
  };
11673
- const isStepDisabled = (step) => {
11674
- const routeDisabled = props.routes[step]?.disabled === true;
11675
- const completionDisabled = effectiveCompletedTo.value < step - 1;
11676
- const maxStepDisabled = step > internalMaxStep.value;
11677
- return routeDisabled || completionDisabled || maxStepDisabled;
11722
+ const isRouteValidated = (route) => {
11723
+ if (!route) return false;
11724
+ return validatedRouteNames.value[route.routeName] === true;
11725
+ };
11726
+ const canGoToStep = (from, to) => {
11727
+ const toRoute = props.routes[to];
11728
+ if (!toRoute) return false;
11729
+ if (toRoute.disabled === true) return false;
11730
+ if (to === from) return false;
11731
+ if (to < from) return true;
11732
+ const anyValidated = Object.keys(validatedRouteNames.value).length > 0;
11733
+ if (!anyValidated) return false;
11734
+ return isRouteValidated(toRoute);
11735
+ };
11736
+ const validateStep = (routeName2) => {
11737
+ if (!routeName2) return;
11738
+ validatedRouteNames.value = {
11739
+ ...validatedRouteNames.value,
11740
+ [routeName2]: true
11741
+ };
11742
+ };
11743
+ const setWizardData = (patch) => {
11744
+ wizardData.value = {
11745
+ ...wizardData.value,
11746
+ ...patch
11747
+ };
11678
11748
  };
11679
11749
  const goToStep = (step) => {
11680
- if (isStepDisabled(step)) return;
11750
+ const from = currentStepIndex.value;
11681
11751
  const route = props.routes[step];
11682
11752
  if (!route) return;
11683
- if (router.value) {
11684
- if (route.routeName) {
11685
- router.value.push({
11686
- name: route.routeName,
11687
- params: route.params,
11688
- query: route.query
11689
- });
11690
- } else if (route.to) {
11691
- router.value.push({
11692
- path: route.to,
11693
- query: route.query
11694
- });
11695
- }
11753
+ if (!router.value) return;
11754
+ if (!canGoToStep(from, step)) return;
11755
+ if (route.routeName) {
11756
+ router.value.push({
11757
+ name: route.routeName,
11758
+ params: route.params,
11759
+ query: route.query
11760
+ });
11761
+ } else if (route.to) {
11762
+ router.value.push({
11763
+ path: route.to,
11764
+ query: route.query
11765
+ });
11696
11766
  }
11697
11767
  emit("go", { index: step, route });
11698
11768
  };
@@ -11708,63 +11778,102 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
11708
11778
  goToStep(prev);
11709
11779
  }
11710
11780
  };
11781
+ const setHeading = (heading) => {
11782
+ mainHeading.value = heading;
11783
+ };
11784
+ const setLead = (lead) => {
11785
+ mainLead.value = lead;
11786
+ };
11787
+ const setContentClass = (classes) => {
11788
+ contentClass.value = classes;
11789
+ };
11711
11790
  __expose({
11712
11791
  goToStep,
11713
11792
  nextStep,
11714
11793
  previousStep,
11715
11794
  currentStep: currentStepIndex,
11716
11795
  completedTo: internalCompletedTo,
11717
- maxStep: internalMaxStep
11796
+ maxStep: internalMaxStep,
11797
+ wizardData,
11798
+ setWizardData,
11799
+ validateStep,
11800
+ setHeading,
11801
+ setLead,
11802
+ setContentClass
11718
11803
  });
11719
11804
  return (_ctx, _cache) => {
11720
11805
  return vue.openBlock(), vue.createElementBlock("div", vue.normalizeProps(vue.guardReactiveProps(rootAttrs.value)), [
11721
11806
  !shouldHideEntireSteps.value ? (vue.openBlock(), vue.createElementBlock("nav", {
11722
11807
  key: 0,
11723
- class: "max-w-[480px] mx-auto relative",
11808
+ class: "max-w-[480px] mx-auto",
11724
11809
  style: vue.normalizeStyle(stepWidthStyle.value)
11725
11810
  }, [
11726
- vue.createElementVNode("span", _hoisted_1$4, [
11727
- vue.createElementVNode("span", {
11728
- class: "block h-full max-w-full bg-blue-600",
11729
- style: vue.normalizeStyle({ width: progressWidth.value })
11730
- }, null, 4)
11811
+ vue.createElementVNode("header", _hoisted_1$4, [
11812
+ vue.createElementVNode("h1", {
11813
+ ref: "mainHeader",
11814
+ tabindex: "-1"
11815
+ }, vue.toDisplayString(mainHeading.value), 513),
11816
+ vue.createVNode(_sfc_main$b, null, {
11817
+ default: vue.withCtx(() => [
11818
+ vue.createElementVNode("p", _hoisted_2$3, vue.toDisplayString(mainLead.value), 1)
11819
+ ]),
11820
+ _: 1
11821
+ })
11731
11822
  ]),
11732
- vue.createElementVNode("div", _hoisted_2$3, [
11733
- vue.createElementVNode("ol", _hoisted_3$3, [
11734
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(visibleStepEntries.value, (entry) => {
11735
- return vue.openBlock(), vue.createElementBlock("li", {
11736
- class: "flex flex-col justify-center items-center mb-0",
11737
- key: entry.route.id
11738
- }, [
11739
- vue.createElementVNode("button", {
11740
- type: "button",
11741
- class: vue.normalizeClass(["flex flex-col items-center", { "cursor-not-allowed": isStepDisabled(entry.index) }]),
11742
- onClick: ($event) => __props.disableStepJump ? null : goToStep(entry.index),
11743
- disabled: isStepDisabled(entry.index)
11823
+ vue.createElementVNode("div", _hoisted_3$3, [
11824
+ vue.createElementVNode("span", _hoisted_4$3, [
11825
+ vue.createElementVNode("span", {
11826
+ class: "block h-full max-w-full bg-blue-600",
11827
+ style: vue.normalizeStyle({ width: progressWidth.value })
11828
+ }, null, 4)
11829
+ ]),
11830
+ vue.createElementVNode("div", _hoisted_5$3, [
11831
+ vue.createElementVNode("ol", _hoisted_6$1, [
11832
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(visibleStepEntries.value, (entry) => {
11833
+ return vue.openBlock(), vue.createElementBlock("li", {
11834
+ class: "flex flex-col justify-center items-center mb-0",
11835
+ key: entry.route.id
11744
11836
  }, [
11745
- vue.createElementVNode("span", {
11746
- class: vue.normalizeClass(["relative flex flex-col items-center text-blue-600 font-bold justify-center transition-all duration-200 ease-in-out mb-2 rounded-full w-[44px] h-[44px] bg-white-solid", setStepClasses(entry.index)])
11837
+ vue.createElementVNode("button", {
11838
+ type: "button",
11839
+ class: vue.normalizeClass(["flex flex-col items-center", { "cursor-not-allowed": !canGoToStep(currentStepIndex.value, entry.index) }]),
11840
+ onClick: ($event) => __props.disableStepJump ? null : goToStep(entry.index),
11841
+ disabled: !canGoToStep(currentStepIndex.value, entry.index)
11747
11842
  }, [
11748
- entry.index >= effectiveCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$3, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11749
- key: 1,
11750
- name: "checkmark",
11751
- size: 24
11752
- }))
11753
- ], 2),
11754
- vue.createElementVNode("span", _hoisted_6$1, vue.toDisplayString(entry.route.name), 1)
11755
- ], 10, _hoisted_4$3)
11756
- ]);
11757
- }), 128))
11843
+ vue.createElementVNode("span", {
11844
+ class: vue.normalizeClass(["relative flex flex-col items-center text-blue-600 font-bold justify-center transition-all duration-200 ease-in-out mb-2 rounded-full w-[44px] h-[44px] bg-white-solid", setStepClasses(entry.index)])
11845
+ }, [
11846
+ entry.index >= effectiveCompletedTo.value + 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8, vue.toDisplayString(entry.index + 1), 1)) : (vue.openBlock(), vue.createBlock(_sfc_main$E, {
11847
+ key: 1,
11848
+ name: "checkmark",
11849
+ size: 24
11850
+ }))
11851
+ ], 2),
11852
+ vue.createElementVNode("span", _hoisted_9, vue.toDisplayString(entry.route.name), 1)
11853
+ ], 10, _hoisted_7$1)
11854
+ ]);
11855
+ }), 128))
11856
+ ])
11758
11857
  ])
11759
11858
  ])
11760
11859
  ], 4)) : vue.createCommentVNode("", true),
11761
- vue.renderSlot(_ctx.$slots, "default", {
11762
- currentStepIndex: currentStepIndex.value,
11763
- currentRoute: currentRoute.value,
11764
- goToStep,
11765
- nextStep,
11766
- previousStep
11767
- })
11860
+ vue.createElementVNode("div", {
11861
+ class: vue.normalizeClass([contentClass.value, "mx-auto"])
11862
+ }, [
11863
+ vue.renderSlot(_ctx.$slots, "default", {
11864
+ currentStepIndex: currentStepIndex.value,
11865
+ currentRoute: currentRoute.value,
11866
+ goToStep,
11867
+ nextStep,
11868
+ previousStep,
11869
+ wizardData: wizardData.value,
11870
+ setWizardData,
11871
+ validateStep,
11872
+ setHeading,
11873
+ setLead,
11874
+ setContentClass
11875
+ })
11876
+ ], 2)
11768
11877
  ], 16);
11769
11878
  };
11770
11879
  }
@@ -11786,7 +11895,7 @@ const _hoisted_7 = {
11786
11895
  key: 2,
11787
11896
  class: "text-red-600 font-bold mt-1"
11788
11897
  };
11789
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
11898
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
11790
11899
  ...{
11791
11900
  inheritAttrs: false
11792
11901
  },
@@ -11924,7 +12033,7 @@ const _hoisted_5$1 = {
11924
12033
  key: 2,
11925
12034
  class: "text-red-600 font-bold mt-1"
11926
12035
  };
11927
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
12036
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
11928
12037
  ...{
11929
12038
  inheritAttrs: false
11930
12039
  },
@@ -12050,7 +12159,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
12050
12159
  };
12051
12160
  }
12052
12161
  });
12053
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
12162
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
12054
12163
  __name: "FdsTable",
12055
12164
  props: {
12056
12165
  bordered: { type: Boolean, default: false },
@@ -12083,7 +12192,7 @@ const _hoisted_2 = { key: 0 };
12083
12192
  const _hoisted_3 = { key: 1 };
12084
12193
  const _hoisted_4 = { key: 0 };
12085
12194
  const _hoisted_5 = { key: 1 };
12086
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
12195
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
12087
12196
  __name: "FdsTableHead",
12088
12197
  props: {
12089
12198
  heading: { default: void 0 },
@@ -12144,7 +12253,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
12144
12253
  };
12145
12254
  }
12146
12255
  });
12147
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
12256
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
12148
12257
  ...{
12149
12258
  inheritAttrs: false
12150
12259
  },
@@ -12186,7 +12295,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
12186
12295
  };
12187
12296
  }
12188
12297
  });
12189
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
12298
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12190
12299
  ...{
12191
12300
  inheritAttrs: false
12192
12301
  },
@@ -12228,7 +12337,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
12228
12337
  };
12229
12338
  }
12230
12339
  });
12231
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12340
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
12232
12341
  ...{
12233
12342
  inheritAttrs: false
12234
12343
  },
@@ -12270,7 +12379,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
12270
12379
  };
12271
12380
  }
12272
12381
  });
12273
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
12382
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
12274
12383
  ...{
12275
12384
  inheritAttrs: false
12276
12385
  },
@@ -12293,7 +12402,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
12293
12402
  };
12294
12403
  }
12295
12404
  });
12296
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
12405
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
12297
12406
  ...{
12298
12407
  inheritAttrs: false
12299
12408
  },
@@ -12318,31 +12427,6 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
12318
12427
  };
12319
12428
  }
12320
12429
  });
12321
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
12322
- ...{
12323
- inheritAttrs: false
12324
- },
12325
- __name: "FdsLead",
12326
- props: {
12327
- dataTestid: { default: void 0 }
12328
- },
12329
- setup(__props) {
12330
- const props = __props;
12331
- const attrs = vue.useAttrs();
12332
- const rootAttrs = vue.computed(() => {
12333
- const result = { ...attrs };
12334
- if (props.dataTestid) {
12335
- result["data-testid"] = props.dataTestid;
12336
- }
12337
- return result;
12338
- });
12339
- return (_ctx, _cache) => {
12340
- return vue.openBlock(), vue.createElementBlock("span", vue.mergeProps({ class: "inline-block font-light text-lg" }, rootAttrs.value), [
12341
- vue.renderSlot(_ctx.$slots, "default")
12342
- ], 16);
12343
- };
12344
- }
12345
- });
12346
12430
  const _hoisted_1 = {
12347
12431
  key: 1,
12348
12432
  class: "heading font-heading text-xl m-0"
@@ -12472,10 +12556,10 @@ const FdsVueCorePlugin = {
12472
12556
  app.component("FdsSpinner", _sfc_main$w);
12473
12557
  app.component("FdsRadio", _sfc_main$g);
12474
12558
  app.component("FdsCheckbox", _sfc_main$h);
12475
- app.component("FdsTextarea", _sfc_main$9);
12476
- app.component("FdsSelect", _sfc_main$a);
12477
- app.component("FdsTable", _sfc_main$8);
12478
- app.component("FdsTableHead", _sfc_main$7);
12559
+ app.component("FdsTextarea", _sfc_main$8);
12560
+ app.component("FdsSelect", _sfc_main$9);
12561
+ app.component("FdsTable", _sfc_main$7);
12562
+ app.component("FdsTableHead", _sfc_main$6);
12479
12563
  app.component("FdsInput", _sfc_main$o);
12480
12564
  app.component("FdsBlockContent", _sfc_main$B);
12481
12565
  app.component("FdsBlockInfo", _sfc_main$y);
@@ -12489,13 +12573,13 @@ const FdsVueCorePlugin = {
12489
12573
  app.component("FdsPagination", _sfc_main$j);
12490
12574
  app.component("FdsSearchSelect", _sfc_main$i);
12491
12575
  app.component("FdsTruncatedText", _sfc_main$c);
12492
- app.component("FdsWizard", _sfc_main$b);
12493
- app.component("FdsH1", _sfc_main$6);
12494
- app.component("FdsH2", _sfc_main$5);
12495
- app.component("FdsH3", _sfc_main$4);
12496
- app.component("FdsHr", _sfc_main$3);
12497
- app.component("FdsLabel", _sfc_main$2);
12498
- app.component("FdsLead", _sfc_main$1);
12576
+ app.component("FdsWizard", _sfc_main$a);
12577
+ app.component("FdsH1", _sfc_main$5);
12578
+ app.component("FdsH2", _sfc_main$4);
12579
+ app.component("FdsH3", _sfc_main$3);
12580
+ app.component("FdsHr", _sfc_main$2);
12581
+ app.component("FdsLabel", _sfc_main$1);
12582
+ app.component("FdsLead", _sfc_main$b);
12499
12583
  app.component("FdsMeta", _sfc_main$e);
12500
12584
  app.component("FdsListHeading", _sfc_main);
12501
12585
  }
@@ -12513,31 +12597,31 @@ exports.FdsButtonPrimary = _sfc_main$s;
12513
12597
  exports.FdsButtonSecondary = _sfc_main$r;
12514
12598
  exports.FdsCheckbox = _sfc_main$h;
12515
12599
  exports.FdsDevMode = _sfc_main$k;
12516
- exports.FdsH1 = _sfc_main$6;
12517
- exports.FdsH2 = _sfc_main$5;
12518
- exports.FdsH3 = _sfc_main$4;
12519
- exports.FdsHr = _sfc_main$3;
12600
+ exports.FdsH1 = _sfc_main$5;
12601
+ exports.FdsH2 = _sfc_main$4;
12602
+ exports.FdsH3 = _sfc_main$3;
12603
+ exports.FdsHr = _sfc_main$2;
12520
12604
  exports.FdsIcon = _sfc_main$E;
12521
12605
  exports.FdsInput = _sfc_main$o;
12522
- exports.FdsLabel = _sfc_main$2;
12523
- exports.FdsLead = _sfc_main$1;
12606
+ exports.FdsLabel = _sfc_main$1;
12607
+ exports.FdsLead = _sfc_main$b;
12524
12608
  exports.FdsListHeading = _sfc_main;
12525
12609
  exports.FdsMeta = _sfc_main$e;
12526
12610
  exports.FdsModal = _sfc_main$p;
12527
12611
  exports.FdsPagination = _sfc_main$j;
12528
12612
  exports.FdsRadio = _sfc_main$g;
12529
12613
  exports.FdsSearchSelect = _sfc_main$i;
12530
- exports.FdsSelect = _sfc_main$a;
12614
+ exports.FdsSelect = _sfc_main$9;
12531
12615
  exports.FdsSpinner = _sfc_main$w;
12532
12616
  exports.FdsSticker = _sfc_main$A;
12533
- exports.FdsTable = _sfc_main$8;
12534
- exports.FdsTableHead = _sfc_main$7;
12617
+ exports.FdsTable = _sfc_main$7;
12618
+ exports.FdsTableHead = _sfc_main$6;
12535
12619
  exports.FdsTabs = _sfc_main$n;
12536
12620
  exports.FdsTabsItem = _sfc_main$m;
12537
- exports.FdsTextarea = _sfc_main$9;
12621
+ exports.FdsTextarea = _sfc_main$8;
12538
12622
  exports.FdsTreeView = _sfc_main$d;
12539
12623
  exports.FdsTruncatedText = _sfc_main$c;
12540
- exports.FdsWizard = _sfc_main$b;
12624
+ exports.FdsWizard = _sfc_main$a;
12541
12625
  exports.bankid = bankid;
12542
12626
  exports.default = FdsVueCorePlugin;
12543
12627
  exports.isPidString = isPidString;