@fkui/vue 5.46.0 → 6.0.0
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/cjs/{pageobject.js → cypress.js} +135 -311
- package/dist/cjs/cypress.js.map +7 -0
- package/dist/cjs/index.cjs.js +876 -1635
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/esm/index.esm.js +879 -1638
- package/dist/esm/index.esm.js.map +1 -1
- package/dist/types/{pageobject.d.ts → cypress.d.ts} +48 -139
- package/dist/types/index.d.ts +588 -2249
- package/dist/types/tsdoc-metadata.json +1 -1
- package/htmlvalidate/configs/recommended.js +1 -1
- package/htmlvalidate/elements/components.js +14 -192
- package/htmlvalidate/elements/internal-components.js +0 -6
- package/htmlvalidate/rules/deprecated-validator.js +1 -1
- package/htmlvalidate/rules/index.js +2 -2
- package/htmlvalidate/rules/no-template-modal.rule.js +44 -0
- package/package.json +6 -7
- package/dist/cjs/pageobject.js.map +0 -7
- package/pageobject.d.ts +0 -1
- package/pageobject.js +0 -1
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
const logic = require("@fkui/logic");
|
|
5
5
|
const date = require("@fkui/date");
|
|
6
6
|
const statuses = ["default", "warning", "error", "success", "info"];
|
|
7
|
-
const _sfc_main$
|
|
7
|
+
const _sfc_main$1b = /* @__PURE__ */ vue.defineComponent({
|
|
8
8
|
__name: "FBadge",
|
|
9
9
|
props: {
|
|
10
10
|
/**
|
|
@@ -1322,7 +1322,7 @@ function requireEs_array_push() {
|
|
|
1322
1322
|
requireEs_array_push();
|
|
1323
1323
|
const Flip = ["horizontal", "vertical"];
|
|
1324
1324
|
const Rotate = ["90", "180", "270"];
|
|
1325
|
-
const _sfc_main$
|
|
1325
|
+
const _sfc_main$1a = vue.defineComponent({
|
|
1326
1326
|
name: "FIcon",
|
|
1327
1327
|
inheritAttrs: false,
|
|
1328
1328
|
props: {
|
|
@@ -1410,18 +1410,18 @@ const _export_sfc = (sfc, props) => {
|
|
|
1410
1410
|
}
|
|
1411
1411
|
return target;
|
|
1412
1412
|
};
|
|
1413
|
-
const _hoisted_1$
|
|
1414
|
-
const _hoisted_2$
|
|
1415
|
-
function _sfc_render$
|
|
1413
|
+
const _hoisted_1$U = ["aria-hidden"];
|
|
1414
|
+
const _hoisted_2$F = ["xlink:href"];
|
|
1415
|
+
function _sfc_render$W(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1416
1416
|
return vue.openBlock(), vue.createElementBlock("svg", vue.mergeProps(_ctx.$attrs, {
|
|
1417
1417
|
focusable: "false",
|
|
1418
1418
|
class: ["icon", [_ctx.spriteKey, ..._ctx.modifiers]],
|
|
1419
1419
|
"aria-hidden": _ctx.ariaHidden
|
|
1420
1420
|
}), [vue.renderSlot(_ctx.$slots, "default"), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("use", {
|
|
1421
1421
|
"xlink:href": _ctx.spriteId
|
|
1422
|
-
}, null, 8, _hoisted_2$
|
|
1422
|
+
}, null, 8, _hoisted_2$F)], 16, _hoisted_1$U);
|
|
1423
1423
|
}
|
|
1424
|
-
const FIcon = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
1424
|
+
const FIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1a, [["render", _sfc_render$W]]);
|
|
1425
1425
|
const DATA_TEST_ATTRIBUTE_NAME = "data-test";
|
|
1426
1426
|
function throwErrorIfEmpty(value) {
|
|
1427
1427
|
if (!value) {
|
|
@@ -3350,56 +3350,6 @@ const scrollClasses = {
|
|
|
3350
3350
|
function tableScrollClasses(val) {
|
|
3351
3351
|
return scrollClasses[val];
|
|
3352
3352
|
}
|
|
3353
|
-
const defaultOptions = {
|
|
3354
|
-
stripClasses: ["sr-only"]
|
|
3355
|
-
};
|
|
3356
|
-
function collapseWhitespace(text) {
|
|
3357
|
-
return text.replace(/\s+/gm, " ").replace(/(^ | $)/g, "");
|
|
3358
|
-
}
|
|
3359
|
-
function intersection(a, b) {
|
|
3360
|
-
return a.filter((it) => b.includes(it));
|
|
3361
|
-
}
|
|
3362
|
-
function excludeClass(exclude) {
|
|
3363
|
-
return (node) => {
|
|
3364
|
-
var _a;
|
|
3365
|
-
if (typeof ((_a = node.props) == null ? void 0 : _a.class) !== "string") {
|
|
3366
|
-
return true;
|
|
3367
|
-
}
|
|
3368
|
-
const classes = node.props.class.split(/\s+/);
|
|
3369
|
-
const matches = intersection(classes, exclude);
|
|
3370
|
-
return matches.length === 0;
|
|
3371
|
-
};
|
|
3372
|
-
}
|
|
3373
|
-
function excludeComment(node) {
|
|
3374
|
-
return node.type !== vue.Comment;
|
|
3375
|
-
}
|
|
3376
|
-
function getTextContent(children, options) {
|
|
3377
|
-
return children.filter(vue.isVNode).filter(excludeComment).filter(excludeClass(options.stripClasses)).map((child) => {
|
|
3378
|
-
if (Array.isArray(child.children)) {
|
|
3379
|
-
return getTextContent(child.children, options);
|
|
3380
|
-
}
|
|
3381
|
-
if (typeof child.children === "string") {
|
|
3382
|
-
return child.children;
|
|
3383
|
-
}
|
|
3384
|
-
}).join("");
|
|
3385
|
-
}
|
|
3386
|
-
function renderSlotText(render, props = {}, options) {
|
|
3387
|
-
if (!render) {
|
|
3388
|
-
return void 0;
|
|
3389
|
-
}
|
|
3390
|
-
const nodes = render(props);
|
|
3391
|
-
if (nodes.length === 0) {
|
|
3392
|
-
return void 0;
|
|
3393
|
-
}
|
|
3394
|
-
return collapseWhitespace(getTextContent(nodes, {
|
|
3395
|
-
...defaultOptions,
|
|
3396
|
-
...options
|
|
3397
|
-
}));
|
|
3398
|
-
}
|
|
3399
|
-
function getTextFromScopedSlot(slot) {
|
|
3400
|
-
var _renderSlotText;
|
|
3401
|
-
return (_renderSlotText = renderSlotText(slot)) !== null && _renderSlotText !== void 0 ? _renderSlotText : "";
|
|
3402
|
-
}
|
|
3403
3353
|
function dispatchComponentValidityEvent(element, detail) {
|
|
3404
3354
|
element.dispatchEvent(new CustomEvent("component-validity", {
|
|
3405
3355
|
detail,
|
|
@@ -3508,10 +3458,7 @@ function getHTMLElementFromVueRef(ref) {
|
|
|
3508
3458
|
}
|
|
3509
3459
|
function lazyLoad(fn2) {
|
|
3510
3460
|
let cache;
|
|
3511
|
-
return () =>
|
|
3512
|
-
var _cache;
|
|
3513
|
-
return (_cache = cache) !== null && _cache !== void 0 ? _cache : cache = fn2();
|
|
3514
|
-
};
|
|
3461
|
+
return () => cache !== null && cache !== void 0 ? cache : cache = fn2();
|
|
3515
3462
|
}
|
|
3516
3463
|
const eventTarget = lazyLoad(() => new EventTarget());
|
|
3517
3464
|
const fn = /* @__PURE__ */ new Map();
|
|
@@ -3542,10 +3489,8 @@ var FKUIConfigButtonOrder = /* @__PURE__ */ ((FKUIConfigButtonOrder2) => {
|
|
|
3542
3489
|
let popupContainer = document.body;
|
|
3543
3490
|
let production = true;
|
|
3544
3491
|
const config = {
|
|
3545
|
-
buttonOrder: FKUIConfigButtonOrder.
|
|
3492
|
+
buttonOrder: FKUIConfigButtonOrder.RIGHT_TO_LEFT,
|
|
3546
3493
|
teleportTarget: document.body,
|
|
3547
|
-
modalTarget: null,
|
|
3548
|
-
popupTarget: null,
|
|
3549
3494
|
get popupContainer() {
|
|
3550
3495
|
if (typeof popupContainer === "string") {
|
|
3551
3496
|
const element = document.querySelector(popupContainer);
|
|
@@ -3648,7 +3593,6 @@ function unpackPayload(event, src) {
|
|
|
3648
3593
|
};
|
|
3649
3594
|
}
|
|
3650
3595
|
function openModal(callingInstance, Component, options) {
|
|
3651
|
-
var _config$modalTarget;
|
|
3652
3596
|
if (typeof options === "string") {
|
|
3653
3597
|
return openModal(callingInstance, Component, {
|
|
3654
3598
|
props: {
|
|
@@ -3657,7 +3601,7 @@ function openModal(callingInstance, Component, options) {
|
|
|
3657
3601
|
});
|
|
3658
3602
|
}
|
|
3659
3603
|
const defaultOptions2 = {
|
|
3660
|
-
attachTo:
|
|
3604
|
+
attachTo: config.teleportTarget,
|
|
3661
3605
|
props: {}
|
|
3662
3606
|
};
|
|
3663
3607
|
const {
|
|
@@ -3743,7 +3687,7 @@ function elementIsRadioButton(element) {
|
|
|
3743
3687
|
function isHTMLInputElement(element) {
|
|
3744
3688
|
return element instanceof HTMLInputElement;
|
|
3745
3689
|
}
|
|
3746
|
-
const _sfc_main$
|
|
3690
|
+
const _sfc_main$19 = vue.defineComponent({
|
|
3747
3691
|
name: "FModal",
|
|
3748
3692
|
components: {
|
|
3749
3693
|
FIcon
|
|
@@ -3923,14 +3867,14 @@ const _sfc_main$1d = vue.defineComponent({
|
|
|
3923
3867
|
}
|
|
3924
3868
|
}
|
|
3925
3869
|
});
|
|
3926
|
-
const _hoisted_1$
|
|
3927
|
-
const _hoisted_2$
|
|
3870
|
+
const _hoisted_1$T = ["id"];
|
|
3871
|
+
const _hoisted_2$E = {
|
|
3928
3872
|
class: "modal__backdrop"
|
|
3929
3873
|
};
|
|
3930
|
-
const _hoisted_3$
|
|
3874
|
+
const _hoisted_3$w = {
|
|
3931
3875
|
class: "modal__inner-container"
|
|
3932
3876
|
};
|
|
3933
|
-
const _hoisted_4$
|
|
3877
|
+
const _hoisted_4$q = {
|
|
3934
3878
|
class: "modal__dialog"
|
|
3935
3879
|
};
|
|
3936
3880
|
const _hoisted_5$l = {
|
|
@@ -3939,13 +3883,13 @@ const _hoisted_5$l = {
|
|
|
3939
3883
|
const _hoisted_6$g = {
|
|
3940
3884
|
class: "modal__header"
|
|
3941
3885
|
};
|
|
3942
|
-
const _hoisted_7$
|
|
3886
|
+
const _hoisted_7$d = {
|
|
3943
3887
|
key: 0,
|
|
3944
3888
|
ref: "modalTitle",
|
|
3945
3889
|
class: "modal__title",
|
|
3946
3890
|
tabindex: "-1"
|
|
3947
3891
|
};
|
|
3948
|
-
const _hoisted_8$
|
|
3892
|
+
const _hoisted_8$8 = {
|
|
3949
3893
|
ref: "modalContent",
|
|
3950
3894
|
class: "modal__content",
|
|
3951
3895
|
tabindex: "-1"
|
|
@@ -3957,25 +3901,25 @@ const _hoisted_10$4 = {
|
|
|
3957
3901
|
class: "modal__shelf"
|
|
3958
3902
|
};
|
|
3959
3903
|
const _hoisted_11$3 = ["aria-label"];
|
|
3960
|
-
function _sfc_render
|
|
3904
|
+
function _sfc_render$V(_ctx, _cache, $props, $setup, $data, $options) {
|
|
3961
3905
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
3962
3906
|
return _ctx.isOpen ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3963
3907
|
key: 0,
|
|
3964
3908
|
id: _ctx.id,
|
|
3965
3909
|
class: vue.normalizeClass(["modal", _ctx.modalClass])
|
|
3966
|
-
}, [vue.createElementVNode("div", _hoisted_2$
|
|
3910
|
+
}, [vue.createElementVNode("div", _hoisted_2$E, [vue.createElementVNode("div", {
|
|
3967
3911
|
class: "modal__outer-container scroll-target",
|
|
3968
3912
|
tabindex: "-1",
|
|
3969
3913
|
role: "dialog",
|
|
3970
3914
|
"aria-modal": "true",
|
|
3971
3915
|
onKeyup: _cache[3] || (_cache[3] = vue.withKeys((...args) => _ctx.onClose && _ctx.onClose(...args), ["esc"]))
|
|
3972
|
-
}, [vue.createElementVNode("div", _hoisted_3$
|
|
3916
|
+
}, [vue.createElementVNode("div", _hoisted_3$w, [vue.createElementVNode("div", {
|
|
3973
3917
|
ref: "modalDialogContainer",
|
|
3974
3918
|
class: vue.normalizeClass(["modal__dialog-container", _ctx.containerClasses])
|
|
3975
|
-
}, [vue.createElementVNode("div", _hoisted_4$
|
|
3919
|
+
}, [vue.createElementVNode("div", _hoisted_4$q, [vue.createElementVNode("div", _hoisted_5$l, [vue.createElementVNode("div", _hoisted_6$g, [vue.createElementVNode("div", {
|
|
3976
3920
|
tabindex: "0",
|
|
3977
3921
|
onFocus: _cache[0] || (_cache[0] = (...args) => _ctx.onFocusFirst && _ctx.onFocusFirst(...args))
|
|
3978
|
-
}, null, 32), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasHeaderSlot ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_7$
|
|
3922
|
+
}, null, 32), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasHeaderSlot ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_7$d, [vue.renderSlot(_ctx.$slots, "header")], 512)) : vue.createCommentVNode("", true)]), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_8$8, [vue.renderSlot(_ctx.$slots, "content")], 512), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_9$6, [vue.renderSlot(_ctx.$slots, "footer")])]), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_10$4, [vue.createElementVNode("button", {
|
|
3979
3923
|
type: "button",
|
|
3980
3924
|
class: "close-button",
|
|
3981
3925
|
"aria-label": _ctx.ariaCloseText,
|
|
@@ -3985,9 +3929,9 @@ function _sfc_render$$(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3985
3929
|
})], 8, _hoisted_11$3), _cache[8] || (_cache[8] = vue.createTextVNode()), vue.createElementVNode("div", {
|
|
3986
3930
|
tabindex: "0",
|
|
3987
3931
|
onFocus: _cache[2] || (_cache[2] = (...args) => _ctx.onFocusLast && _ctx.onFocusLast(...args))
|
|
3988
|
-
}, null, 32)])])], 2)])], 32)])], 10, _hoisted_1$
|
|
3932
|
+
}, null, 32)])])], 2)])], 32)])], 10, _hoisted_1$T)) : vue.createCommentVNode("", true);
|
|
3989
3933
|
}
|
|
3990
|
-
const FModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
3934
|
+
const FModal = /* @__PURE__ */ _export_sfc(_sfc_main$19, [["render", _sfc_render$V]]);
|
|
3991
3935
|
function prepareButtonList(src, buttonOrder = config.buttonOrder) {
|
|
3992
3936
|
const list = src.map((it) => {
|
|
3993
3937
|
var _it$event, _ref, _it$reason, _it$type;
|
|
@@ -4016,7 +3960,7 @@ const defaultButtons = [{
|
|
|
4016
3960
|
event: "dismiss",
|
|
4017
3961
|
type: "secondary"
|
|
4018
3962
|
}];
|
|
4019
|
-
const _sfc_main$
|
|
3963
|
+
const _sfc_main$18 = vue.defineComponent({
|
|
4020
3964
|
name: "FConfirmModal",
|
|
4021
3965
|
components: {
|
|
4022
3966
|
FModal
|
|
@@ -4120,15 +4064,15 @@ const _sfc_main$1c = vue.defineComponent({
|
|
|
4120
4064
|
}
|
|
4121
4065
|
}
|
|
4122
4066
|
});
|
|
4123
|
-
const _hoisted_1$
|
|
4067
|
+
const _hoisted_1$S = {
|
|
4124
4068
|
class: "button-group"
|
|
4125
4069
|
};
|
|
4126
|
-
const _hoisted_2$
|
|
4127
|
-
const _hoisted_3$
|
|
4070
|
+
const _hoisted_2$D = ["onClick"];
|
|
4071
|
+
const _hoisted_3$v = {
|
|
4128
4072
|
key: 0,
|
|
4129
4073
|
class: "sr-only"
|
|
4130
4074
|
};
|
|
4131
|
-
function _sfc_render$
|
|
4075
|
+
function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4132
4076
|
const _component_f_modal = vue.resolveComponent("f-modal");
|
|
4133
4077
|
return vue.openBlock(), vue.createBlock(_component_f_modal, {
|
|
4134
4078
|
fullscreen: _ctx.fullscreen,
|
|
@@ -4141,22 +4085,22 @@ function _sfc_render$_(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4141
4085
|
}, {
|
|
4142
4086
|
header: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "heading", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.heading), 1)])]),
|
|
4143
4087
|
content: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "content", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.content), 1)])]),
|
|
4144
|
-
footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$
|
|
4088
|
+
footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$S, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
|
|
4145
4089
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
4146
4090
|
key: button.label,
|
|
4147
4091
|
type: "button",
|
|
4148
4092
|
class: vue.normalizeClass([button.classlist, "button-group__item"]),
|
|
4149
4093
|
onClick: ($event) => _ctx.onClick(button)
|
|
4150
|
-
}, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
4094
|
+
}, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$v, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$D);
|
|
4151
4095
|
}), 128))])]),
|
|
4152
4096
|
_: 3
|
|
4153
4097
|
}, 8, ["fullscreen", "is-open", "aria-close-text", "size", "focus", "onClose"]);
|
|
4154
4098
|
}
|
|
4155
|
-
const FConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4099
|
+
const FConfirmModal = /* @__PURE__ */ _export_sfc(_sfc_main$18, [["render", _sfc_render$U]]);
|
|
4156
4100
|
const GAP = ["1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x"];
|
|
4157
4101
|
const ALIGNMENT = ["top", "center", "bottom"];
|
|
4158
4102
|
const FLOAT = ["left", "center", "right"];
|
|
4159
|
-
const _sfc_main$
|
|
4103
|
+
const _sfc_main$17 = vue.defineComponent({
|
|
4160
4104
|
name: "IFlex",
|
|
4161
4105
|
inheritAttrs: true,
|
|
4162
4106
|
props: {
|
|
@@ -4231,13 +4175,13 @@ const _sfc_main$1b = vue.defineComponent({
|
|
|
4231
4175
|
}
|
|
4232
4176
|
}
|
|
4233
4177
|
});
|
|
4234
|
-
function _sfc_render$
|
|
4178
|
+
function _sfc_render$T(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4235
4179
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4236
4180
|
class: vue.normalizeClass(["iflex", _ctx.classList])
|
|
4237
4181
|
}, [vue.renderSlot(_ctx.$slots, "default")], 2);
|
|
4238
4182
|
}
|
|
4239
|
-
const IFlex = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4240
|
-
const _sfc_main$
|
|
4183
|
+
const IFlex = /* @__PURE__ */ _export_sfc(_sfc_main$17, [["render", _sfc_render$T]]);
|
|
4184
|
+
const _sfc_main$16 = vue.defineComponent({
|
|
4241
4185
|
name: "IFlexItem",
|
|
4242
4186
|
inheritAttrs: true,
|
|
4243
4187
|
props: {
|
|
@@ -4284,12 +4228,12 @@ const _sfc_main$1a = vue.defineComponent({
|
|
|
4284
4228
|
}
|
|
4285
4229
|
}
|
|
4286
4230
|
});
|
|
4287
|
-
function _sfc_render$
|
|
4231
|
+
function _sfc_render$S(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4288
4232
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4289
4233
|
class: vue.normalizeClass(["iflex__item", _ctx.classList])
|
|
4290
4234
|
}, [vue.renderSlot(_ctx.$slots, "default")], 2);
|
|
4291
4235
|
}
|
|
4292
|
-
const IFlexItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4236
|
+
const IFlexItem = /* @__PURE__ */ _export_sfc(_sfc_main$16, [["render", _sfc_render$S]]);
|
|
4293
4237
|
function focusError(item) {
|
|
4294
4238
|
const element = document.querySelector(`#${item.id}`);
|
|
4295
4239
|
if (!element) {
|
|
@@ -4299,7 +4243,7 @@ function focusError(item) {
|
|
|
4299
4243
|
logic.scrollTo(element, window.innerHeight * 0.25);
|
|
4300
4244
|
logic.focus(focusElement2 ? focusElement2 : element);
|
|
4301
4245
|
}
|
|
4302
|
-
const _sfc_main$
|
|
4246
|
+
const _sfc_main$15 = vue.defineComponent({
|
|
4303
4247
|
name: "FErrorList",
|
|
4304
4248
|
components: {
|
|
4305
4249
|
FIcon,
|
|
@@ -4355,24 +4299,24 @@ const _sfc_main$19 = vue.defineComponent({
|
|
|
4355
4299
|
}
|
|
4356
4300
|
}
|
|
4357
4301
|
});
|
|
4358
|
-
const _hoisted_1$
|
|
4302
|
+
const _hoisted_1$R = {
|
|
4359
4303
|
class: "error-list"
|
|
4360
4304
|
};
|
|
4361
|
-
const _hoisted_2$
|
|
4305
|
+
const _hoisted_2$C = {
|
|
4362
4306
|
key: 0
|
|
4363
4307
|
};
|
|
4364
|
-
const _hoisted_3$
|
|
4308
|
+
const _hoisted_3$u = {
|
|
4365
4309
|
class: "error-list__list error-list--list-style-none"
|
|
4366
4310
|
};
|
|
4367
|
-
const _hoisted_4$
|
|
4311
|
+
const _hoisted_4$p = ["onClick"];
|
|
4368
4312
|
const _hoisted_5$k = {
|
|
4369
4313
|
class: "error-list__link"
|
|
4370
4314
|
};
|
|
4371
|
-
function _sfc_render$
|
|
4315
|
+
function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4372
4316
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
4373
4317
|
const _component_i_flex_item = vue.resolveComponent("i-flex-item");
|
|
4374
4318
|
const _component_i_flex = vue.resolveComponent("i-flex");
|
|
4375
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
4319
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$R, [vue.createVNode(_component_i_flex, null, {
|
|
4376
4320
|
default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createBlock(_component_i_flex_item, {
|
|
4377
4321
|
key: 0,
|
|
4378
4322
|
shrink: ""
|
|
@@ -4391,7 +4335,7 @@ function _sfc_render$X(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4391
4335
|
})) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createVNode(_component_i_flex_item, {
|
|
4392
4336
|
grow: ""
|
|
4393
4337
|
}, {
|
|
4394
|
-
default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
4338
|
+
default: vue.withCtx(() => [_ctx.hasTitleSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$C, [vue.renderSlot(_ctx.$slots, "title")])) : vue.createCommentVNode("", true), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("ul", _hoisted_3$u, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item) => {
|
|
4395
4339
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
4396
4340
|
key: item.id,
|
|
4397
4341
|
class: vue.normalizeClass(_ctx.liClasses(item))
|
|
@@ -4406,7 +4350,7 @@ function _sfc_render$X(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4406
4350
|
"aria-hidden": "true"
|
|
4407
4351
|
}, null, -1)), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_5$k, vue.toDisplayString(item.title), 1)], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4408
4352
|
key: 1
|
|
4409
|
-
}, [vue.createTextVNode(vue.toDisplayString(item.title), 1)], 64))], 8, _hoisted_4$
|
|
4353
|
+
}, [vue.createTextVNode(vue.toDisplayString(item.title), 1)], 64))], 8, _hoisted_4$p)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4410
4354
|
key: 1
|
|
4411
4355
|
}, [_ctx.bullets ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4412
4356
|
key: 0
|
|
@@ -4422,7 +4366,7 @@ function _sfc_render$X(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4422
4366
|
_: 3
|
|
4423
4367
|
})]);
|
|
4424
4368
|
}
|
|
4425
|
-
const FErrorList = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4369
|
+
const FErrorList = /* @__PURE__ */ _export_sfc(_sfc_main$15, [["render", _sfc_render$R]]);
|
|
4426
4370
|
function cleanUpElements(vm) {
|
|
4427
4371
|
return new Promise((resolve) => {
|
|
4428
4372
|
window.setTimeout(() => {
|
|
@@ -4436,22 +4380,7 @@ function cleanUpElements(vm) {
|
|
|
4436
4380
|
}, 0);
|
|
4437
4381
|
});
|
|
4438
4382
|
}
|
|
4439
|
-
|
|
4440
|
-
const errorList = Object.values(componentList).filter((component) => {
|
|
4441
|
-
const validity = component instanceof logic.Reference ? component.ref.isValid : component.validityMode;
|
|
4442
|
-
return typeof validity === "boolean" ? validity === false : validity === "ERROR";
|
|
4443
|
-
});
|
|
4444
|
-
errorList.sort((a, b) => {
|
|
4445
|
-
const elementToCompareA = a instanceof logic.Reference ? document.querySelector(`#${a.ref.id}`) : a.target;
|
|
4446
|
-
const elementToCompareB = b instanceof logic.Reference ? document.querySelector(`#${b.ref.id}`) : b.target;
|
|
4447
|
-
return logic.documentOrderComparator(elementToCompareA, elementToCompareB);
|
|
4448
|
-
});
|
|
4449
|
-
return errorList;
|
|
4450
|
-
}
|
|
4451
|
-
function isFormStepReference(reference) {
|
|
4452
|
-
return "isOpen" in reference.ref;
|
|
4453
|
-
}
|
|
4454
|
-
const _sfc_main$18 = vue.defineComponent({
|
|
4383
|
+
const _sfc_main$14 = vue.defineComponent({
|
|
4455
4384
|
name: "FValidationGroup",
|
|
4456
4385
|
props: {
|
|
4457
4386
|
/**
|
|
@@ -4521,19 +4450,19 @@ const _sfc_main$18 = vue.defineComponent({
|
|
|
4521
4450
|
}
|
|
4522
4451
|
}
|
|
4523
4452
|
});
|
|
4524
|
-
function _sfc_render$
|
|
4453
|
+
function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4525
4454
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4526
4455
|
onComponentValidity: _cache[0] || (_cache[0] = (...args) => _ctx.onComponentValidity && _ctx.onComponentValidity(...args)),
|
|
4527
4456
|
onComponentUnmount: _cache[1] || (_cache[1] = (...args) => _ctx.onComponentUnmount && _ctx.onComponentUnmount(...args))
|
|
4528
4457
|
}, [vue.renderSlot(_ctx.$slots, "default")], 32);
|
|
4529
4458
|
}
|
|
4530
|
-
const FValidationGroup = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4459
|
+
const FValidationGroup = /* @__PURE__ */ _export_sfc(_sfc_main$14, [["render", _sfc_render$Q]]);
|
|
4531
4460
|
var FValidationFormAction = /* @__PURE__ */ ((FValidationFormAction2) => {
|
|
4532
4461
|
FValidationFormAction2[FValidationFormAction2["CONTINUE"] = 0] = "CONTINUE";
|
|
4533
4462
|
FValidationFormAction2[FValidationFormAction2["CANCEL"] = 1] = "CANCEL";
|
|
4534
4463
|
return FValidationFormAction2;
|
|
4535
4464
|
})(FValidationFormAction || {});
|
|
4536
|
-
const _sfc_main$
|
|
4465
|
+
const _sfc_main$13 = vue.defineComponent({
|
|
4537
4466
|
name: "FValidationForm",
|
|
4538
4467
|
components: {
|
|
4539
4468
|
FValidationGroup,
|
|
@@ -4672,14 +4601,14 @@ const _sfc_main$17 = vue.defineComponent({
|
|
|
4672
4601
|
}
|
|
4673
4602
|
}
|
|
4674
4603
|
});
|
|
4675
|
-
const _hoisted_1$
|
|
4676
|
-
const _hoisted_2$
|
|
4604
|
+
const _hoisted_1$Q = ["id"];
|
|
4605
|
+
const _hoisted_2$B = {
|
|
4677
4606
|
key: 0,
|
|
4678
4607
|
ref: "errors",
|
|
4679
4608
|
tabindex: "-1",
|
|
4680
4609
|
role: "group"
|
|
4681
4610
|
};
|
|
4682
|
-
function _sfc_render$
|
|
4611
|
+
function _sfc_render$P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4683
4612
|
const _component_f_error_list = vue.resolveComponent("f-error-list");
|
|
4684
4613
|
const _component_f_validation_group = vue.resolveComponent("f-validation-group");
|
|
4685
4614
|
return vue.openBlock(), vue.createBlock(_component_f_validation_group, {
|
|
@@ -4694,19 +4623,19 @@ function _sfc_render$V(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4694
4623
|
novalidate: "",
|
|
4695
4624
|
autocomplete: "off",
|
|
4696
4625
|
onSubmit: _cache[0] || (_cache[0] = vue.withModifiers((...args) => _ctx.onSubmit && _ctx.onSubmit(...args), ["prevent"]))
|
|
4697
|
-
}), [_ctx.displayErrors ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$
|
|
4626
|
+
}), [_ctx.displayErrors ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$B, [vue.createVNode(_component_f_error_list, {
|
|
4698
4627
|
items: _ctx.errors,
|
|
4699
4628
|
bullets: _ctx.errorListBullets,
|
|
4700
4629
|
"before-navigate": _ctx.errorListBeforeNavigate
|
|
4701
4630
|
}, {
|
|
4702
4631
|
title: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message")]),
|
|
4703
4632
|
_: 3
|
|
4704
|
-
}, 8, ["items", "bullets", "before-navigate"])], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$
|
|
4633
|
+
}, 8, ["items", "bullets", "before-navigate"])], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$Q)]),
|
|
4705
4634
|
_: 3
|
|
4706
4635
|
}, 8, ["modelValue"]);
|
|
4707
4636
|
}
|
|
4708
|
-
const FValidationForm = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4709
|
-
const _sfc_main$
|
|
4637
|
+
const FValidationForm = /* @__PURE__ */ _export_sfc(_sfc_main$13, [["render", _sfc_render$P]]);
|
|
4638
|
+
const _sfc_main$12 = vue.defineComponent({
|
|
4710
4639
|
name: "FFormModal",
|
|
4711
4640
|
components: {
|
|
4712
4641
|
FModal,
|
|
@@ -4825,10 +4754,7 @@ const _sfc_main$16 = vue.defineComponent({
|
|
|
4825
4754
|
},
|
|
4826
4755
|
computed: {
|
|
4827
4756
|
preparedButtons() {
|
|
4828
|
-
return prepareButtonList(this.buttons, FKUIConfigButtonOrder.
|
|
4829
|
-
},
|
|
4830
|
-
hasDeprecatedSlots() {
|
|
4831
|
-
return hasSlot(this, "cancel-button-text") || hasSlot(this, "submit-button-text");
|
|
4757
|
+
return prepareButtonList(this.buttons, FKUIConfigButtonOrder.RIGHT_TO_LEFT);
|
|
4832
4758
|
}
|
|
4833
4759
|
},
|
|
4834
4760
|
methods: {
|
|
@@ -4858,16 +4784,15 @@ const _sfc_main$16 = vue.defineComponent({
|
|
|
4858
4784
|
}
|
|
4859
4785
|
}
|
|
4860
4786
|
});
|
|
4861
|
-
const _hoisted_1$
|
|
4787
|
+
const _hoisted_1$P = {
|
|
4862
4788
|
class: "button-group"
|
|
4863
4789
|
};
|
|
4864
|
-
const _hoisted_2$
|
|
4865
|
-
const _hoisted_3$
|
|
4790
|
+
const _hoisted_2$A = ["type", "form", "onClick"];
|
|
4791
|
+
const _hoisted_3$t = {
|
|
4866
4792
|
key: 0,
|
|
4867
4793
|
class: "sr-only"
|
|
4868
4794
|
};
|
|
4869
|
-
|
|
4870
|
-
function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4795
|
+
function _sfc_render$O(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4871
4796
|
const _component_f_validation_form = vue.resolveComponent("f-validation-form");
|
|
4872
4797
|
const _component_f_modal = vue.resolveComponent("f-modal");
|
|
4873
4798
|
return vue.openBlock(), vue.createBlock(_component_f_modal, {
|
|
@@ -4879,7 +4804,7 @@ function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4879
4804
|
onClose: _ctx.onClose
|
|
4880
4805
|
}, {
|
|
4881
4806
|
header: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "header")]),
|
|
4882
|
-
content: vue.withCtx(() => [vue.createElementVNode("div", null, [vue.renderSlot(_ctx.$slots, "default")]), _cache[
|
|
4807
|
+
content: vue.withCtx(() => [vue.createElementVNode("div", null, [vue.renderSlot(_ctx.$slots, "default")]), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_f_validation_form, {
|
|
4883
4808
|
id: _ctx.formId,
|
|
4884
4809
|
"before-submit": _ctx.beforeSubmit,
|
|
4885
4810
|
"before-validation": _ctx.beforeValidation,
|
|
@@ -4888,36 +4813,22 @@ function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
4888
4813
|
onCancel: _ctx.onCancel
|
|
4889
4814
|
}, {
|
|
4890
4815
|
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message")]),
|
|
4891
|
-
default: vue.withCtx(() => [_cache[
|
|
4816
|
+
default: vue.withCtx(() => [_cache[0] || (_cache[0] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "input-text-fields")]),
|
|
4892
4817
|
_: 3
|
|
4893
4818
|
}, 8, ["id", "before-submit", "before-validation", "use-error-list", "onSubmit", "onCancel"])]),
|
|
4894
|
-
footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$
|
|
4895
|
-
key: 0
|
|
4896
|
-
}, vue.renderList(_ctx.preparedButtons, (button) => {
|
|
4819
|
+
footer: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$P, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.preparedButtons, (button) => {
|
|
4897
4820
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
4898
4821
|
key: button.label,
|
|
4899
4822
|
type: button.buttonType,
|
|
4900
4823
|
class: vue.normalizeClass([button.classlist, "button-group__item"]),
|
|
4901
4824
|
form: button.buttonType === "submit" ? _ctx.formId : void 0,
|
|
4902
4825
|
onClick: ($event) => button.buttonType === "button" ? _ctx.onCancel() : false
|
|
4903
|
-
}, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[
|
|
4904
|
-
}), 128))
|
|
4905
|
-
key: 1
|
|
4906
|
-
}, [vue.createElementVNode("button", {
|
|
4907
|
-
form: _ctx.formId,
|
|
4908
|
-
"data-test": "submit-button",
|
|
4909
|
-
type: "submit",
|
|
4910
|
-
class: "button button--primary button-group__item button--large"
|
|
4911
|
-
}, [vue.renderSlot(_ctx.$slots, "submit-button-text", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.form-modal.button.submit.text", "Spara")), 1)])], 8, _hoisted_4$p), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("button", {
|
|
4912
|
-
"data-test": "cancel-button",
|
|
4913
|
-
type: "button",
|
|
4914
|
-
class: "button button--secondary button-group__item button--large",
|
|
4915
|
-
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onCancel && _ctx.onCancel(...args))
|
|
4916
|
-
}, [vue.renderSlot(_ctx.$slots, "cancel-button-text", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.form-modal.button.cancel.text", "Avbryt")), 1)])])], 64))])]),
|
|
4826
|
+
}, [vue.createElementVNode("span", null, vue.toDisplayString(button.label), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), button.screenreader ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$t, " " + vue.toDisplayString(button.screenreader), 1)) : vue.createCommentVNode("", true)], 10, _hoisted_2$A);
|
|
4827
|
+
}), 128))])]),
|
|
4917
4828
|
_: 3
|
|
4918
4829
|
}, 8, ["data-test", "fullscreen", "is-open", "size", "aria-close-text", "onClose"]);
|
|
4919
4830
|
}
|
|
4920
|
-
const FFormModal = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
4831
|
+
const FFormModal = /* @__PURE__ */ _export_sfc(_sfc_main$12, [["render", _sfc_render$O]]);
|
|
4921
4832
|
async function confirmModal(callingInstance, texts) {
|
|
4922
4833
|
const buttons = [{
|
|
4923
4834
|
label: texts.confirm,
|
|
@@ -4966,6 +4877,52 @@ function getInputElement(vm) {
|
|
|
4966
4877
|
}
|
|
4967
4878
|
return inputElement;
|
|
4968
4879
|
}
|
|
4880
|
+
const defaultOptions = {
|
|
4881
|
+
stripClasses: ["sr-only"]
|
|
4882
|
+
};
|
|
4883
|
+
function collapseWhitespace(text) {
|
|
4884
|
+
return text.replace(/\s+/gm, " ").replace(/(^ | $)/g, "");
|
|
4885
|
+
}
|
|
4886
|
+
function intersection(a, b) {
|
|
4887
|
+
return a.filter((it) => b.includes(it));
|
|
4888
|
+
}
|
|
4889
|
+
function excludeClass(exclude) {
|
|
4890
|
+
return (node) => {
|
|
4891
|
+
var _a;
|
|
4892
|
+
if (typeof ((_a = node.props) == null ? void 0 : _a.class) !== "string") {
|
|
4893
|
+
return true;
|
|
4894
|
+
}
|
|
4895
|
+
const classes = node.props.class.split(/\s+/);
|
|
4896
|
+
const matches = intersection(classes, exclude);
|
|
4897
|
+
return matches.length === 0;
|
|
4898
|
+
};
|
|
4899
|
+
}
|
|
4900
|
+
function excludeComment(node) {
|
|
4901
|
+
return node.type !== vue.Comment;
|
|
4902
|
+
}
|
|
4903
|
+
function getTextContent(children, options) {
|
|
4904
|
+
return children.filter(vue.isVNode).filter(excludeComment).filter(excludeClass(options.stripClasses)).map((child) => {
|
|
4905
|
+
if (Array.isArray(child.children)) {
|
|
4906
|
+
return getTextContent(child.children, options);
|
|
4907
|
+
}
|
|
4908
|
+
if (typeof child.children === "string") {
|
|
4909
|
+
return child.children;
|
|
4910
|
+
}
|
|
4911
|
+
}).join("");
|
|
4912
|
+
}
|
|
4913
|
+
function renderSlotText(render, props = {}, options) {
|
|
4914
|
+
if (!render) {
|
|
4915
|
+
return void 0;
|
|
4916
|
+
}
|
|
4917
|
+
const nodes = render(props);
|
|
4918
|
+
if (nodes.length === 0) {
|
|
4919
|
+
return void 0;
|
|
4920
|
+
}
|
|
4921
|
+
return collapseWhitespace(getTextContent(nodes, {
|
|
4922
|
+
...defaultOptions,
|
|
4923
|
+
...options
|
|
4924
|
+
}));
|
|
4925
|
+
}
|
|
4969
4926
|
function hasSlot(vm, name, props = {}, options = {}) {
|
|
4970
4927
|
const slot = vm.$slots[name];
|
|
4971
4928
|
return Boolean(renderSlotText(slot, props, options));
|
|
@@ -5022,7 +4979,7 @@ function toPrimitive(t, r) {
|
|
|
5022
4979
|
if ("object" != _typeof(t) || !t) return t;
|
|
5023
4980
|
var e = t[Symbol.toPrimitive];
|
|
5024
4981
|
if (void 0 !== e) {
|
|
5025
|
-
var i = e.call(t, r
|
|
4982
|
+
var i = e.call(t, r);
|
|
5026
4983
|
if ("object" != _typeof(i)) return i;
|
|
5027
4984
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
5028
4985
|
}
|
|
@@ -5068,18 +5025,6 @@ class FormErrorList {
|
|
|
5068
5025
|
Object.assign(this, fields);
|
|
5069
5026
|
}
|
|
5070
5027
|
}
|
|
5071
|
-
class FormStep {
|
|
5072
|
-
constructor(fields) {
|
|
5073
|
-
_defineProperty(this, "isOpen", false);
|
|
5074
|
-
_defineProperty(this, "isAnyFieldTouched", false);
|
|
5075
|
-
_defineProperty(this, "focusElementId", "");
|
|
5076
|
-
_defineProperty(this, "id", "");
|
|
5077
|
-
_defineProperty(this, "isValid", false);
|
|
5078
|
-
_defineProperty(this, "numberOfTimesSubmitted", 0);
|
|
5079
|
-
_defineProperty(this, "title", "");
|
|
5080
|
-
Object.assign(this, fields);
|
|
5081
|
-
}
|
|
5082
|
-
}
|
|
5083
5028
|
var MenuAction = /* @__PURE__ */ ((MenuAction2) => {
|
|
5084
5029
|
MenuAction2[MenuAction2["MOVE_NEXT"] = 0] = "MOVE_NEXT";
|
|
5085
5030
|
MenuAction2[MenuAction2["MOVE_PREV"] = 1] = "MOVE_PREV";
|
|
@@ -5151,7 +5096,7 @@ function getValidatableElement(element) {
|
|
|
5151
5096
|
throw new Error(`Couldn't find any validatable element`);
|
|
5152
5097
|
}
|
|
5153
5098
|
}
|
|
5154
|
-
function
|
|
5099
|
+
function triggerInitialValidation(el) {
|
|
5155
5100
|
const target = getValidatableElement(el);
|
|
5156
5101
|
logic.ValidationService.validateElement(target);
|
|
5157
5102
|
}
|
|
@@ -5187,7 +5132,7 @@ const ValidationDirective = {
|
|
|
5187
5132
|
}
|
|
5188
5133
|
},
|
|
5189
5134
|
mounted(el) {
|
|
5190
|
-
|
|
5135
|
+
triggerInitialValidation(el);
|
|
5191
5136
|
}
|
|
5192
5137
|
};
|
|
5193
5138
|
const ValidationPrefixDirective = {
|
|
@@ -5243,7 +5188,7 @@ const ErrorPlugin = {
|
|
|
5243
5188
|
}
|
|
5244
5189
|
}
|
|
5245
5190
|
};
|
|
5246
|
-
const _sfc_main$
|
|
5191
|
+
const _sfc_main$11 = vue.defineComponent({
|
|
5247
5192
|
name: "FErrorPage",
|
|
5248
5193
|
props: {
|
|
5249
5194
|
payload: {
|
|
@@ -5253,16 +5198,16 @@ const _sfc_main$15 = vue.defineComponent({
|
|
|
5253
5198
|
}
|
|
5254
5199
|
}
|
|
5255
5200
|
});
|
|
5256
|
-
const _hoisted_1$
|
|
5201
|
+
const _hoisted_1$O = {
|
|
5257
5202
|
"data-test": "f-error-page"
|
|
5258
5203
|
};
|
|
5259
|
-
function _sfc_render$
|
|
5260
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5204
|
+
function _sfc_render$N(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5205
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$O, _cache[0] || (_cache[0] = [vue.createElementVNode("h1", null, "Fel", -1), vue.createTextVNode(), vue.createElementVNode("p", null, "Ett fel har uppstått.", -1), vue.createTextVNode(), vue.createElementVNode("a", {
|
|
5261
5206
|
href: "/"
|
|
5262
5207
|
}, "Gå till startsidan", -1)]));
|
|
5263
5208
|
}
|
|
5264
|
-
const FErrorPage = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5265
|
-
const _sfc_main$
|
|
5209
|
+
const FErrorPage = /* @__PURE__ */ _export_sfc(_sfc_main$11, [["render", _sfc_render$N]]);
|
|
5210
|
+
const _sfc_main$10 = vue.defineComponent({
|
|
5266
5211
|
name: "FErrorHandlingApp",
|
|
5267
5212
|
props: {
|
|
5268
5213
|
defaultComponent: {
|
|
@@ -5291,7 +5236,7 @@ const _sfc_main$14 = vue.defineComponent({
|
|
|
5291
5236
|
});
|
|
5292
5237
|
}
|
|
5293
5238
|
});
|
|
5294
|
-
function _sfc_render$
|
|
5239
|
+
function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5295
5240
|
return vue.openBlock(), vue.createElementBlock("div", null, [_ctx.hasError ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.errorComponent), {
|
|
5296
5241
|
key: 0,
|
|
5297
5242
|
payload: _ctx.payload
|
|
@@ -5301,7 +5246,7 @@ function _sfc_render$S(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5301
5246
|
key: 2
|
|
5302
5247
|
})]);
|
|
5303
5248
|
}
|
|
5304
|
-
const FErrorHandlingApp = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5249
|
+
const FErrorHandlingApp = /* @__PURE__ */ _export_sfc(_sfc_main$10, [["render", _sfc_render$M]]);
|
|
5305
5250
|
function isMonthBefore(date2, minDate) {
|
|
5306
5251
|
return Boolean(minDate && date2.isBefore(minDate.startOfMonth()));
|
|
5307
5252
|
}
|
|
@@ -5342,7 +5287,7 @@ function getMessage($t2, date2, minDate, maxDate) {
|
|
|
5342
5287
|
});
|
|
5343
5288
|
}
|
|
5344
5289
|
}
|
|
5345
|
-
const _sfc_main
|
|
5290
|
+
const _sfc_main$$ = vue.defineComponent({
|
|
5346
5291
|
name: "ICalendarNavbar",
|
|
5347
5292
|
components: {
|
|
5348
5293
|
FIcon
|
|
@@ -5411,7 +5356,6 @@ const _sfc_main$13 = vue.defineComponent({
|
|
|
5411
5356
|
onClickPreviousButton() {
|
|
5412
5357
|
if (!this.previousDisabled) {
|
|
5413
5358
|
this.$emit("update:modelValue", this.previousValue);
|
|
5414
|
-
this.$emit("change", this.previousValue);
|
|
5415
5359
|
const previousMonth = this.getDateText(this.previousValue);
|
|
5416
5360
|
const previousMonthText = this.$t("fkui.calendar-navbar.previous-month", "{{ previousMonth }} visas", {
|
|
5417
5361
|
previousMonth
|
|
@@ -5456,14 +5400,14 @@ const _sfc_main$13 = vue.defineComponent({
|
|
|
5456
5400
|
}
|
|
5457
5401
|
}
|
|
5458
5402
|
});
|
|
5459
|
-
const _hoisted_1$
|
|
5403
|
+
const _hoisted_1$N = {
|
|
5460
5404
|
class: "calendar-navbar"
|
|
5461
5405
|
};
|
|
5462
|
-
const _hoisted_2$
|
|
5406
|
+
const _hoisted_2$z = {
|
|
5463
5407
|
class: "calendar-navbar__month",
|
|
5464
5408
|
tabindex: "-1"
|
|
5465
5409
|
};
|
|
5466
|
-
const _hoisted_3$
|
|
5410
|
+
const _hoisted_3$s = ["aria-disabled", "aria-live"];
|
|
5467
5411
|
const _hoisted_4$o = {
|
|
5468
5412
|
class: "sr-only"
|
|
5469
5413
|
};
|
|
@@ -5471,9 +5415,9 @@ const _hoisted_5$j = ["aria-disabled", "aria-live"];
|
|
|
5471
5415
|
const _hoisted_6$f = {
|
|
5472
5416
|
class: "sr-only"
|
|
5473
5417
|
};
|
|
5474
|
-
function _sfc_render$
|
|
5418
|
+
function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5475
5419
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
5476
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5420
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$N, [vue.createElementVNode("div", _hoisted_2$z, vue.toDisplayString(_ctx.currentText), 1), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("button", {
|
|
5477
5421
|
ref: "previousButton",
|
|
5478
5422
|
class: "calendar-navbar__arrow calendar-navbar__arrow--previous",
|
|
5479
5423
|
type: "button",
|
|
@@ -5483,7 +5427,7 @@ function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5483
5427
|
}, [vue.createElementVNode("span", _hoisted_4$o, vue.toDisplayString(_ctx.previousSrText), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
5484
5428
|
class: vue.normalizeClass(_ctx.previousIconClasses),
|
|
5485
5429
|
name: "arrow-right"
|
|
5486
|
-
}, null, 8, ["class"])], 8, _hoisted_3$
|
|
5430
|
+
}, null, 8, ["class"])], 8, _hoisted_3$s), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("button", {
|
|
5487
5431
|
ref: "nextButton",
|
|
5488
5432
|
class: "calendar-navbar__arrow calendar-navbar__arrow--next",
|
|
5489
5433
|
type: "button",
|
|
@@ -5495,14 +5439,14 @@ function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5495
5439
|
name: "arrow-right"
|
|
5496
5440
|
}, null, 8, ["class"])], 8, _hoisted_5$j)]);
|
|
5497
5441
|
}
|
|
5498
|
-
const ICalendarNavbar = /* @__PURE__ */ _export_sfc(_sfc_main
|
|
5442
|
+
const ICalendarNavbar = /* @__PURE__ */ _export_sfc(_sfc_main$$, [["render", _sfc_render$L]]);
|
|
5499
5443
|
function getDayStartOffset(days) {
|
|
5500
5444
|
return days[0].weekDay - 1;
|
|
5501
5445
|
}
|
|
5502
5446
|
function getDayEndOffset(days) {
|
|
5503
5447
|
return 7 - days[days.length - 1].weekDay;
|
|
5504
5448
|
}
|
|
5505
|
-
const _sfc_main$
|
|
5449
|
+
const _sfc_main$_ = vue.defineComponent({
|
|
5506
5450
|
name: "ICalendarMonthGrid",
|
|
5507
5451
|
props: {
|
|
5508
5452
|
/**
|
|
@@ -5576,12 +5520,12 @@ const _sfc_main$12 = vue.defineComponent({
|
|
|
5576
5520
|
}
|
|
5577
5521
|
}
|
|
5578
5522
|
});
|
|
5579
|
-
const _hoisted_1$
|
|
5580
|
-
const _hoisted_2$
|
|
5523
|
+
const _hoisted_1$M = ["aria-label"];
|
|
5524
|
+
const _hoisted_2$y = {
|
|
5581
5525
|
key: 0,
|
|
5582
5526
|
class: "calendar-month__col--week"
|
|
5583
5527
|
};
|
|
5584
|
-
const _hoisted_3$
|
|
5528
|
+
const _hoisted_3$r = {
|
|
5585
5529
|
key: 0,
|
|
5586
5530
|
scope: "col",
|
|
5587
5531
|
"aria-hidden": "true",
|
|
@@ -5594,8 +5538,8 @@ const _hoisted_5$i = {
|
|
|
5594
5538
|
"aria-hidden": "true"
|
|
5595
5539
|
};
|
|
5596
5540
|
const _hoisted_6$e = ["colspan"];
|
|
5597
|
-
const _hoisted_7$
|
|
5598
|
-
const _hoisted_8$
|
|
5541
|
+
const _hoisted_7$c = ["colspan"];
|
|
5542
|
+
const _hoisted_8$7 = {
|
|
5599
5543
|
key: 0,
|
|
5600
5544
|
"aria-hidden": "true"
|
|
5601
5545
|
};
|
|
@@ -5605,14 +5549,14 @@ const _hoisted_10$3 = {
|
|
|
5605
5549
|
"aria-hidden": "true"
|
|
5606
5550
|
};
|
|
5607
5551
|
const _hoisted_11$2 = ["colspan"];
|
|
5608
|
-
function _sfc_render$
|
|
5552
|
+
function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5609
5553
|
return vue.openBlock(), vue.createElementBlock("table", {
|
|
5610
5554
|
class: "calendar-month__table",
|
|
5611
5555
|
role: "grid",
|
|
5612
5556
|
"aria-label": _ctx.ariaLabel,
|
|
5613
5557
|
onFocusin: _cache[0] || (_cache[0] = (...args) => _ctx.onFocusin && _ctx.onFocusin(...args)),
|
|
5614
5558
|
onFocusout: _cache[1] || (_cache[1] = (...args) => _ctx.onFocusout && _ctx.onFocusout(...args))
|
|
5615
|
-
}, [vue.createElementVNode("colgroup", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_2$
|
|
5559
|
+
}, [vue.createElementVNode("colgroup", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("col", _hoisted_2$y)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _cache[3] || (_cache[3] = vue.createElementVNode("col", {
|
|
5616
5560
|
class: "calendar-month__col--day"
|
|
5617
5561
|
}, null, -1)), _cache[4] || (_cache[4] = vue.createTextVNode()), _cache[5] || (_cache[5] = vue.createElementVNode("col", {
|
|
5618
5562
|
class: "calendar-month__col--day"
|
|
@@ -5626,7 +5570,7 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5626
5570
|
class: "calendar-month__col--day"
|
|
5627
5571
|
}, null, -1)), _cache[14] || (_cache[14] = vue.createTextVNode()), _cache[15] || (_cache[15] = vue.createElementVNode("col", {
|
|
5628
5572
|
class: "calendar-month__col--day"
|
|
5629
|
-
}, null, -1))]), _cache[22] || (_cache[22] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_3$
|
|
5573
|
+
}, null, -1))]), _cache[22] || (_cache[22] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", null, [!_ctx.internalHideWeekNumbers ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_3$r)) : vue.createCommentVNode("", true), _cache[16] || (_cache[16] = vue.createTextVNode()), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.weekdays, (weekday) => {
|
|
5630
5574
|
return vue.openBlock(), vue.createElementBlock("th", {
|
|
5631
5575
|
key: weekday.name,
|
|
5632
5576
|
scope: "col",
|
|
@@ -5656,8 +5600,8 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5656
5600
|
class: "calendar-month__cell",
|
|
5657
5601
|
colspan: _ctx.getDayEndOffset(week.days),
|
|
5658
5602
|
"aria-hidden": "true"
|
|
5659
|
-
}, null, 8, _hoisted_7$
|
|
5660
|
-
}), 128)), _cache[20] || (_cache[20] = vue.createTextVNode()), _ctx.weeks.length < 5 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_8$
|
|
5603
|
+
}, null, 8, _hoisted_7$c)) : vue.createCommentVNode("", true)]);
|
|
5604
|
+
}), 128)), _cache[20] || (_cache[20] = vue.createTextVNode()), _ctx.weeks.length < 5 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_8$7, [vue.createElementVNode("td", {
|
|
5661
5605
|
class: "calendar-month__cell",
|
|
5662
5606
|
colspan: _ctx.totalCols,
|
|
5663
5607
|
"aria-hidden": "true"
|
|
@@ -5665,9 +5609,9 @@ function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5665
5609
|
class: "calendar-month__cell",
|
|
5666
5610
|
colspan: _ctx.totalCols,
|
|
5667
5611
|
"aria-hidden": "true"
|
|
5668
|
-
}, null, 8, _hoisted_11$2)])) : vue.createCommentVNode("", true)])], 40, _hoisted_1$
|
|
5612
|
+
}, null, 8, _hoisted_11$2)])) : vue.createCommentVNode("", true)])], 40, _hoisted_1$M);
|
|
5669
5613
|
}
|
|
5670
|
-
const ICalendarMonthGrid = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5614
|
+
const ICalendarMonthGrid = /* @__PURE__ */ _export_sfc(_sfc_main$_, [["render", _sfc_render$K]]);
|
|
5671
5615
|
const DayStep = {
|
|
5672
5616
|
ArrowRight: 1,
|
|
5673
5617
|
ArrowLeft: -1,
|
|
@@ -5691,7 +5635,7 @@ function getDayTabindex(date2, active, entry) {
|
|
|
5691
5635
|
return date2.day === 1 ? 0 : -1;
|
|
5692
5636
|
}
|
|
5693
5637
|
}
|
|
5694
|
-
const _sfc_main$
|
|
5638
|
+
const _sfc_main$Z = vue.defineComponent({
|
|
5695
5639
|
name: "ICalendarMonth",
|
|
5696
5640
|
components: {
|
|
5697
5641
|
ICalendarMonthGrid
|
|
@@ -5758,7 +5702,6 @@ const _sfc_main$11 = vue.defineComponent({
|
|
|
5758
5702
|
return;
|
|
5759
5703
|
}
|
|
5760
5704
|
this.$emit("update:modelValue", navigatedMonth);
|
|
5761
|
-
this.$emit("change", navigatedMonth);
|
|
5762
5705
|
if (navigatedDay.month !== date2.month) {
|
|
5763
5706
|
await this.$nextTick();
|
|
5764
5707
|
}
|
|
@@ -5782,8 +5725,8 @@ const _sfc_main$11 = vue.defineComponent({
|
|
|
5782
5725
|
}
|
|
5783
5726
|
}
|
|
5784
5727
|
});
|
|
5785
|
-
const _hoisted_1$
|
|
5786
|
-
function _sfc_render$
|
|
5728
|
+
const _hoisted_1$L = ["data-date", "tabindex", "onClick", "onKeydown"];
|
|
5729
|
+
function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5787
5730
|
const _component_i_calendar_month_grid = vue.resolveComponent("i-calendar-month-grid");
|
|
5788
5731
|
return vue.openBlock(), vue.createBlock(_component_i_calendar_month_grid, {
|
|
5789
5732
|
value: _ctx.modelValue
|
|
@@ -5802,12 +5745,12 @@ function _sfc_render$P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5802
5745
|
}, [vue.renderSlot(_ctx.$slots, "default", {
|
|
5803
5746
|
date: date2,
|
|
5804
5747
|
isFocused: _ctx.isDayFocused(date2)
|
|
5805
|
-
})], 40, _hoisted_1$
|
|
5748
|
+
})], 40, _hoisted_1$L)]),
|
|
5806
5749
|
_: 3
|
|
5807
5750
|
}, 8, ["value"]);
|
|
5808
5751
|
}
|
|
5809
|
-
const ICalendarMonth = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5810
|
-
const _sfc_main$
|
|
5752
|
+
const ICalendarMonth = /* @__PURE__ */ _export_sfc(_sfc_main$Z, [["render", _sfc_render$J]]);
|
|
5753
|
+
const _sfc_main$Y = vue.defineComponent({
|
|
5811
5754
|
name: "FCalendar",
|
|
5812
5755
|
components: {
|
|
5813
5756
|
ICalendarNavbar,
|
|
@@ -5848,24 +5791,23 @@ const _sfc_main$10 = vue.defineComponent({
|
|
|
5848
5791
|
required: true
|
|
5849
5792
|
}
|
|
5850
5793
|
},
|
|
5851
|
-
emits: ["click", "
|
|
5794
|
+
emits: ["click", "update:modelValue"],
|
|
5852
5795
|
methods: {
|
|
5853
5796
|
onClickDay(date2) {
|
|
5854
5797
|
this.$emit("click", date2);
|
|
5855
5798
|
},
|
|
5856
5799
|
onChangeMonth(date2) {
|
|
5857
5800
|
this.$emit("update:modelValue", date2);
|
|
5858
|
-
this.$emit("change", date2);
|
|
5859
5801
|
}
|
|
5860
5802
|
}
|
|
5861
5803
|
});
|
|
5862
|
-
const _hoisted_1$
|
|
5804
|
+
const _hoisted_1$K = {
|
|
5863
5805
|
class: "calendar__wrapper"
|
|
5864
5806
|
};
|
|
5865
|
-
function _sfc_render$
|
|
5807
|
+
function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5866
5808
|
const _component_i_calendar_navbar = vue.resolveComponent("i-calendar-navbar");
|
|
5867
5809
|
const _component_i_calendar_month = vue.resolveComponent("i-calendar-month");
|
|
5868
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
5810
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$K, [vue.createVNode(_component_i_calendar_navbar, {
|
|
5869
5811
|
"model-value": _ctx.modelValue,
|
|
5870
5812
|
"min-date": _ctx.minDate,
|
|
5871
5813
|
"max-date": _ctx.maxDate,
|
|
@@ -5888,7 +5830,7 @@ function _sfc_render$O(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
5888
5830
|
_: 3
|
|
5889
5831
|
}, 8, ["model-value", "min-date", "max-date", "tab-date", "onClick", "onUpdate:modelValue"])]);
|
|
5890
5832
|
}
|
|
5891
|
-
const FCalendar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
5833
|
+
const FCalendar = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["render", _sfc_render$I]]);
|
|
5892
5834
|
function getCalendarDaySrText(day, enabled, selected, t) {
|
|
5893
5835
|
const parts = [];
|
|
5894
5836
|
if (!enabled) {
|
|
@@ -5907,7 +5849,7 @@ function getCalendarDaySrText(day, enabled, selected, t) {
|
|
|
5907
5849
|
parts.push(day.toString(date.DateFormat.FULL));
|
|
5908
5850
|
return parts.join(" ");
|
|
5909
5851
|
}
|
|
5910
|
-
const _sfc_main
|
|
5852
|
+
const _sfc_main$X = vue.defineComponent({
|
|
5911
5853
|
name: "FCalendarDay",
|
|
5912
5854
|
mixins: [TranslationMixin],
|
|
5913
5855
|
props: {
|
|
@@ -5972,18 +5914,18 @@ const _sfc_main$$ = vue.defineComponent({
|
|
|
5972
5914
|
}
|
|
5973
5915
|
}
|
|
5974
5916
|
});
|
|
5975
|
-
const _hoisted_1$
|
|
5917
|
+
const _hoisted_1$J = {
|
|
5976
5918
|
"aria-hidden": "true"
|
|
5977
5919
|
};
|
|
5978
|
-
const _hoisted_2$
|
|
5920
|
+
const _hoisted_2$x = {
|
|
5979
5921
|
class: "sr-only"
|
|
5980
5922
|
};
|
|
5981
|
-
function _sfc_render$
|
|
5923
|
+
function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
|
|
5982
5924
|
return vue.openBlock(), vue.createElementBlock("span", {
|
|
5983
5925
|
class: vue.normalizeClass(_ctx.dayClasses)
|
|
5984
|
-
}, [vue.createElementVNode("span", _hoisted_1$
|
|
5926
|
+
}, [vue.createElementVNode("span", _hoisted_1$J, vue.toDisplayString(_ctx.day.day), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_2$x, vue.toDisplayString(_ctx.srText), 1)], 2);
|
|
5985
5927
|
}
|
|
5986
|
-
const FCalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main
|
|
5928
|
+
const FCalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$X, [["render", _sfc_render$H]]);
|
|
5987
5929
|
function useEventListener(target, event, callback) {
|
|
5988
5930
|
vue.onMounted(() => {
|
|
5989
5931
|
var _a;
|
|
@@ -6004,19 +5946,19 @@ function useSlotUtils() {
|
|
|
6004
5946
|
}
|
|
6005
5947
|
};
|
|
6006
5948
|
}
|
|
6007
|
-
const _hoisted_1$
|
|
6008
|
-
const _hoisted_2$
|
|
5949
|
+
const _hoisted_1$I = ["id"];
|
|
5950
|
+
const _hoisted_2$w = {
|
|
6009
5951
|
key: 0,
|
|
6010
5952
|
class: "card__header"
|
|
6011
5953
|
};
|
|
6012
|
-
const _hoisted_3$
|
|
5954
|
+
const _hoisted_3$q = {
|
|
6013
5955
|
class: "card__content"
|
|
6014
5956
|
};
|
|
6015
5957
|
const _hoisted_4$m = {
|
|
6016
5958
|
key: 1,
|
|
6017
5959
|
class: "card__footer"
|
|
6018
5960
|
};
|
|
6019
|
-
const _sfc_main$
|
|
5961
|
+
const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
|
|
6020
5962
|
__name: "FCard",
|
|
6021
5963
|
props: {
|
|
6022
5964
|
/**
|
|
@@ -6074,7 +6016,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
6074
6016
|
id: __props.id,
|
|
6075
6017
|
class: vue.normalizeClass(cardClass.value),
|
|
6076
6018
|
onValidity
|
|
6077
|
-
}, [hasHeaderSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
6019
|
+
}, [hasHeaderSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$w, [vue.renderSlot(_ctx.$slots, "header", vue.normalizeProps(vue.guardReactiveProps({
|
|
6078
6020
|
headingSlotClass: "card__header-label"
|
|
6079
6021
|
})))])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
6080
6022
|
hasError: hasError.value,
|
|
@@ -6099,14 +6041,14 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
6099
6041
|
_: 1
|
|
6100
6042
|
})]),
|
|
6101
6043
|
_: 1
|
|
6102
|
-
})) : vue.createCommentVNode("", true)]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_3$
|
|
6044
|
+
})) : vue.createCommentVNode("", true)]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_3$q, [vue.renderSlot(_ctx.$slots, "default")]), _cache[3] || (_cache[3] = vue.createTextVNode()), hasFooterSlot.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$m, [vue.renderSlot(_ctx.$slots, "footer", vue.normalizeProps(vue.guardReactiveProps({
|
|
6103
6045
|
hasError: hasError.value,
|
|
6104
6046
|
validationMessage: validationMessage.value
|
|
6105
|
-
})))])) : vue.createCommentVNode("", true)], 42, _hoisted_1$
|
|
6047
|
+
})))])) : vue.createCommentVNode("", true)], 42, _hoisted_1$I);
|
|
6106
6048
|
};
|
|
6107
6049
|
}
|
|
6108
6050
|
});
|
|
6109
|
-
const _sfc_main$
|
|
6051
|
+
const _sfc_main$V = vue.defineComponent({
|
|
6110
6052
|
name: "FExpand",
|
|
6111
6053
|
data() {
|
|
6112
6054
|
return {
|
|
@@ -6160,7 +6102,7 @@ const _sfc_main$Z = vue.defineComponent({
|
|
|
6160
6102
|
}
|
|
6161
6103
|
}
|
|
6162
6104
|
});
|
|
6163
|
-
function _sfc_render$
|
|
6105
|
+
function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6164
6106
|
return vue.openBlock(), vue.createBlock(vue.Transition, {
|
|
6165
6107
|
onEnter: _ctx.enter,
|
|
6166
6108
|
onAfterEnter: _ctx.afterEnter,
|
|
@@ -6172,7 +6114,7 @@ function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6172
6114
|
_: 3
|
|
6173
6115
|
}, 8, ["onEnter", "onAfterEnter", "onLeave"]);
|
|
6174
6116
|
}
|
|
6175
|
-
const FExpand = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6117
|
+
const FExpand = /* @__PURE__ */ _export_sfc(_sfc_main$V, [["render", _sfc_render$G]]);
|
|
6176
6118
|
function offset(page, el) {
|
|
6177
6119
|
const rect = el.getBoundingClientRect();
|
|
6178
6120
|
return {
|
|
@@ -6457,7 +6399,7 @@ function isTeleportDisabled(options) {
|
|
|
6457
6399
|
}
|
|
6458
6400
|
return disableTeleport;
|
|
6459
6401
|
}
|
|
6460
|
-
const _sfc_main$
|
|
6402
|
+
const _sfc_main$U = vue.defineComponent({
|
|
6461
6403
|
name: "IPopup",
|
|
6462
6404
|
inheritAttrs: false,
|
|
6463
6405
|
props: {
|
|
@@ -6490,15 +6432,6 @@ const _sfc_main$Y = vue.defineComponent({
|
|
|
6490
6432
|
},
|
|
6491
6433
|
default: "auto"
|
|
6492
6434
|
},
|
|
6493
|
-
/**
|
|
6494
|
-
* Force popup to always display inline.
|
|
6495
|
-
* @deprecated Use `inline="always"` instead.
|
|
6496
|
-
*/
|
|
6497
|
-
alwaysInline: {
|
|
6498
|
-
type: Boolean,
|
|
6499
|
-
required: false,
|
|
6500
|
-
default: false
|
|
6501
|
-
},
|
|
6502
6435
|
/**
|
|
6503
6436
|
* Which element to use as container.
|
|
6504
6437
|
*/
|
|
@@ -6576,14 +6509,13 @@ const _sfc_main$Y = vue.defineComponent({
|
|
|
6576
6509
|
return isInline;
|
|
6577
6510
|
},
|
|
6578
6511
|
forceInline() {
|
|
6579
|
-
return this.
|
|
6512
|
+
return this.inline === "always";
|
|
6580
6513
|
},
|
|
6581
6514
|
forceOverlay() {
|
|
6582
6515
|
return this.inline === "never";
|
|
6583
6516
|
},
|
|
6584
6517
|
teleportTarget() {
|
|
6585
|
-
|
|
6586
|
-
return (_config$popupTarget = config.popupTarget) !== null && _config$popupTarget !== void 0 ? _config$popupTarget : config.teleportTarget;
|
|
6518
|
+
return config.teleportTarget;
|
|
6587
6519
|
}
|
|
6588
6520
|
},
|
|
6589
6521
|
watch: {
|
|
@@ -6748,7 +6680,7 @@ const _sfc_main$Y = vue.defineComponent({
|
|
|
6748
6680
|
}
|
|
6749
6681
|
}
|
|
6750
6682
|
});
|
|
6751
|
-
function _sfc_render$
|
|
6683
|
+
function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6752
6684
|
return _ctx.isOpen ? (vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
6753
6685
|
key: 0,
|
|
6754
6686
|
to: _ctx.teleportTarget,
|
|
@@ -6769,7 +6701,7 @@ function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6769
6701
|
placement: _ctx.placement
|
|
6770
6702
|
})))], 544)], 16)], 8, ["to", "disabled"])) : vue.createCommentVNode("", true);
|
|
6771
6703
|
}
|
|
6772
|
-
const IPopup = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6704
|
+
const IPopup = /* @__PURE__ */ _export_sfc(_sfc_main$U, [["render", _sfc_render$F]]);
|
|
6773
6705
|
function computeArrowOffset(placement, inputIconRect, wrapperRect) {
|
|
6774
6706
|
switch (placement) {
|
|
6775
6707
|
case Placement.A: {
|
|
@@ -6833,7 +6765,7 @@ function computeArrowOffset(placement, inputIconRect, wrapperRect) {
|
|
|
6833
6765
|
}
|
|
6834
6766
|
}
|
|
6835
6767
|
const POPUP_SPACING = 10;
|
|
6836
|
-
const _sfc_main$
|
|
6768
|
+
const _sfc_main$T = vue.defineComponent({
|
|
6837
6769
|
name: "IPopupError",
|
|
6838
6770
|
components: {
|
|
6839
6771
|
FIcon
|
|
@@ -6968,11 +6900,11 @@ const _sfc_main$X = vue.defineComponent({
|
|
|
6968
6900
|
}
|
|
6969
6901
|
}
|
|
6970
6902
|
});
|
|
6971
|
-
const _hoisted_1$
|
|
6903
|
+
const _hoisted_1$H = {
|
|
6972
6904
|
ref: "wrapper",
|
|
6973
6905
|
class: "popup-error__wrapper"
|
|
6974
6906
|
};
|
|
6975
|
-
function _sfc_render$
|
|
6907
|
+
function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6976
6908
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
6977
6909
|
return _ctx.isOpen ? (vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
6978
6910
|
key: 0,
|
|
@@ -6982,7 +6914,7 @@ function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6982
6914
|
ref: "popup",
|
|
6983
6915
|
class: vue.normalizeClass(_ctx.popupClasses),
|
|
6984
6916
|
"aria-hidden": "true"
|
|
6985
|
-
}, [vue.createElementVNode("div", _hoisted_1$
|
|
6917
|
+
}, [vue.createElementVNode("div", _hoisted_1$H, [vue.createElementVNode("div", {
|
|
6986
6918
|
class: vue.normalizeClass(_ctx.arrowClass),
|
|
6987
6919
|
style: vue.normalizeStyle(_ctx.errorStyle)
|
|
6988
6920
|
}, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.errorMessage), 1), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("button", {
|
|
@@ -6996,7 +6928,7 @@ function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
6996
6928
|
class: "button__icon"
|
|
6997
6929
|
})])], 6)], 512)], 2)], 8, ["disabled"])) : vue.createCommentVNode("", true);
|
|
6998
6930
|
}
|
|
6999
|
-
const IPopupError = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
6931
|
+
const IPopupError = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["render", _sfc_render$E]]);
|
|
7000
6932
|
function numItems(itemHeight, availableHeight, verticalSpacing) {
|
|
7001
6933
|
const itemsFit = Math.floor((availableHeight - verticalSpacing) / itemHeight);
|
|
7002
6934
|
return Math.min(itemsFit, 7);
|
|
@@ -7063,12 +6995,12 @@ function computeListboxRect(anchor, options, root = document.documentElement, {
|
|
|
7063
6995
|
}
|
|
7064
6996
|
return void 0;
|
|
7065
6997
|
}
|
|
7066
|
-
const _hoisted_1$
|
|
7067
|
-
const _hoisted_2$
|
|
6998
|
+
const _hoisted_1$G = ["onKeyup"];
|
|
6999
|
+
const _hoisted_2$v = {
|
|
7068
7000
|
ref: "content"
|
|
7069
7001
|
};
|
|
7070
7002
|
const teleportDisabled = false;
|
|
7071
|
-
const _sfc_main$
|
|
7003
|
+
const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
|
|
7072
7004
|
__name: "IPopupListbox",
|
|
7073
7005
|
props: {
|
|
7074
7006
|
isOpen: {
|
|
@@ -7087,10 +7019,7 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
|
|
|
7087
7019
|
const wrapperRef = vue.useTemplateRef("wrapper");
|
|
7088
7020
|
const contentRef = vue.useTemplateRef("content");
|
|
7089
7021
|
const popupClasses = ["popup", "popup--overlay"];
|
|
7090
|
-
const teleportTarget = vue.computed(() =>
|
|
7091
|
-
var _config$popupTarget;
|
|
7092
|
-
return (_config$popupTarget = config.popupTarget) !== null && _config$popupTarget !== void 0 ? _config$popupTarget : config.teleportTarget;
|
|
7093
|
-
});
|
|
7022
|
+
const teleportTarget = vue.computed(() => config.teleportTarget);
|
|
7094
7023
|
let guessedItemHeight = void 0;
|
|
7095
7024
|
let verticalSpacing = void 0;
|
|
7096
7025
|
useEventListener(__props.anchor, "keyup", onKeyEsc);
|
|
@@ -7220,7 +7149,7 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
|
|
|
7220
7149
|
onKeyup: vue.withKeys(vue.withModifiers(onKeyEsc, ["stop"]), ["esc"]),
|
|
7221
7150
|
onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
|
|
7222
7151
|
}, ["stop"]))
|
|
7223
|
-
}), [vue.createElementVNode("div", _hoisted_2$
|
|
7152
|
+
}), [vue.createElementVNode("div", _hoisted_2$v, [vue.renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1$G)], 512)], 8, ["to"])) : vue.createCommentVNode("", true);
|
|
7224
7153
|
};
|
|
7225
7154
|
}
|
|
7226
7155
|
});
|
|
@@ -7264,7 +7193,7 @@ async function doMenuAction$2(action, target) {
|
|
|
7264
7193
|
}
|
|
7265
7194
|
}
|
|
7266
7195
|
const preventKeys$2 = ["Tab", "Up", "Down", "ArrowUp", "ArrowDown", "Home", "End", " ", "Spacebar", "Enter"];
|
|
7267
|
-
const _sfc_main$
|
|
7196
|
+
const _sfc_main$R = vue.defineComponent({
|
|
7268
7197
|
name: "IPopupMenu",
|
|
7269
7198
|
components: {
|
|
7270
7199
|
IPopup
|
|
@@ -7345,10 +7274,9 @@ const _sfc_main$V = vue.defineComponent({
|
|
|
7345
7274
|
*/
|
|
7346
7275
|
"close",
|
|
7347
7276
|
/**
|
|
7348
|
-
*
|
|
7277
|
+
* Emitted when an item is selected.
|
|
7349
7278
|
*
|
|
7350
7279
|
* @event select
|
|
7351
|
-
* @deprecated
|
|
7352
7280
|
* @type {string} item key
|
|
7353
7281
|
*/
|
|
7354
7282
|
"select",
|
|
@@ -7520,18 +7448,18 @@ const _sfc_main$V = vue.defineComponent({
|
|
|
7520
7448
|
}
|
|
7521
7449
|
}
|
|
7522
7450
|
});
|
|
7523
|
-
const _hoisted_1$
|
|
7524
|
-
const _hoisted_2$
|
|
7451
|
+
const _hoisted_1$F = ["aria-label"];
|
|
7452
|
+
const _hoisted_2$u = {
|
|
7525
7453
|
role: "menu",
|
|
7526
7454
|
class: "ipopupmenu__list"
|
|
7527
7455
|
};
|
|
7528
|
-
const _hoisted_3$
|
|
7456
|
+
const _hoisted_3$p = ["onClick"];
|
|
7529
7457
|
const _hoisted_4$l = ["data-ref-index", "href", "target"];
|
|
7530
7458
|
const _hoisted_5$h = {
|
|
7531
7459
|
key: 0,
|
|
7532
7460
|
class: "sr-only"
|
|
7533
7461
|
};
|
|
7534
|
-
function _sfc_render$
|
|
7462
|
+
function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7535
7463
|
const _component_i_popup = vue.resolveComponent("i-popup");
|
|
7536
7464
|
return vue.openBlock(), vue.createBlock(_component_i_popup, {
|
|
7537
7465
|
class: "ipopupmenu",
|
|
@@ -7546,7 +7474,7 @@ function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7546
7474
|
default: vue.withCtx(() => [vue.createElementVNode("nav", {
|
|
7547
7475
|
class: "ipopupmenu ipopupmenu--vertical",
|
|
7548
7476
|
"aria-label": _ctx.ariaLabel
|
|
7549
|
-
}, [vue.createElementVNode("ul", _hoisted_2$
|
|
7477
|
+
}, [vue.createElementVNode("ul", _hoisted_2$u, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index) => {
|
|
7550
7478
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
7551
7479
|
ref_for: true,
|
|
7552
7480
|
ref: "items",
|
|
@@ -7562,18 +7490,18 @@ function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
7562
7490
|
role: "menuitem",
|
|
7563
7491
|
target: item.target,
|
|
7564
7492
|
tabindex: "0"
|
|
7565
|
-
}, [_ctx.isSelected(index) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$h, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.selectedMenuItemScreenReaderText) + " ", 1)])) : vue.createCommentVNode("", true), vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)], 8, _hoisted_4$l)], 10, _hoisted_3$
|
|
7566
|
-
}), 128))])], 8, _hoisted_1$
|
|
7493
|
+
}, [_ctx.isSelected(index) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$h, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.selectedMenuItemScreenReaderText) + " ", 1)])) : vue.createCommentVNode("", true), vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)], 8, _hoisted_4$l)], 10, _hoisted_3$p);
|
|
7494
|
+
}), 128))])], 8, _hoisted_1$F)]),
|
|
7567
7495
|
_: 1
|
|
7568
7496
|
}, 8, ["is-open", "anchor", "focus-element", "onKeyup", "onKeydown"]);
|
|
7569
7497
|
}
|
|
7570
|
-
const IPopupMenu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
7498
|
+
const IPopupMenu = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["render", _sfc_render$D]]);
|
|
7571
7499
|
const ANIMATION_DURATION = 500;
|
|
7572
7500
|
const NO_CSS_CLASSES = "";
|
|
7573
7501
|
const CLOSED_CSS_CLASS_OPACITY = "animate-expand animate-expand--opacity";
|
|
7574
7502
|
const CLOSED_CSS_CLASS = "animate-expand";
|
|
7575
7503
|
const ANIMATION_CSS_CLASSES = "animate-expand animate-expand--expanded";
|
|
7576
|
-
const _sfc_main$
|
|
7504
|
+
const _sfc_main$Q = vue.defineComponent({
|
|
7577
7505
|
name: "IAnimateExpand",
|
|
7578
7506
|
props: {
|
|
7579
7507
|
/**
|
|
@@ -7765,19 +7693,19 @@ const _sfc_main$U = vue.defineComponent({
|
|
|
7765
7693
|
}
|
|
7766
7694
|
}
|
|
7767
7695
|
});
|
|
7768
|
-
const _hoisted_1$
|
|
7696
|
+
const _hoisted_1$E = {
|
|
7769
7697
|
key: 0,
|
|
7770
7698
|
ref: "content",
|
|
7771
7699
|
"data-test": "animation-content"
|
|
7772
7700
|
};
|
|
7773
|
-
function _sfc_render$
|
|
7701
|
+
function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7774
7702
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
7775
7703
|
class: vue.normalizeClass(_ctx.animationClasses),
|
|
7776
7704
|
style: vue.normalizeStyle(_ctx.heightStyle)
|
|
7777
|
-
}, [_ctx.shouldVIf ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
7705
|
+
}, [_ctx.shouldVIf ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, [vue.renderSlot(_ctx.$slots, "default")], 512)), [[vue.vShow, _ctx.shouldVShow]]) : vue.createCommentVNode("", true)], 6);
|
|
7778
7706
|
}
|
|
7779
|
-
const IAnimateExpand = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
7780
|
-
const _sfc_main$
|
|
7707
|
+
const IAnimateExpand = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["render", _sfc_render$C]]);
|
|
7708
|
+
const _sfc_main$P = vue.defineComponent({
|
|
7781
7709
|
name: "ISkipLink",
|
|
7782
7710
|
mixins: [TranslationMixin],
|
|
7783
7711
|
props: {
|
|
@@ -7791,14 +7719,14 @@ const _sfc_main$T = vue.defineComponent({
|
|
|
7791
7719
|
}
|
|
7792
7720
|
}
|
|
7793
7721
|
});
|
|
7794
|
-
const _hoisted_1$
|
|
7795
|
-
function _sfc_render$
|
|
7722
|
+
const _hoisted_1$D = ["href"];
|
|
7723
|
+
function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
|
|
7796
7724
|
return vue.openBlock(), vue.createElementBlock("a", {
|
|
7797
7725
|
class: "iskiplink",
|
|
7798
7726
|
href: _ctx.href
|
|
7799
|
-
}, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.skip-link.text", "Gå direkt till innehåll")), 1)])], 8, _hoisted_1$
|
|
7727
|
+
}, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.skip-link.text", "Gå direkt till innehåll")), 1)])], 8, _hoisted_1$D);
|
|
7800
7728
|
}
|
|
7801
|
-
const ISkipLink = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
7729
|
+
const ISkipLink = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["render", _sfc_render$B]]);
|
|
7802
7730
|
function filterOptions(options, filter2, selectMode) {
|
|
7803
7731
|
if (logic.isEmpty(filter2) || selectMode) {
|
|
7804
7732
|
return options;
|
|
@@ -7808,7 +7736,7 @@ function filterOptions(options, filter2, selectMode) {
|
|
|
7808
7736
|
}
|
|
7809
7737
|
const $t = useTranslate();
|
|
7810
7738
|
function useCombobox(inputRef, options, onOptionSelected) {
|
|
7811
|
-
if (
|
|
7739
|
+
if (options.value === void 0) {
|
|
7812
7740
|
return {
|
|
7813
7741
|
dropdownId: "",
|
|
7814
7742
|
dropdownIsOpen: vue.ref(false),
|
|
@@ -7835,7 +7763,8 @@ function useCombobox(inputRef, options, onOptionSelected) {
|
|
|
7835
7763
|
const selectMode = vue.ref(false);
|
|
7836
7764
|
const selectedOption = vue.ref(null);
|
|
7837
7765
|
const dropdownOptions = vue.computed(() => {
|
|
7838
|
-
|
|
7766
|
+
var _options$value;
|
|
7767
|
+
return filterOptions((_options$value = options.value) !== null && _options$value !== void 0 ? _options$value : [], filter2.value, selectMode.value);
|
|
7839
7768
|
});
|
|
7840
7769
|
const hasOptions = vue.computed(() => {
|
|
7841
7770
|
return dropdownOptions.value.length > 0;
|
|
@@ -7871,7 +7800,7 @@ function useCombobox(inputRef, options, onOptionSelected) {
|
|
|
7871
7800
|
let description = selectMode.value ? `${$t("fkui.combobox.selected", "Valt förslag")} ` : "";
|
|
7872
7801
|
if (logic.isEmpty(filter2.value) || selectMode.value) {
|
|
7873
7802
|
description += $t("fkui.combobox.listDetails", `Det finns {{ count }} förslag. Använd uppåtpil och nedåtpil för att navigera bland förslagen.`, {
|
|
7874
|
-
count: options.length
|
|
7803
|
+
count: options.value ? options.value.length : 0
|
|
7875
7804
|
});
|
|
7876
7805
|
} else if (hasOptions.value) {
|
|
7877
7806
|
description += $t("fkui.combobox.matchesListDetails", `Det finns {{ count }} förslag som matchar. Använd uppåtpil och nedåtpil för att navigera bland förslagen.`, {
|
|
@@ -7968,10 +7897,10 @@ function useCombobox(inputRef, options, onOptionSelected) {
|
|
|
7968
7897
|
}
|
|
7969
7898
|
async function onInputFocus() {
|
|
7970
7899
|
var _a;
|
|
7971
|
-
var _inputRef$value$value
|
|
7900
|
+
var _inputRef$value$value;
|
|
7972
7901
|
await vue.nextTick();
|
|
7973
7902
|
filter2.value = (_inputRef$value$value = (_a = inputRef.value) == null ? void 0 : _a.value) !== null && _inputRef$value$value !== void 0 ? _inputRef$value$value : "";
|
|
7974
|
-
selectMode.value =
|
|
7903
|
+
selectMode.value = options.value ? options.value.includes(filter2.value) : false;
|
|
7975
7904
|
}
|
|
7976
7905
|
async function onInputKeyDown(event) {
|
|
7977
7906
|
let flag = false;
|
|
@@ -8043,12 +7972,12 @@ function useCombobox(inputRef, options, onOptionSelected) {
|
|
|
8043
7972
|
}
|
|
8044
7973
|
}
|
|
8045
7974
|
}
|
|
8046
|
-
const _hoisted_1$
|
|
7975
|
+
const _hoisted_1$C = {
|
|
8047
7976
|
class: "combobox"
|
|
8048
7977
|
};
|
|
8049
|
-
const _hoisted_2$
|
|
8050
|
-
const _hoisted_3$
|
|
8051
|
-
const _sfc_main$
|
|
7978
|
+
const _hoisted_2$t = ["id"];
|
|
7979
|
+
const _hoisted_3$o = ["id", "aria-selected", "onClick"];
|
|
7980
|
+
const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
|
|
8052
7981
|
__name: "IComboboxDropdown",
|
|
8053
7982
|
props: {
|
|
8054
7983
|
id: {},
|
|
@@ -8085,7 +8014,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
|
|
|
8085
8014
|
}
|
|
8086
8015
|
});
|
|
8087
8016
|
return (_ctx, _cache) => {
|
|
8088
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
8017
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, [vue.createVNode(vue.unref(_sfc_main$S), {
|
|
8089
8018
|
"is-open": _ctx.isOpen,
|
|
8090
8019
|
anchor: _ctx.inputNode,
|
|
8091
8020
|
"num-of-items": _ctx.options.length,
|
|
@@ -8109,15 +8038,15 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
|
|
|
8109
8038
|
"combobox__listbox__option--highlight": isOptionActive(item)
|
|
8110
8039
|
}]),
|
|
8111
8040
|
onClick: vue.withModifiers(($event) => onOptionClick(item), ["stop", "prevent"])
|
|
8112
|
-
}, vue.toDisplayString(item), 11, _hoisted_3$
|
|
8113
|
-
}), 128))], 8, _hoisted_2$
|
|
8041
|
+
}, vue.toDisplayString(item), 11, _hoisted_3$o);
|
|
8042
|
+
}), 128))], 8, _hoisted_2$t)]),
|
|
8114
8043
|
_: 1
|
|
8115
8044
|
}, 8, ["is-open", "anchor", "num-of-items", "active-element"])]);
|
|
8116
8045
|
};
|
|
8117
8046
|
}
|
|
8118
8047
|
});
|
|
8119
|
-
const _hoisted_1$
|
|
8120
|
-
const _sfc_main$
|
|
8048
|
+
const _hoisted_1$B = ["aria-label"];
|
|
8049
|
+
const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
|
|
8121
8050
|
__name: "IComboboxToggleButton",
|
|
8122
8051
|
emits: ["toggle"],
|
|
8123
8052
|
setup(__props, {
|
|
@@ -8136,7 +8065,7 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
|
|
|
8136
8065
|
}, [vue.createVNode(vue.unref(FIcon), {
|
|
8137
8066
|
name: "arrow-down",
|
|
8138
8067
|
class: "text-field__icon"
|
|
8139
|
-
})], 8, _hoisted_1$
|
|
8068
|
+
})], 8, _hoisted_1$B);
|
|
8140
8069
|
};
|
|
8141
8070
|
}
|
|
8142
8071
|
});
|
|
@@ -8238,7 +8167,7 @@ function useHorizontalOffset(options) {
|
|
|
8238
8167
|
}, 0);
|
|
8239
8168
|
}
|
|
8240
8169
|
}
|
|
8241
|
-
const _sfc_main$
|
|
8170
|
+
const _sfc_main$M = vue.defineComponent({
|
|
8242
8171
|
name: "FTooltip",
|
|
8243
8172
|
components: {
|
|
8244
8173
|
FExpand,
|
|
@@ -8287,9 +8216,6 @@ const _sfc_main$Q = vue.defineComponent({
|
|
|
8287
8216
|
* Element to render for the header element inside the tooltip.
|
|
8288
8217
|
*
|
|
8289
8218
|
* Must be set to one of:
|
|
8290
|
-
*
|
|
8291
|
-
* - `div` (default)
|
|
8292
|
-
* - `span`
|
|
8293
8219
|
* - `h1`
|
|
8294
8220
|
* - `h2`
|
|
8295
8221
|
* - `h3`
|
|
@@ -8298,10 +8224,11 @@ const _sfc_main$Q = vue.defineComponent({
|
|
|
8298
8224
|
* - `h6`
|
|
8299
8225
|
*/
|
|
8300
8226
|
headerTag: {
|
|
8301
|
-
|
|
8227
|
+
type: String,
|
|
8228
|
+
default: void 0,
|
|
8302
8229
|
required: false,
|
|
8303
8230
|
validator(value) {
|
|
8304
|
-
return [
|
|
8231
|
+
return [void 0, "h1", "h2", "h3", "h4", "h5", "h6"].includes(value);
|
|
8305
8232
|
}
|
|
8306
8233
|
}
|
|
8307
8234
|
},
|
|
@@ -8372,6 +8299,12 @@ const _sfc_main$Q = vue.defineComponent({
|
|
|
8372
8299
|
}
|
|
8373
8300
|
}
|
|
8374
8301
|
},
|
|
8302
|
+
created() {
|
|
8303
|
+
const slots = vue.useSlots();
|
|
8304
|
+
if (slots.header && !this.headerTag) {
|
|
8305
|
+
throw new Error("Tooltip with header must define headerTag");
|
|
8306
|
+
}
|
|
8307
|
+
},
|
|
8375
8308
|
methods: {
|
|
8376
8309
|
/**
|
|
8377
8310
|
* Gets called when the user interacts with the toggle button
|
|
@@ -8393,11 +8326,11 @@ const _sfc_main$Q = vue.defineComponent({
|
|
|
8393
8326
|
}
|
|
8394
8327
|
}
|
|
8395
8328
|
});
|
|
8396
|
-
const _hoisted_1$
|
|
8397
|
-
const _hoisted_2$
|
|
8329
|
+
const _hoisted_1$A = ["aria-expanded"];
|
|
8330
|
+
const _hoisted_2$s = {
|
|
8398
8331
|
class: "icon-stack icon-stack--tooltip"
|
|
8399
8332
|
};
|
|
8400
|
-
const _hoisted_3$
|
|
8333
|
+
const _hoisted_3$n = {
|
|
8401
8334
|
class: "sr-only"
|
|
8402
8335
|
};
|
|
8403
8336
|
const _hoisted_4$k = {
|
|
@@ -8411,7 +8344,7 @@ const _hoisted_5$g = {
|
|
|
8411
8344
|
const _hoisted_6$d = {
|
|
8412
8345
|
class: "tooltip__footer"
|
|
8413
8346
|
};
|
|
8414
|
-
function _sfc_render$
|
|
8347
|
+
function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8415
8348
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
8416
8349
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
8417
8350
|
disabled: _ctx.iconTarget === null,
|
|
@@ -8422,11 +8355,11 @@ function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8422
8355
|
type: "button",
|
|
8423
8356
|
"aria-expanded": _ctx.isOpen,
|
|
8424
8357
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickToggle && _ctx.onClickToggle(...args))
|
|
8425
|
-
}, [vue.createElementVNode("span", _hoisted_2$
|
|
8358
|
+
}, [vue.createElementVNode("span", _hoisted_2$s, [vue.createVNode(_component_f_icon, {
|
|
8426
8359
|
name: "circle"
|
|
8427
8360
|
}), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
8428
8361
|
name: "i"
|
|
8429
|
-
}), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$
|
|
8362
|
+
}), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$n, vue.toDisplayString(_ctx.screenReaderText), 1)])], 8, _hoisted_1$A)], 8, ["disabled", "to"])), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("div", vue.mergeProps({
|
|
8430
8363
|
ref: "wrapper",
|
|
8431
8364
|
class: "tooltip"
|
|
8432
8365
|
}, _ctx.$attrs), [_ctx.ready ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$k, [_ctx.hasHeader ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.headerTag), {
|
|
@@ -8444,7 +8377,7 @@ function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8444
8377
|
name: "close"
|
|
8445
8378
|
})])])])) : vue.createCommentVNode("", true)], 16)], 64);
|
|
8446
8379
|
}
|
|
8447
|
-
const FTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8380
|
+
const FTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$A]]);
|
|
8448
8381
|
function* labelClasses(options) {
|
|
8449
8382
|
const {
|
|
8450
8383
|
labelClass
|
|
@@ -8485,7 +8418,7 @@ function isEqual(a, b) {
|
|
|
8485
8418
|
}
|
|
8486
8419
|
return a.every((_, i) => a[i] === b[i]);
|
|
8487
8420
|
}
|
|
8488
|
-
const _sfc_main$
|
|
8421
|
+
const _sfc_main$L = vue.defineComponent({
|
|
8489
8422
|
name: "FFieldset",
|
|
8490
8423
|
components: {
|
|
8491
8424
|
FIcon
|
|
@@ -8580,7 +8513,7 @@ const _sfc_main$P = vue.defineComponent({
|
|
|
8580
8513
|
validityMode: "INITIAL"
|
|
8581
8514
|
},
|
|
8582
8515
|
descriptionClass: ["label__description"],
|
|
8583
|
-
|
|
8516
|
+
formatDescriptionClass: ["label__description", "label__description--format"],
|
|
8584
8517
|
validityElement: null,
|
|
8585
8518
|
dispatchObject: {},
|
|
8586
8519
|
detail: {},
|
|
@@ -8713,12 +8646,12 @@ const _sfc_main$P = vue.defineComponent({
|
|
|
8713
8646
|
}
|
|
8714
8647
|
}
|
|
8715
8648
|
});
|
|
8716
|
-
const _hoisted_1$
|
|
8717
|
-
const _hoisted_2$
|
|
8649
|
+
const _hoisted_1$z = ["id"];
|
|
8650
|
+
const _hoisted_2$r = {
|
|
8718
8651
|
key: 0,
|
|
8719
8652
|
class: "sr-only"
|
|
8720
8653
|
};
|
|
8721
|
-
const _hoisted_3$
|
|
8654
|
+
const _hoisted_3$m = {
|
|
8722
8655
|
key: 0,
|
|
8723
8656
|
class: "label__message label__message--error"
|
|
8724
8657
|
};
|
|
@@ -8734,18 +8667,18 @@ const _hoisted_5$f = {
|
|
|
8734
8667
|
const _hoisted_6$c = {
|
|
8735
8668
|
key: 1
|
|
8736
8669
|
};
|
|
8737
|
-
const _hoisted_7$
|
|
8670
|
+
const _hoisted_7$b = {
|
|
8738
8671
|
ref: "tooltipAttachTo",
|
|
8739
8672
|
class: "label"
|
|
8740
8673
|
};
|
|
8741
|
-
const _hoisted_8$
|
|
8674
|
+
const _hoisted_8$6 = {
|
|
8742
8675
|
"aria-hidden": "true"
|
|
8743
8676
|
};
|
|
8744
8677
|
const _hoisted_9$4 = {
|
|
8745
8678
|
key: 0,
|
|
8746
8679
|
class: "label__message label__message--error"
|
|
8747
8680
|
};
|
|
8748
|
-
function _sfc_render$
|
|
8681
|
+
function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8749
8682
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
8750
8683
|
return vue.openBlock(), vue.createElementBlock("fieldset", {
|
|
8751
8684
|
id: _ctx.id,
|
|
@@ -8754,25 +8687,25 @@ function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8754
8687
|
}, [(vue.openBlock(), vue.createElementBlock("legend", {
|
|
8755
8688
|
key: _ctx.legendKey,
|
|
8756
8689
|
class: vue.normalizeClass(["label", _ctx.legendClass])
|
|
8757
|
-
}, [vue.renderSlot(_ctx.$slots, "label"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.hasCheckbox && _ctx.children.length > 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$
|
|
8690
|
+
}, [vue.renderSlot(_ctx.$slots, "label"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.hasCheckbox && _ctx.children.length > 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$r, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.numberOfCheckboxesScreenReaderText), 1)])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "description", {
|
|
8758
8691
|
descriptionClass: _ctx.descriptionClass,
|
|
8759
|
-
|
|
8760
|
-
})
|
|
8692
|
+
formatDescriptionClass: _ctx.formatDescriptionClass
|
|
8693
|
+
}), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
8761
8694
|
hasError: _ctx.hasError,
|
|
8762
8695
|
validationMessage: _ctx.validity.validationMessage
|
|
8763
|
-
})), () => [_ctx.hasError ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
8696
|
+
})), () => [_ctx.hasError ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$m, [vue.createVNode(_component_f_icon, {
|
|
8764
8697
|
class: "label__icon--left",
|
|
8765
8698
|
name: "error"
|
|
8766
8699
|
}), vue.createTextVNode(" " + vue.toDisplayString(_ctx.validity.validationMessage), 1)])) : vue.createCommentVNode("", true)])], 2)), _cache[7] || (_cache[7] = vue.createTextVNode()), _ctx.hasCheckbox ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$j, [_ctx.children.length === 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$f, vue.toDisplayString(_ctx.checkboxCheckedScreenReaderText), 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_6$c, vue.toDisplayString(_ctx.numberOfCheckedCheckboxesScreenText), 1))])) : vue.createCommentVNode("", true), _cache[8] || (_cache[8] = vue.createTextVNode()), _ctx.hasTooltipSlot ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
8767
8700
|
key: 1
|
|
8768
|
-
}, [vue.createElementVNode("div", _hoisted_7$
|
|
8701
|
+
}, [vue.createElementVNode("div", _hoisted_7$b, [vue.createElementVNode("span", _hoisted_8$6, [vue.renderSlot(_ctx.$slots, "label")])], 512), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "tooltip"), _cache[6] || (_cache[6] = vue.createTextVNode()), _ctx.hasDescriptionSlot || _ctx.hasErrorMessageSlot || _ctx.hasError ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
8769
8702
|
key: 0,
|
|
8770
8703
|
class: vue.normalizeClass(["label", _ctx.groupLabelClass]),
|
|
8771
8704
|
"aria-hidden": "true"
|
|
8772
|
-
}, [vue.renderSlot(_ctx.$slots, "description",
|
|
8705
|
+
}, [vue.renderSlot(_ctx.$slots, "description", {
|
|
8773
8706
|
descriptionClass: _ctx.descriptionClass,
|
|
8774
|
-
|
|
8775
|
-
})
|
|
8707
|
+
formatDescriptionClass: _ctx.formatDescriptionClass
|
|
8708
|
+
}), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
8776
8709
|
hasError: _ctx.hasError,
|
|
8777
8710
|
validationMessage: _ctx.validity.validationMessage
|
|
8778
8711
|
})), () => [_ctx.hasError ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$4, [vue.createVNode(_component_f_icon, {
|
|
@@ -8780,11 +8713,11 @@ function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8780
8713
|
name: "error"
|
|
8781
8714
|
}), vue.createTextVNode(" " + vue.toDisplayString(_ctx.validity.validationMessage), 1)])) : vue.createCommentVNode("", true)])], 2)) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("div", {
|
|
8782
8715
|
class: vue.normalizeClass(_ctx.groupContentClass)
|
|
8783
|
-
}, [vue.renderSlot(_ctx.$slots, "default")], 2)], 42, _hoisted_1$
|
|
8716
|
+
}, [vue.renderSlot(_ctx.$slots, "default")], 2)], 42, _hoisted_1$z);
|
|
8784
8717
|
}
|
|
8785
|
-
const FFieldset = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
8718
|
+
const FFieldset = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$z]]);
|
|
8786
8719
|
const anyType$1 = [String, Object, Array, Number, Date, Boolean];
|
|
8787
|
-
const _sfc_main$
|
|
8720
|
+
const _sfc_main$K = vue.defineComponent({
|
|
8788
8721
|
name: "FCheckboxField",
|
|
8789
8722
|
inheritAttrs: false,
|
|
8790
8723
|
props: {
|
|
@@ -8970,9 +8903,9 @@ const _sfc_main$O = vue.defineComponent({
|
|
|
8970
8903
|
}
|
|
8971
8904
|
}
|
|
8972
8905
|
});
|
|
8973
|
-
const _hoisted_1$
|
|
8974
|
-
const _hoisted_2$
|
|
8975
|
-
const _hoisted_3$
|
|
8906
|
+
const _hoisted_1$y = ["id", "disabled"];
|
|
8907
|
+
const _hoisted_2$q = ["for"];
|
|
8908
|
+
const _hoisted_3$l = {
|
|
8976
8909
|
key: 0,
|
|
8977
8910
|
class: "checkbox__details"
|
|
8978
8911
|
};
|
|
@@ -8980,7 +8913,7 @@ const _hoisted_4$i = {
|
|
|
8980
8913
|
key: 0,
|
|
8981
8914
|
class: "checkbox__details"
|
|
8982
8915
|
};
|
|
8983
|
-
function _sfc_render$
|
|
8916
|
+
function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8984
8917
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
8985
8918
|
class: vue.normalizeClass(["checkbox", _ctx.disabledClass]),
|
|
8986
8919
|
onValidity: _cache[2] || (_cache[2] = (...args) => _ctx.onValidity && _ctx.onValidity(...args))
|
|
@@ -8993,12 +8926,12 @@ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
8993
8926
|
disabled: _ctx.disabled,
|
|
8994
8927
|
onKeydown: _cache[0] || (_cache[0] = vue.withKeys((...args) => _ctx.onKeydown && _ctx.onKeydown(...args), ["space"])),
|
|
8995
8928
|
onChange: _cache[1] || (_cache[1] = ($event) => _ctx.updateExpandedFlag())
|
|
8996
|
-
}), null, 16, _hoisted_1$
|
|
8929
|
+
}), null, 16, _hoisted_1$y), _cache[9] || (_cache[9] = vue.createTextVNode()), vue.createElementVNode("label", {
|
|
8997
8930
|
class: vue.normalizeClass(_ctx.$slots.details ? "checkbox__label checkbox__width" : "checkbox__label"),
|
|
8998
8931
|
for: _ctx.id
|
|
8999
8932
|
}, [vue.renderSlot(_ctx.$slots, "default"), _cache[8] || (_cache[8] = vue.createTextVNode()), _ctx.$slots.details ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
9000
8933
|
key: 0
|
|
9001
|
-
}, [_ctx.showDetails === "always" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
8934
|
+
}, [_ctx.showDetails === "always" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$l, [_cache[3] || (_cache[3] = vue.createElementVNode("br", null, null, -1)), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "details")])) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), _ctx.showDetails === "when-selected" ? (vue.openBlock(), vue.createBlock(vue.Transition, {
|
|
9002
8935
|
key: 1,
|
|
9003
8936
|
onEnter: _ctx.enter,
|
|
9004
8937
|
onAfterEnter: _ctx.afterEnter,
|
|
@@ -9008,59 +8941,9 @@ function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9008
8941
|
height: _ctx.height
|
|
9009
8942
|
})])) : vue.createCommentVNode("", true)]),
|
|
9010
8943
|
_: 3
|
|
9011
|
-
}, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$
|
|
9012
|
-
}
|
|
9013
|
-
const FCheckboxField = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["render", _sfc_render$E]]);
|
|
9014
|
-
const _sfc_main$N = vue.defineComponent({
|
|
9015
|
-
name: "FCheckboxGroup",
|
|
9016
|
-
components: {
|
|
9017
|
-
FFieldset
|
|
9018
|
-
},
|
|
9019
|
-
mixins: [TranslationMixin],
|
|
9020
|
-
inheritAttrs: false,
|
|
9021
|
-
props: {
|
|
9022
|
-
/**
|
|
9023
|
-
* The id for the fieldset id attribute.
|
|
9024
|
-
* If the prop is not set the id will be generated.
|
|
9025
|
-
*/
|
|
9026
|
-
id: {
|
|
9027
|
-
type: String,
|
|
9028
|
-
required: false,
|
|
9029
|
-
default: () => logic.ElementIdService.generateElementId()
|
|
9030
|
-
},
|
|
9031
|
-
/**
|
|
9032
|
-
* The name of the checkbox group.
|
|
9033
|
-
*/
|
|
9034
|
-
name: {
|
|
9035
|
-
type: String,
|
|
9036
|
-
required: true
|
|
9037
|
-
}
|
|
9038
|
-
}
|
|
9039
|
-
});
|
|
9040
|
-
function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9041
|
-
const _component_f_fieldset = vue.resolveComponent("f-fieldset");
|
|
9042
|
-
return vue.openBlock(), vue.createBlock(_component_f_fieldset, vue.mergeProps({
|
|
9043
|
-
id: _ctx.id,
|
|
9044
|
-
name: _ctx.name
|
|
9045
|
-
}, _ctx.$attrs), vue.createSlots({
|
|
9046
|
-
label: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "label")]),
|
|
9047
|
-
description: vue.withCtx(({
|
|
9048
|
-
descriptionClass,
|
|
9049
|
-
discreteDescriptionClass
|
|
9050
|
-
}) => [vue.renderSlot(_ctx.$slots, "description", vue.normalizeProps(vue.guardReactiveProps({
|
|
9051
|
-
descriptionClass,
|
|
9052
|
-
discreteDescriptionClass
|
|
9053
|
-
})))]),
|
|
9054
|
-
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message")]),
|
|
9055
|
-
default: vue.withCtx(() => [_cache[0] || (_cache[0] = vue.createTextVNode()), _cache[1] || (_cache[1] = vue.createTextVNode()), _cache[2] || (_cache[2] = vue.createTextVNode()), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")]),
|
|
9056
|
-
_: 2
|
|
9057
|
-
}, [_ctx.$slots.tooltip ? {
|
|
9058
|
-
name: "tooltip",
|
|
9059
|
-
fn: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "tooltip")]),
|
|
9060
|
-
key: "0"
|
|
9061
|
-
} : void 0]), 1040, ["id", "name"]);
|
|
8944
|
+
}, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$q)], 34);
|
|
9062
8945
|
}
|
|
9063
|
-
const
|
|
8946
|
+
const FCheckboxField = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$y]]);
|
|
9064
8947
|
function isContextMenuTextItem(value) {
|
|
9065
8948
|
return typeof value.key === "string";
|
|
9066
8949
|
}
|
|
@@ -9108,7 +8991,7 @@ async function doMenuAction$1(action, target) {
|
|
|
9108
8991
|
}
|
|
9109
8992
|
const preventKeys$1 = ["Tab", "Up", "Down", "ArrowUp", "ArrowDown", "Home", "End", " ", "Spacebar", "Enter", "Escape"];
|
|
9110
8993
|
const keyUp = ["ArrowUp", "Up"];
|
|
9111
|
-
const _sfc_main$
|
|
8994
|
+
const _sfc_main$J = vue.defineComponent({
|
|
9112
8995
|
name: "FContextMenu",
|
|
9113
8996
|
components: {
|
|
9114
8997
|
IPopup,
|
|
@@ -9272,20 +9155,20 @@ const _sfc_main$M = vue.defineComponent({
|
|
|
9272
9155
|
}
|
|
9273
9156
|
}
|
|
9274
9157
|
});
|
|
9275
|
-
const _hoisted_1$
|
|
9276
|
-
const _hoisted_2$
|
|
9158
|
+
const _hoisted_1$x = ["aria-label"];
|
|
9159
|
+
const _hoisted_2$p = {
|
|
9277
9160
|
ref: "contextmenu",
|
|
9278
9161
|
role: "menu",
|
|
9279
9162
|
tabindex: "-1",
|
|
9280
9163
|
class: "contextmenu__list"
|
|
9281
9164
|
};
|
|
9282
|
-
const _hoisted_3$
|
|
9165
|
+
const _hoisted_3$k = ["onClick"];
|
|
9283
9166
|
const _hoisted_4$h = ["tabindex"];
|
|
9284
9167
|
const _hoisted_5$e = {
|
|
9285
9168
|
key: 0,
|
|
9286
9169
|
class: "contextmenu__separator"
|
|
9287
9170
|
};
|
|
9288
|
-
function _sfc_render$
|
|
9171
|
+
function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9289
9172
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
9290
9173
|
const _component_i_popup = vue.resolveComponent("i-popup");
|
|
9291
9174
|
return vue.openBlock(), vue.createBlock(_component_i_popup, {
|
|
@@ -9302,7 +9185,7 @@ function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9302
9185
|
"aria-label": _ctx.ariaLabel,
|
|
9303
9186
|
onKeyup: _cache[0] || (_cache[0] = (...args) => _ctx.onKeyUp && _ctx.onKeyUp(...args)),
|
|
9304
9187
|
onKeydown: _cache[1] || (_cache[1] = (...args) => _ctx.onKeyDown && _ctx.onKeyDown(...args))
|
|
9305
|
-
}, [vue.createElementVNode("ul", _hoisted_2$
|
|
9188
|
+
}, [vue.createElementVNode("ul", _hoisted_2$p, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.popupItems, (item, index) => {
|
|
9306
9189
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
9307
9190
|
key: item.key,
|
|
9308
9191
|
role: "menuitem",
|
|
@@ -9320,12 +9203,12 @@ function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9320
9203
|
}, null, 8, ["name", "library"])) : vue.createCommentVNode("", true), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.createElementVNode("a", {
|
|
9321
9204
|
ref_for: true,
|
|
9322
9205
|
ref: "anchors"
|
|
9323
|
-
}, vue.toDisplayString(item.label), 513)], 8, _hoisted_4$h), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasSeparatorAfterItemAt(index) ? (vue.openBlock(), vue.createElementBlock("hr", _hoisted_5$e)) : vue.createCommentVNode("", true)], 8, _hoisted_3$
|
|
9324
|
-
}), 128))], 512)], 40, _hoisted_1$
|
|
9206
|
+
}, vue.toDisplayString(item.label), 513)], 8, _hoisted_4$h), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.hasSeparatorAfterItemAt(index) ? (vue.openBlock(), vue.createElementBlock("hr", _hoisted_5$e)) : vue.createCommentVNode("", true)], 8, _hoisted_3$k);
|
|
9207
|
+
}), 128))], 512)], 40, _hoisted_1$x)]),
|
|
9325
9208
|
_: 1
|
|
9326
9209
|
}, 8, ["is-open", "anchor", "focus-element"]);
|
|
9327
9210
|
}
|
|
9328
|
-
const FContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9211
|
+
const FContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$x]]);
|
|
9329
9212
|
var Operation = /* @__PURE__ */ ((Operation2) => {
|
|
9330
9213
|
Operation2[Operation2["ADD"] = 0] = "ADD";
|
|
9331
9214
|
Operation2[Operation2["DELETE"] = 1] = "DELETE";
|
|
@@ -9333,7 +9216,7 @@ var Operation = /* @__PURE__ */ ((Operation2) => {
|
|
|
9333
9216
|
Operation2[Operation2["NONE"] = 3] = "NONE";
|
|
9334
9217
|
return Operation2;
|
|
9335
9218
|
})(Operation || {});
|
|
9336
|
-
const _sfc_main$
|
|
9219
|
+
const _sfc_main$I = vue.defineComponent({
|
|
9337
9220
|
name: "FCrudDataset",
|
|
9338
9221
|
components: {
|
|
9339
9222
|
FFormModal,
|
|
@@ -9439,7 +9322,7 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9439
9322
|
default: logic.TranslationService.provider.translate("fkui.crud-dataset.modal.header.delete", "Är du säker på att du vill ta bort raden?")
|
|
9440
9323
|
}
|
|
9441
9324
|
},
|
|
9442
|
-
emits: ["
|
|
9325
|
+
emits: ["created", "deleted", "updated", "update:modelValue"],
|
|
9443
9326
|
data() {
|
|
9444
9327
|
return {
|
|
9445
9328
|
result: [],
|
|
@@ -9456,11 +9339,20 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9456
9339
|
};
|
|
9457
9340
|
},
|
|
9458
9341
|
computed: {
|
|
9459
|
-
|
|
9460
|
-
|
|
9461
|
-
|
|
9462
|
-
|
|
9463
|
-
|
|
9342
|
+
formModalButtons() {
|
|
9343
|
+
const confirmButtonText = this.operation === Operation.ADD ? this.$t("fkui.crud-dataset.modal.confirm.add", "Lägg till") : this.$t("fkui.crud-dataset.modal.confirm.modify", "Spara");
|
|
9344
|
+
const cancelButtonText = this.operation === Operation.ADD ? this.$t("fkui.crud-dataset.modal.cancel.add", "Avbryt") : this.$t("fkui.crud-dataset.modal.cancel.modify", "Avbryt");
|
|
9345
|
+
return [{
|
|
9346
|
+
label: confirmButtonText,
|
|
9347
|
+
event: "confirm",
|
|
9348
|
+
type: "primary",
|
|
9349
|
+
submitButton: true
|
|
9350
|
+
}, {
|
|
9351
|
+
label: cancelButtonText,
|
|
9352
|
+
event: "dismiss",
|
|
9353
|
+
type: "secondary",
|
|
9354
|
+
submitButton: false
|
|
9355
|
+
}];
|
|
9464
9356
|
},
|
|
9465
9357
|
confirmDeleteButtons() {
|
|
9466
9358
|
return [{
|
|
@@ -9524,7 +9416,6 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9524
9416
|
this.result = this.result.filter((item) => item !== this.item);
|
|
9525
9417
|
this.$emit("deleted", this.item);
|
|
9526
9418
|
this.$emit("update:modelValue", this.result);
|
|
9527
|
-
this.$emit("change", this.result);
|
|
9528
9419
|
logic.alertScreenReader(this.$t("fkui.crud-dataset.aria-live.delete", "Raden har tagits bort"), {
|
|
9529
9420
|
assertive: true
|
|
9530
9421
|
});
|
|
@@ -9547,7 +9438,6 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9547
9438
|
this.result.push(this.item);
|
|
9548
9439
|
this.$emit("created", this.item);
|
|
9549
9440
|
this.$emit("update:modelValue", this.result);
|
|
9550
|
-
this.$emit("change", this.result);
|
|
9551
9441
|
this.callbackAfterItemAdd(this.item);
|
|
9552
9442
|
logic.alertScreenReader(this.$t("fkui.crud-dataset.aria-live.add", "En rad har lagts till"), {
|
|
9553
9443
|
assertive: true
|
|
@@ -9560,7 +9450,6 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9560
9450
|
}
|
|
9561
9451
|
this.$emit("updated", this.originalItemToUpdate);
|
|
9562
9452
|
this.$emit("update:modelValue", this.result);
|
|
9563
|
-
this.$emit("change", this.result);
|
|
9564
9453
|
logic.alertScreenReader(this.$t("fkui.crud-dataset.aria-live.modify", "Raden har ändrats"), {
|
|
9565
9454
|
assertive: true
|
|
9566
9455
|
});
|
|
@@ -9578,17 +9467,17 @@ const _sfc_main$L = vue.defineComponent({
|
|
|
9578
9467
|
}
|
|
9579
9468
|
}
|
|
9580
9469
|
});
|
|
9581
|
-
const _hoisted_1$
|
|
9470
|
+
const _hoisted_1$w = {
|
|
9582
9471
|
class: "crud-dataset"
|
|
9583
9472
|
};
|
|
9584
|
-
const _hoisted_2$
|
|
9473
|
+
const _hoisted_2$o = {
|
|
9585
9474
|
key: 0
|
|
9586
9475
|
};
|
|
9587
|
-
function _sfc_render$
|
|
9476
|
+
function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9588
9477
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
9589
9478
|
const _component_f_form_modal = vue.resolveComponent("f-form-modal");
|
|
9590
9479
|
const _component_f_confirm_modal = vue.resolveComponent("f-confirm-modal");
|
|
9591
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9480
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, [vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.hasAddSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$o, [vue.createElementVNode("button", {
|
|
9592
9481
|
"data-test": "f-crud-dataset-add-button",
|
|
9593
9482
|
type: "button",
|
|
9594
9483
|
class: "button button--tertiary crud-dataset__add-button",
|
|
@@ -9596,9 +9485,10 @@ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9596
9485
|
}, [vue.createVNode(_component_f_icon, {
|
|
9597
9486
|
class: "button__icon",
|
|
9598
9487
|
name: "plus"
|
|
9599
|
-
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "add-button", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.crud-dataset.button.add", "Lägg till ny")), 1)])])])) : vue.createCommentVNode("", true), _cache[
|
|
9488
|
+
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "add-button", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.crud-dataset.button.add", "Lägg till ny")), 1)])])])) : vue.createCommentVNode("", true), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createVNode(_component_f_form_modal, {
|
|
9600
9489
|
"is-open": _ctx.isFormModalOpen,
|
|
9601
9490
|
"aria-close-text": _ctx.$t("fkui.crud-dataset.modal.close", "Stäng"),
|
|
9491
|
+
buttons: _ctx.formModalButtons,
|
|
9602
9492
|
"use-error-list": false,
|
|
9603
9493
|
"before-submit": _ctx.beforeSubmit,
|
|
9604
9494
|
"before-validation": _ctx.beforeValidation,
|
|
@@ -9617,10 +9507,8 @@ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9617
9507
|
}, {
|
|
9618
9508
|
item: _ctx.item
|
|
9619
9509
|
}))) : vue.createCommentVNode("", true)]),
|
|
9620
|
-
"submit-button-text": vue.withCtx(() => [vue.createTextVNode(vue.toDisplayString(_ctx.confirmButtonText), 1)]),
|
|
9621
|
-
"cancel-button-text": vue.withCtx(() => [vue.createTextVNode(vue.toDisplayString(_ctx.cancelButtonText), 1)]),
|
|
9622
9510
|
_: 3
|
|
9623
|
-
}, 8, ["is-open", "aria-close-text", "before-submit", "before-validation", "on-cancel", "onClose", "onCancel", "onSubmit"]), _cache[
|
|
9511
|
+
}, 8, ["is-open", "aria-close-text", "buttons", "before-submit", "before-validation", "on-cancel", "onClose", "onCancel", "onSubmit"]), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createVNode(_component_f_confirm_modal, {
|
|
9624
9512
|
"is-open": _ctx.isConfirmModalOpen,
|
|
9625
9513
|
buttons: _ctx.confirmDeleteButtons,
|
|
9626
9514
|
onConfirm: _ctx.onDeleteConfirm,
|
|
@@ -9633,14 +9521,14 @@ function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9633
9521
|
_: 3
|
|
9634
9522
|
}, 8, ["is-open", "buttons", "onConfirm", "onClose"])]);
|
|
9635
9523
|
}
|
|
9636
|
-
const FCrudDataset = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9524
|
+
const FCrudDataset = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$w]]);
|
|
9637
9525
|
function FCrudDatasetInjected() {
|
|
9638
9526
|
return {
|
|
9639
9527
|
delete: vue.inject("delete"),
|
|
9640
9528
|
modify: vue.inject("modify")
|
|
9641
9529
|
};
|
|
9642
9530
|
}
|
|
9643
|
-
const _sfc_main$
|
|
9531
|
+
const _sfc_main$H = vue.defineComponent({
|
|
9644
9532
|
name: "FCrudButton",
|
|
9645
9533
|
components: {
|
|
9646
9534
|
FIcon
|
|
@@ -9696,11 +9584,11 @@ const _sfc_main$K = vue.defineComponent({
|
|
|
9696
9584
|
}
|
|
9697
9585
|
}
|
|
9698
9586
|
});
|
|
9699
|
-
const _hoisted_1$
|
|
9587
|
+
const _hoisted_1$v = {
|
|
9700
9588
|
key: 1,
|
|
9701
9589
|
class: "sr-only"
|
|
9702
9590
|
};
|
|
9703
|
-
function _sfc_render$
|
|
9591
|
+
function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9704
9592
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
9705
9593
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
9706
9594
|
type: "button",
|
|
@@ -9710,11 +9598,11 @@ function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9710
9598
|
key: 0,
|
|
9711
9599
|
class: "button__icon",
|
|
9712
9600
|
name: _ctx.iconName
|
|
9713
|
-
}, null, 8, ["name"])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), !_ctx.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$
|
|
9601
|
+
}, null, 8, ["name"])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), !_ctx.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$v, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.buttonText), 1)])])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.label ? vue.renderSlot(_ctx.$slots, "default", {
|
|
9714
9602
|
key: 2
|
|
9715
9603
|
}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.buttonText), 1)]) : vue.createCommentVNode("", true)]);
|
|
9716
9604
|
}
|
|
9717
|
-
const FCrudButton = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9605
|
+
const FCrudButton = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$v]]);
|
|
9718
9606
|
function ActivateItemInjected() {
|
|
9719
9607
|
return {
|
|
9720
9608
|
registerCallbackAfterItemAdd: vue.inject("registerCallbackAfterItemAdd", () => void 0),
|
|
@@ -9798,7 +9686,7 @@ function FTableInjected() {
|
|
|
9798
9686
|
renderColumns: vue.inject("renderColumns", false)
|
|
9799
9687
|
};
|
|
9800
9688
|
}
|
|
9801
|
-
const _sfc_main$
|
|
9689
|
+
const _sfc_main$G = vue.defineComponent({
|
|
9802
9690
|
name: "FTableColumn",
|
|
9803
9691
|
inheritAttrs: false,
|
|
9804
9692
|
props: {
|
|
@@ -9939,7 +9827,7 @@ const _sfc_main$J = vue.defineComponent({
|
|
|
9939
9827
|
});
|
|
9940
9828
|
}
|
|
9941
9829
|
});
|
|
9942
|
-
function _sfc_render$
|
|
9830
|
+
function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
|
|
9943
9831
|
return _ctx.renderColumns && _ctx.visible ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.tagName), vue.mergeProps({
|
|
9944
9832
|
key: 0,
|
|
9945
9833
|
class: _ctx.classes,
|
|
@@ -9951,7 +9839,7 @@ function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
9951
9839
|
_: 3
|
|
9952
9840
|
}, 16, ["class", "scope"])) : vue.createCommentVNode("", true);
|
|
9953
9841
|
}
|
|
9954
|
-
const FTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9842
|
+
const FTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$u]]);
|
|
9955
9843
|
function FSortFilterDatasetInjected() {
|
|
9956
9844
|
return {
|
|
9957
9845
|
sort: vue.inject("sort", () => void 0),
|
|
@@ -9959,7 +9847,7 @@ function FSortFilterDatasetInjected() {
|
|
|
9959
9847
|
registerCallbackOnMount: vue.inject("registerCallbackOnMount", () => void 0)
|
|
9960
9848
|
};
|
|
9961
9849
|
}
|
|
9962
|
-
const _sfc_main$
|
|
9850
|
+
const _sfc_main$F = vue.defineComponent({
|
|
9963
9851
|
name: "FLabel",
|
|
9964
9852
|
components: {
|
|
9965
9853
|
FIcon
|
|
@@ -9980,7 +9868,7 @@ const _sfc_main$I = vue.defineComponent({
|
|
|
9980
9868
|
data() {
|
|
9981
9869
|
return {
|
|
9982
9870
|
descriptionClass: ["label__description"],
|
|
9983
|
-
|
|
9871
|
+
formatDescriptionClass: ["label__description", "label__description--format"]
|
|
9984
9872
|
};
|
|
9985
9873
|
},
|
|
9986
9874
|
computed: {
|
|
@@ -9998,56 +9886,56 @@ const _sfc_main$I = vue.defineComponent({
|
|
|
9998
9886
|
}
|
|
9999
9887
|
}
|
|
10000
9888
|
});
|
|
10001
|
-
const _hoisted_1$
|
|
9889
|
+
const _hoisted_1$u = {
|
|
10002
9890
|
key: 0
|
|
10003
9891
|
};
|
|
10004
|
-
const _hoisted_2$
|
|
9892
|
+
const _hoisted_2$n = {
|
|
10005
9893
|
key: 0,
|
|
10006
9894
|
ref: "tooltipAttachTo"
|
|
10007
9895
|
};
|
|
10008
|
-
const _hoisted_3$
|
|
9896
|
+
const _hoisted_3$j = ["for"];
|
|
10009
9897
|
const _hoisted_4$g = ["for"];
|
|
10010
9898
|
const _hoisted_5$d = {
|
|
10011
9899
|
key: 0,
|
|
10012
9900
|
class: "label__message label__message--error"
|
|
10013
9901
|
};
|
|
10014
9902
|
const _hoisted_6$b = ["for"];
|
|
10015
|
-
const _hoisted_7$
|
|
9903
|
+
const _hoisted_7$a = {
|
|
10016
9904
|
key: 0,
|
|
10017
9905
|
class: "label__message label__message--error"
|
|
10018
9906
|
};
|
|
10019
|
-
function _sfc_render$
|
|
9907
|
+
function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10020
9908
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
10021
|
-
return _ctx.$slots.tooltip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
9909
|
+
return _ctx.$slots.tooltip ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [_ctx.hasDefaultSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, [vue.createElementVNode("label", {
|
|
10022
9910
|
class: "label",
|
|
10023
9911
|
for: _ctx.forProperty
|
|
10024
|
-
}, [vue.renderSlot(_ctx.$slots, "default")], 8, _hoisted_3$
|
|
9912
|
+
}, [vue.renderSlot(_ctx.$slots, "default")], 8, _hoisted_3$j)], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "tooltip"), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.hasDescriptionSlot || _ctx.hasErrorMessageSlot ? (vue.openBlock(), vue.createElementBlock("label", {
|
|
10025
9913
|
key: 1,
|
|
10026
9914
|
class: "label sr-separator",
|
|
10027
9915
|
for: _ctx.forProperty
|
|
10028
|
-
}, [vue.renderSlot(_ctx.$slots, "description",
|
|
9916
|
+
}, [vue.renderSlot(_ctx.$slots, "description", {
|
|
10029
9917
|
descriptionClass: _ctx.descriptionClass,
|
|
10030
|
-
|
|
10031
|
-
})
|
|
9918
|
+
formatDescriptionClass: _ctx.formatDescriptionClass
|
|
9919
|
+
}), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.hasErrorMessageSlot ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$d, [vue.createVNode(_component_f_icon, {
|
|
10032
9920
|
class: "label__icon--left",
|
|
10033
9921
|
name: "error"
|
|
10034
9922
|
}), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message")])) : vue.createCommentVNode("", true)], 8, _hoisted_4$g)) : vue.createCommentVNode("", true)])) : (vue.openBlock(), vue.createElementBlock("label", {
|
|
10035
9923
|
key: 1,
|
|
10036
9924
|
class: "label",
|
|
10037
9925
|
for: _ctx.forProperty
|
|
10038
|
-
}, [vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "description",
|
|
9926
|
+
}, [vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "description", {
|
|
10039
9927
|
descriptionClass: _ctx.descriptionClass,
|
|
10040
|
-
|
|
10041
|
-
})
|
|
9928
|
+
formatDescriptionClass: _ctx.formatDescriptionClass
|
|
9929
|
+
}), _cache[6] || (_cache[6] = vue.createTextVNode()), _ctx.hasErrorMessageSlot ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$a, [vue.createVNode(_component_f_icon, {
|
|
10042
9930
|
class: "label__icon--left",
|
|
10043
9931
|
name: "error"
|
|
10044
9932
|
}), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "error-message")])) : vue.createCommentVNode("", true)], 8, _hoisted_6$b));
|
|
10045
9933
|
}
|
|
10046
|
-
const FLabel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
9934
|
+
const FLabel = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["render", _sfc_render$t]]);
|
|
10047
9935
|
function resolveWidthClass$1(words, inline) {
|
|
10048
9936
|
return inline ? void 0 : words.split(" ").map((word) => `i-width-${word}`).join(" ");
|
|
10049
9937
|
}
|
|
10050
|
-
const _sfc_main$
|
|
9938
|
+
const _sfc_main$E = vue.defineComponent({
|
|
10051
9939
|
name: "FSelectField",
|
|
10052
9940
|
components: {
|
|
10053
9941
|
FIcon,
|
|
@@ -10178,8 +10066,8 @@ const _sfc_main$H = vue.defineComponent({
|
|
|
10178
10066
|
}
|
|
10179
10067
|
}
|
|
10180
10068
|
});
|
|
10181
|
-
const _hoisted_1$
|
|
10182
|
-
function _sfc_render$
|
|
10069
|
+
const _hoisted_1$t = ["id"];
|
|
10070
|
+
function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10183
10071
|
const _component_f_label = vue.resolveComponent("f-label");
|
|
10184
10072
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
10185
10073
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -10194,11 +10082,11 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10194
10082
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "label")]),
|
|
10195
10083
|
description: vue.withCtx(({
|
|
10196
10084
|
descriptionClass,
|
|
10197
|
-
|
|
10198
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
10085
|
+
formatDescriptionClass
|
|
10086
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
10199
10087
|
descriptionClass,
|
|
10200
|
-
|
|
10201
|
-
})
|
|
10088
|
+
formatDescriptionClass
|
|
10089
|
+
})]),
|
|
10202
10090
|
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
10203
10091
|
hasError: _ctx.hasError,
|
|
10204
10092
|
validationMessage: _ctx.validationMessage
|
|
@@ -10216,7 +10104,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10216
10104
|
id: _ctx.id,
|
|
10217
10105
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vModel = $event),
|
|
10218
10106
|
class: "select-field__select"
|
|
10219
|
-
}, _ctx.attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$
|
|
10107
|
+
}, _ctx.attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$t), [[vue.vModelSelect, _ctx.vModel]]), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.hasError && _ctx.textFieldTableMode ? (vue.openBlock(), vue.createBlock(_component_f_icon, {
|
|
10220
10108
|
key: 0,
|
|
10221
10109
|
ref: "icon",
|
|
10222
10110
|
class: "text-field__icon input-icon select-field__error-popup-icon",
|
|
@@ -10226,7 +10114,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10226
10114
|
name: "arrow-down"
|
|
10227
10115
|
})], 2)], 34);
|
|
10228
10116
|
}
|
|
10229
|
-
const FSelectField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
10117
|
+
const FSelectField = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$s]]);
|
|
10230
10118
|
function resolveWidthClass(words, inline) {
|
|
10231
10119
|
return inline ? void 0 : words.split(" ").map((word) => `i-width-${word}`).join(" ");
|
|
10232
10120
|
}
|
|
@@ -10255,7 +10143,7 @@ function useTextFieldSetup(props) {
|
|
|
10255
10143
|
toggleDropdown,
|
|
10256
10144
|
selectOption,
|
|
10257
10145
|
closeDropdown
|
|
10258
|
-
} = useCombobox(inputNode, props
|
|
10146
|
+
} = useCombobox(inputNode, vue.toRef(props, "options"), onOptionSelected);
|
|
10259
10147
|
return {
|
|
10260
10148
|
textFieldTableMode,
|
|
10261
10149
|
viewValue,
|
|
@@ -10270,14 +10158,14 @@ function useTextFieldSetup(props) {
|
|
|
10270
10158
|
closeDropdown
|
|
10271
10159
|
};
|
|
10272
10160
|
}
|
|
10273
|
-
const _sfc_main$
|
|
10161
|
+
const _sfc_main$D = vue.defineComponent({
|
|
10274
10162
|
name: "FTextField",
|
|
10275
10163
|
components: {
|
|
10276
10164
|
FLabel,
|
|
10277
10165
|
FIcon,
|
|
10278
10166
|
IPopupError,
|
|
10279
|
-
IComboboxDropdown: _sfc_main$
|
|
10280
|
-
IComboboxToggleButton: _sfc_main$
|
|
10167
|
+
IComboboxDropdown: _sfc_main$O,
|
|
10168
|
+
IComboboxToggleButton: _sfc_main$N
|
|
10281
10169
|
},
|
|
10282
10170
|
inheritAttrs: false,
|
|
10283
10171
|
props: {
|
|
@@ -10378,6 +10266,8 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10378
10266
|
*
|
|
10379
10267
|
* When set, the user can select a value from the list of options and filter while typing.
|
|
10380
10268
|
*
|
|
10269
|
+
* If options will be set at a later time, initially specify as an empty array.
|
|
10270
|
+
*
|
|
10381
10271
|
* If a formatter is used by the component, make sure the options are formatted as well.
|
|
10382
10272
|
*/
|
|
10383
10273
|
options: {
|
|
@@ -10394,7 +10284,7 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10394
10284
|
default: false
|
|
10395
10285
|
}
|
|
10396
10286
|
},
|
|
10397
|
-
emits: ["blur", "change", "update
|
|
10287
|
+
emits: ["blur", "change", "update:modelValue"],
|
|
10398
10288
|
setup(props) {
|
|
10399
10289
|
const {
|
|
10400
10290
|
textFieldTableMode,
|
|
@@ -10503,7 +10393,6 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10503
10393
|
async onChange() {
|
|
10504
10394
|
if (!this.$refs.input.hasAttribute("data-validation")) {
|
|
10505
10395
|
this.$emit("update:modelValue", this.viewValue);
|
|
10506
|
-
this.$emit("update", this.viewValue);
|
|
10507
10396
|
await this.$nextTick();
|
|
10508
10397
|
this.$emit("change", this.viewValue);
|
|
10509
10398
|
}
|
|
@@ -10518,7 +10407,6 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10518
10407
|
}
|
|
10519
10408
|
if (!this.$refs.input.hasAttribute("data-validation")) {
|
|
10520
10409
|
this.$emit("update:modelValue", this.viewValue);
|
|
10521
|
-
this.$emit("update", this.viewValue);
|
|
10522
10410
|
await this.$nextTick();
|
|
10523
10411
|
this.$emit("blur", this.viewValue);
|
|
10524
10412
|
}
|
|
@@ -10537,7 +10425,6 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10537
10425
|
}
|
|
10538
10426
|
this.lastModelValue = newModelValue;
|
|
10539
10427
|
this.$emit("update:modelValue", newModelValue);
|
|
10540
|
-
this.$emit("update", newModelValue);
|
|
10541
10428
|
await this.$nextTick();
|
|
10542
10429
|
this.$emit(detail.nativeEvent, newModelValue);
|
|
10543
10430
|
if (detail.isValid) {
|
|
@@ -10609,14 +10496,14 @@ const _sfc_main$G = vue.defineComponent({
|
|
|
10609
10496
|
}
|
|
10610
10497
|
}
|
|
10611
10498
|
});
|
|
10612
|
-
const _hoisted_1$
|
|
10499
|
+
const _hoisted_1$s = {
|
|
10613
10500
|
key: 0
|
|
10614
10501
|
};
|
|
10615
|
-
const _hoisted_2$
|
|
10502
|
+
const _hoisted_2$m = {
|
|
10616
10503
|
key: 0,
|
|
10617
10504
|
class: "sr-only"
|
|
10618
10505
|
};
|
|
10619
|
-
const _hoisted_3$
|
|
10506
|
+
const _hoisted_3$i = {
|
|
10620
10507
|
key: 0,
|
|
10621
10508
|
class: "sr-only"
|
|
10622
10509
|
};
|
|
@@ -10628,11 +10515,11 @@ const _hoisted_6$a = {
|
|
|
10628
10515
|
key: 2,
|
|
10629
10516
|
class: "text-field__append-inner"
|
|
10630
10517
|
};
|
|
10631
|
-
const _hoisted_7$
|
|
10518
|
+
const _hoisted_7$9 = {
|
|
10632
10519
|
key: 3,
|
|
10633
10520
|
class: "text-field__append-inner"
|
|
10634
10521
|
};
|
|
10635
|
-
function _sfc_render$
|
|
10522
|
+
function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10636
10523
|
const _component_f_label = vue.resolveComponent("f-label");
|
|
10637
10524
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
10638
10525
|
const _component_i_popup_error = vue.resolveComponent("i-popup-error");
|
|
@@ -10646,20 +10533,20 @@ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10646
10533
|
for: _ctx.id,
|
|
10647
10534
|
class: vue.normalizeClass(_ctx.labelClass)
|
|
10648
10535
|
}, vue.createSlots({
|
|
10649
|
-
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.defaultText !== "" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$
|
|
10536
|
+
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [_ctx.defaultText !== "" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$s, vue.toDisplayString(_ctx.defaultText), 1)) : vue.createCommentVNode("", true)])]),
|
|
10650
10537
|
description: vue.withCtx(({
|
|
10651
10538
|
descriptionClass,
|
|
10652
|
-
|
|
10653
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
10539
|
+
formatDescriptionClass
|
|
10540
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
10654
10541
|
descriptionClass,
|
|
10655
|
-
|
|
10656
|
-
}
|
|
10542
|
+
formatDescriptionClass
|
|
10543
|
+
}, () => [_ctx.descriptionText ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
10657
10544
|
key: 0,
|
|
10658
10545
|
class: vue.normalizeClass(descriptionClass)
|
|
10659
|
-
}, [_ctx.descriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$
|
|
10546
|
+
}, [_ctx.descriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$m, vue.toDisplayString(_ctx.descriptionScreenReaderText), 1)) : vue.createCommentVNode("", true), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createElementVNode("span", null, vue.toDisplayString(_ctx.descriptionText), 1)], 2)) : vue.createCommentVNode("", true), _cache[9] || (_cache[9] = vue.createTextVNode()), _ctx.discreteDescriptionText ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
10660
10547
|
key: 1,
|
|
10661
|
-
class: vue.normalizeClass(
|
|
10662
|
-
}, [_ctx.discreteDescriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
10548
|
+
class: vue.normalizeClass(formatDescriptionClass)
|
|
10549
|
+
}, [_ctx.discreteDescriptionScreenReaderText ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$i, vue.toDisplayString(_ctx.discreteDescriptionScreenReaderText), 1)) : vue.createCommentVNode("", true), _cache[8] || (_cache[8] = vue.createTextVNode()), vue.createElementVNode("span", null, vue.toDisplayString(_ctx.discreteDescriptionText), 1)], 2)) : vue.createCommentVNode("", true)])]),
|
|
10663
10550
|
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
10664
10551
|
hasError: _ctx.hasError,
|
|
10665
10552
|
validationMessage: _ctx.validationMessage
|
|
@@ -10698,7 +10585,7 @@ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10698
10585
|
"is-open": _ctx.showPopupError,
|
|
10699
10586
|
"error-message": _ctx.validationMessage,
|
|
10700
10587
|
onClose: _ctx.closePopupError
|
|
10701
|
-
}, null, 8, ["anchor", "is-open", "error-message", "onClose"])) : vue.createCommentVNode("", true), _cache[15] || (_cache[15] = vue.createTextVNode()), _ctx.$slots["append-inner"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$a, [vue.renderSlot(_ctx.$slots, "append-inner")])) : vue.createCommentVNode("", true), _cache[16] || (_cache[16] = vue.createTextVNode()), _ctx.options ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$
|
|
10588
|
+
}, null, 8, ["anchor", "is-open", "error-message", "onClose"])) : vue.createCommentVNode("", true), _cache[15] || (_cache[15] = vue.createTextVNode()), _ctx.$slots["append-inner"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$a, [vue.renderSlot(_ctx.$slots, "append-inner")])) : vue.createCommentVNode("", true), _cache[16] || (_cache[16] = vue.createTextVNode()), _ctx.options ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$9, [vue.createVNode(_component_i_combobox_toggle_button, {
|
|
10702
10589
|
disabled: _ctx.disabled,
|
|
10703
10590
|
"aria-controls": _ctx.dropdownIsOpen ? _ctx.dropdownId : void 0,
|
|
10704
10591
|
"aria-expanded": _ctx.dropdownIsOpen,
|
|
@@ -10715,8 +10602,8 @@ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10715
10602
|
onClose: _ctx.onDropdownClose
|
|
10716
10603
|
}, null, 8, ["id", "is-open", "options", "active-option", "active-option-id", "input-node", "onSelect", "onClose"])) : vue.createCommentVNode("", true)], 2);
|
|
10717
10604
|
}
|
|
10718
|
-
const FTextField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
10719
|
-
const _sfc_main$
|
|
10605
|
+
const FTextField = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$r]]);
|
|
10606
|
+
const _sfc_main$C = vue.defineComponent({
|
|
10720
10607
|
name: "FEmailTextField",
|
|
10721
10608
|
components: {
|
|
10722
10609
|
FTextField
|
|
@@ -10762,7 +10649,7 @@ const _sfc_main$F = vue.defineComponent({
|
|
|
10762
10649
|
default: logic.TranslationService.provider.translate("fkui.email-text-field.error.pasting", "Du kan inte kopiera mejladressen. Du måste skriva in den igen.")
|
|
10763
10650
|
}
|
|
10764
10651
|
},
|
|
10765
|
-
emits: ["blur", "change", "update
|
|
10652
|
+
emits: ["blur", "change", "update:modelValue"],
|
|
10766
10653
|
data() {
|
|
10767
10654
|
return {
|
|
10768
10655
|
validityMode: "INITIAL",
|
|
@@ -10783,7 +10670,6 @@ const _sfc_main$F = vue.defineComponent({
|
|
|
10783
10670
|
},
|
|
10784
10671
|
onUpdate(event) {
|
|
10785
10672
|
this.$emit("update:modelValue", event);
|
|
10786
|
-
this.$emit("update", event);
|
|
10787
10673
|
},
|
|
10788
10674
|
onPaste(event) {
|
|
10789
10675
|
this.showPasteErrorMessage = true;
|
|
@@ -10833,10 +10719,10 @@ const _sfc_main$F = vue.defineComponent({
|
|
|
10833
10719
|
}
|
|
10834
10720
|
}
|
|
10835
10721
|
});
|
|
10836
|
-
const _hoisted_1$
|
|
10722
|
+
const _hoisted_1$r = {
|
|
10837
10723
|
key: 0
|
|
10838
10724
|
};
|
|
10839
|
-
function _sfc_render$
|
|
10725
|
+
function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10840
10726
|
const _component_f_text_field = vue.resolveComponent("f-text-field");
|
|
10841
10727
|
return vue.openBlock(), vue.createElementBlock("div", null, [vue.createVNode(_component_f_text_field, vue.mergeProps({
|
|
10842
10728
|
id: _ctx.id,
|
|
@@ -10846,14 +10732,14 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10846
10732
|
"model-value": _ctx.modelValue,
|
|
10847
10733
|
onChange: _ctx.onChange,
|
|
10848
10734
|
onBlur: _ctx.onBlur,
|
|
10849
|
-
onUpdate: _ctx.onUpdate,
|
|
10735
|
+
"onUpdate:modelValue": _ctx.onUpdate,
|
|
10850
10736
|
onValidity: _ctx.onValidity,
|
|
10851
10737
|
onPendingValidity: _ctx.onPendingValidity
|
|
10852
10738
|
}), {
|
|
10853
|
-
"error-message": vue.withCtx(() => [_ctx.showPasteErrorMessage ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$
|
|
10739
|
+
"error-message": vue.withCtx(() => [_ctx.showPasteErrorMessage ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$r, vue.toDisplayString(_ctx.pasteErrorText), 1)) : vue.createCommentVNode("", true)]),
|
|
10854
10740
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.defaultText), 1)]), _cache[2] || (_cache[2] = vue.createTextVNode())]),
|
|
10855
10741
|
_: 3
|
|
10856
|
-
}, 16, ["id", "maxlength", "model-value", "onChange", "onBlur", "onUpdate", "onValidity", "onPendingValidity"]), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.extendedValidation ? (vue.openBlock(), vue.createBlock(_component_f_text_field, {
|
|
10742
|
+
}, 16, ["id", "maxlength", "model-value", "onChange", "onBlur", "onUpdate:modelValue", "onValidity", "onPendingValidity"]), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.extendedValidation ? (vue.openBlock(), vue.createBlock(_component_f_text_field, {
|
|
10857
10743
|
key: 0,
|
|
10858
10744
|
modelValue: _ctx.secondEmail,
|
|
10859
10745
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.secondEmail = $event),
|
|
@@ -10866,8 +10752,8 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10866
10752
|
_: 3
|
|
10867
10753
|
}, 8, ["modelValue", "maxlength", "onPaste"])) : vue.createCommentVNode("", true)]);
|
|
10868
10754
|
}
|
|
10869
|
-
const FEmailTextField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
10870
|
-
const _sfc_main$
|
|
10755
|
+
const FEmailTextField = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$q]]);
|
|
10756
|
+
const _sfc_main$B = vue.defineComponent({
|
|
10871
10757
|
name: "FPhoneTextField",
|
|
10872
10758
|
components: {
|
|
10873
10759
|
FTextField
|
|
@@ -10904,7 +10790,7 @@ const _sfc_main$E = vue.defineComponent({
|
|
|
10904
10790
|
default: false
|
|
10905
10791
|
}
|
|
10906
10792
|
},
|
|
10907
|
-
emits: ["blur", "change", "update
|
|
10793
|
+
emits: ["blur", "change", "update:modelValue"],
|
|
10908
10794
|
data() {
|
|
10909
10795
|
return {
|
|
10910
10796
|
validityMode: "INITIAL",
|
|
@@ -10924,7 +10810,6 @@ const _sfc_main$E = vue.defineComponent({
|
|
|
10924
10810
|
},
|
|
10925
10811
|
onUpdate(event) {
|
|
10926
10812
|
this.$emit("update:modelValue", event);
|
|
10927
|
-
this.$emit("update", event);
|
|
10928
10813
|
},
|
|
10929
10814
|
onValidity({
|
|
10930
10815
|
detail
|
|
@@ -10968,7 +10853,7 @@ const _sfc_main$E = vue.defineComponent({
|
|
|
10968
10853
|
}
|
|
10969
10854
|
}
|
|
10970
10855
|
});
|
|
10971
|
-
function _sfc_render$
|
|
10856
|
+
function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
|
|
10972
10857
|
const _component_f_text_field = vue.resolveComponent("f-text-field");
|
|
10973
10858
|
return vue.openBlock(), vue.createElementBlock("div", null, [vue.createVNode(_component_f_text_field, vue.mergeProps({
|
|
10974
10859
|
id: _ctx.id,
|
|
@@ -10978,13 +10863,13 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10978
10863
|
"model-value": _ctx.modelValue,
|
|
10979
10864
|
onChange: _ctx.onChange,
|
|
10980
10865
|
onBlur: _ctx.onBlur,
|
|
10981
|
-
onUpdate: _ctx.onUpdate,
|
|
10866
|
+
"onUpdate:modelValue": _ctx.onUpdate,
|
|
10982
10867
|
onValidity: _ctx.onValidity,
|
|
10983
10868
|
onPendingValidity: _ctx.onPendingValidity
|
|
10984
10869
|
}), {
|
|
10985
10870
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.defaultText), 1)])]),
|
|
10986
10871
|
_: 3
|
|
10987
|
-
}, 16, ["id", "maxlength", "model-value", "onChange", "onBlur", "onUpdate", "onValidity", "onPendingValidity"]), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.extendedValidation ? (vue.openBlock(), vue.createBlock(_component_f_text_field, {
|
|
10872
|
+
}, 16, ["id", "maxlength", "model-value", "onChange", "onBlur", "onUpdate:modelValue", "onValidity", "onPendingValidity"]), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.extendedValidation ? (vue.openBlock(), vue.createBlock(_component_f_text_field, {
|
|
10988
10873
|
key: 0,
|
|
10989
10874
|
modelValue: _ctx.secondPhone,
|
|
10990
10875
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.secondPhone = $event),
|
|
@@ -10995,8 +10880,8 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
10995
10880
|
_: 3
|
|
10996
10881
|
}, 8, ["modelValue", "maxlength"])) : vue.createCommentVNode("", true)]);
|
|
10997
10882
|
}
|
|
10998
|
-
const FPhoneTextField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
10999
|
-
const _sfc_main$
|
|
10883
|
+
const FPhoneTextField = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$p]]);
|
|
10884
|
+
const _sfc_main$A = vue.defineComponent({
|
|
11000
10885
|
name: "FCurrencyTextField",
|
|
11001
10886
|
extends: FTextField,
|
|
11002
10887
|
mixins: [TranslationMixin],
|
|
@@ -11031,7 +10916,7 @@ const _sfc_main$D = vue.defineComponent({
|
|
|
11031
10916
|
logic.ValidationService.validateElement(inputElement);
|
|
11032
10917
|
}
|
|
11033
10918
|
});
|
|
11034
|
-
const _sfc_main$
|
|
10919
|
+
const _sfc_main$z = vue.defineComponent({
|
|
11035
10920
|
name: "FSearchTextField",
|
|
11036
10921
|
components: {
|
|
11037
10922
|
FTextField,
|
|
@@ -11091,10 +10976,10 @@ const _sfc_main$C = vue.defineComponent({
|
|
|
11091
10976
|
}
|
|
11092
10977
|
}
|
|
11093
10978
|
});
|
|
11094
|
-
const _hoisted_1$
|
|
10979
|
+
const _hoisted_1$q = {
|
|
11095
10980
|
class: "sr-only"
|
|
11096
10981
|
};
|
|
11097
|
-
function _sfc_render$
|
|
10982
|
+
function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
|
|
11098
10983
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
11099
10984
|
const _component_f_text_field = vue.resolveComponent("f-text-field");
|
|
11100
10985
|
return vue.openBlock(), vue.createElementBlock("div", null, [vue.createVNode(_component_f_text_field, vue.mergeProps({
|
|
@@ -11120,11 +11005,11 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11120
11005
|
})))]),
|
|
11121
11006
|
description: vue.withCtx(({
|
|
11122
11007
|
descriptionClass,
|
|
11123
|
-
|
|
11124
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
11008
|
+
formatDescriptionClass
|
|
11009
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
11125
11010
|
descriptionClass,
|
|
11126
|
-
|
|
11127
|
-
})
|
|
11011
|
+
formatDescriptionClass
|
|
11012
|
+
})]),
|
|
11128
11013
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.defaultText), 1)]), _cache[2] || (_cache[2] = vue.createTextVNode()), _cache[3] || (_cache[3] = vue.createTextVNode()), _cache[4] || (_cache[4] = vue.createTextVNode()), _cache[5] || (_cache[5] = vue.createTextVNode()), _cache[6] || (_cache[6] = vue.createTextVNode()), _cache[7] || (_cache[7] = vue.createTextVNode())]),
|
|
11129
11014
|
_: 2
|
|
11130
11015
|
}, [_ctx.$slots.tooltip ? {
|
|
@@ -11140,12 +11025,12 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11140
11025
|
}, [vue.createVNode(_component_f_icon, {
|
|
11141
11026
|
name: "cross",
|
|
11142
11027
|
class: "clear-button__icon"
|
|
11143
|
-
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_1$
|
|
11028
|
+
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_1$q, vue.toDisplayString(_ctx.clearableScreenReaderText), 1)])]),
|
|
11144
11029
|
key: "1"
|
|
11145
11030
|
} : void 0]), 1040, ["id", "maxlength", "model-value", "onChange", "onInput", "onBlur", "onUpdate"])]);
|
|
11146
11031
|
}
|
|
11147
|
-
const FSearchTextField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
11148
|
-
const _sfc_main$
|
|
11032
|
+
const FSearchTextField = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$o]]);
|
|
11033
|
+
const _sfc_main$y = vue.defineComponent({
|
|
11149
11034
|
name: "FBankAccountNumberTextField",
|
|
11150
11035
|
extends: FTextField,
|
|
11151
11036
|
mixins: [TranslationMixin],
|
|
@@ -11174,7 +11059,7 @@ const _sfc_main$B = vue.defineComponent({
|
|
|
11174
11059
|
logic.ValidationService.validateElement(inputElement);
|
|
11175
11060
|
}
|
|
11176
11061
|
});
|
|
11177
|
-
const _sfc_main$
|
|
11062
|
+
const _sfc_main$x = vue.defineComponent({
|
|
11178
11063
|
name: "FBankgiroTextField",
|
|
11179
11064
|
extends: FTextField,
|
|
11180
11065
|
mixins: [TranslationMixin],
|
|
@@ -11206,7 +11091,7 @@ const _sfc_main$A = vue.defineComponent({
|
|
|
11206
11091
|
logic.ValidationService.validateElement(inputElement);
|
|
11207
11092
|
}
|
|
11208
11093
|
});
|
|
11209
|
-
const _sfc_main$
|
|
11094
|
+
const _sfc_main$w = vue.defineComponent({
|
|
11210
11095
|
name: "FClearingnumberTextField",
|
|
11211
11096
|
extends: FTextField,
|
|
11212
11097
|
mixins: [TranslationMixin],
|
|
@@ -11238,7 +11123,7 @@ const _sfc_main$z = vue.defineComponent({
|
|
|
11238
11123
|
function defaultFormatter$1(modelValue) {
|
|
11239
11124
|
return logic.formatNumber(modelValue, this.decimals);
|
|
11240
11125
|
}
|
|
11241
|
-
const _sfc_main$
|
|
11126
|
+
const _sfc_main$v = vue.defineComponent({
|
|
11242
11127
|
name: "FNumericTextField",
|
|
11243
11128
|
extends: FTextField,
|
|
11244
11129
|
props: {
|
|
@@ -11275,7 +11160,7 @@ const _sfc_main$y = vue.defineComponent({
|
|
|
11275
11160
|
logic.ValidationService.validateElement(inputElement);
|
|
11276
11161
|
}
|
|
11277
11162
|
});
|
|
11278
|
-
const _sfc_main$
|
|
11163
|
+
const _sfc_main$u = vue.defineComponent({
|
|
11279
11164
|
name: "FPersonnummerTextField",
|
|
11280
11165
|
extends: FTextField,
|
|
11281
11166
|
mixins: [TranslationMixin],
|
|
@@ -11315,7 +11200,7 @@ const _sfc_main$x = vue.defineComponent({
|
|
|
11315
11200
|
logic.ValidationService.validateElement(inputElement);
|
|
11316
11201
|
}
|
|
11317
11202
|
});
|
|
11318
|
-
const _sfc_main$
|
|
11203
|
+
const _sfc_main$t = vue.defineComponent({
|
|
11319
11204
|
name: "FPlusgiroTextField",
|
|
11320
11205
|
extends: FTextField,
|
|
11321
11206
|
mixins: [TranslationMixin],
|
|
@@ -11347,7 +11232,7 @@ const _sfc_main$w = vue.defineComponent({
|
|
|
11347
11232
|
logic.ValidationService.validateElement(inputElement);
|
|
11348
11233
|
}
|
|
11349
11234
|
});
|
|
11350
|
-
const _sfc_main$
|
|
11235
|
+
const _sfc_main$s = vue.defineComponent({
|
|
11351
11236
|
name: "FPostalCodeTextField",
|
|
11352
11237
|
extends: FTextField,
|
|
11353
11238
|
mixins: [TranslationMixin],
|
|
@@ -11384,7 +11269,7 @@ const _sfc_main$v = vue.defineComponent({
|
|
|
11384
11269
|
function defaultFormatter(modelValue) {
|
|
11385
11270
|
return logic.formatPercent(modelValue, this.decimals);
|
|
11386
11271
|
}
|
|
11387
|
-
const _sfc_main$
|
|
11272
|
+
const _sfc_main$r = vue.defineComponent({
|
|
11388
11273
|
name: "FPercentTextField",
|
|
11389
11274
|
extends: FTextField,
|
|
11390
11275
|
mixins: [TranslationMixin],
|
|
@@ -11432,7 +11317,7 @@ const _sfc_main$u = vue.defineComponent({
|
|
|
11432
11317
|
logic.ValidationService.validateElement(inputElement);
|
|
11433
11318
|
}
|
|
11434
11319
|
});
|
|
11435
|
-
const _sfc_main$
|
|
11320
|
+
const _sfc_main$q = vue.defineComponent({
|
|
11436
11321
|
name: "FOrganisationsnummerTextField",
|
|
11437
11322
|
extends: FTextField,
|
|
11438
11323
|
mixins: [TranslationMixin],
|
|
@@ -11540,7 +11425,7 @@ function filter(list, filterAttributes, searchString) {
|
|
|
11540
11425
|
const searchTerms = searchString.split(/\s+/).map((word) => word.toLocaleLowerCase());
|
|
11541
11426
|
return list.filter((item) => includesAllSearchTerms(item, filterAttributes, searchTerms));
|
|
11542
11427
|
}
|
|
11543
|
-
const _sfc_main$
|
|
11428
|
+
const _sfc_main$p = vue.defineComponent({
|
|
11544
11429
|
name: "FSortFilterDataset",
|
|
11545
11430
|
components: {
|
|
11546
11431
|
FSelectField,
|
|
@@ -11742,13 +11627,13 @@ const _sfc_main$s = vue.defineComponent({
|
|
|
11742
11627
|
}
|
|
11743
11628
|
}
|
|
11744
11629
|
});
|
|
11745
|
-
const _hoisted_1$
|
|
11630
|
+
const _hoisted_1$p = {
|
|
11746
11631
|
class: "sort-filter-dataset"
|
|
11747
11632
|
};
|
|
11748
|
-
const _hoisted_2$
|
|
11633
|
+
const _hoisted_2$l = {
|
|
11749
11634
|
class: "sort-filter-dataset__search"
|
|
11750
11635
|
};
|
|
11751
|
-
const _hoisted_3$
|
|
11636
|
+
const _hoisted_3$h = {
|
|
11752
11637
|
class: "sr-only"
|
|
11753
11638
|
};
|
|
11754
11639
|
const _hoisted_4$e = ["title"];
|
|
@@ -11761,14 +11646,14 @@ const _hoisted_6$9 = {
|
|
|
11761
11646
|
ascending: false
|
|
11762
11647
|
}
|
|
11763
11648
|
};
|
|
11764
|
-
const _hoisted_7$
|
|
11765
|
-
function _sfc_render$
|
|
11649
|
+
const _hoisted_7$8 = ["value"];
|
|
11650
|
+
function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
|
|
11766
11651
|
const _component_i_flex_item = vue.resolveComponent("i-flex-item");
|
|
11767
11652
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
11768
11653
|
const _component_f_text_field = vue.resolveComponent("f-text-field");
|
|
11769
11654
|
const _component_f_select_field = vue.resolveComponent("f-select-field");
|
|
11770
11655
|
const _component_i_flex = vue.resolveComponent("i-flex");
|
|
11771
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
11656
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [vue.createVNode(_component_i_flex, {
|
|
11772
11657
|
collapse: "",
|
|
11773
11658
|
gap: "3x",
|
|
11774
11659
|
wrap: ""
|
|
@@ -11793,7 +11678,7 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11793
11678
|
shrink: "",
|
|
11794
11679
|
align: "center"
|
|
11795
11680
|
}, {
|
|
11796
|
-
default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2$
|
|
11681
|
+
default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2$l, [vue.createVNode(_component_f_icon, {
|
|
11797
11682
|
name: "search",
|
|
11798
11683
|
class: "sort-filter-dataset__search__magnify-icon"
|
|
11799
11684
|
}), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createVNode(_component_f_text_field, {
|
|
@@ -11804,7 +11689,7 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11804
11689
|
maxlength: "64",
|
|
11805
11690
|
onInput: _ctx.onSearchInput
|
|
11806
11691
|
}, {
|
|
11807
|
-
default: vue.withCtx(() => [vue.createElementVNode("span", _hoisted_3$
|
|
11692
|
+
default: vue.withCtx(() => [vue.createElementVNode("span", _hoisted_3$h, vue.toDisplayString(_ctx.placeholderFilter), 1)]),
|
|
11808
11693
|
_: 1
|
|
11809
11694
|
}, 8, ["modelValue", "placeholder", "onInput"]), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.showClearButton ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
11810
11695
|
key: 0,
|
|
@@ -11833,7 +11718,7 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11833
11718
|
return vue.openBlock(), vue.createElementBlock("option", {
|
|
11834
11719
|
key: sortOrder.id,
|
|
11835
11720
|
value: sortOrder
|
|
11836
|
-
}, vue.toDisplayString(sortOrder.name) + " (" + vue.toDisplayString(sortOrder.ascendingName) + ")\n ", 9, _hoisted_7$
|
|
11721
|
+
}, vue.toDisplayString(sortOrder.name) + " (" + vue.toDisplayString(sortOrder.ascendingName) + ")\n ", 9, _hoisted_7$8);
|
|
11837
11722
|
}), 128))]),
|
|
11838
11723
|
_: 1
|
|
11839
11724
|
}, 8, ["modelValue", "onChange"])]),
|
|
@@ -11848,8 +11733,8 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
11848
11733
|
sortFilterResult: _ctx.sortFilterResult
|
|
11849
11734
|
})))]);
|
|
11850
11735
|
}
|
|
11851
|
-
const FSortFilterDataset = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
11852
|
-
const _sfc_main$
|
|
11736
|
+
const FSortFilterDataset = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$n]]);
|
|
11737
|
+
const _sfc_main$o = vue.defineComponent({
|
|
11853
11738
|
name: "FDataTable",
|
|
11854
11739
|
components: {
|
|
11855
11740
|
FIcon
|
|
@@ -11994,11 +11879,11 @@ const _sfc_main$r = vue.defineComponent({
|
|
|
11994
11879
|
}
|
|
11995
11880
|
}
|
|
11996
11881
|
});
|
|
11997
|
-
const _hoisted_1$
|
|
11998
|
-
const _hoisted_2$
|
|
11882
|
+
const _hoisted_1$o = ["tabindex"];
|
|
11883
|
+
const _hoisted_2$k = {
|
|
11999
11884
|
key: 0
|
|
12000
11885
|
};
|
|
12001
|
-
const _hoisted_3$
|
|
11886
|
+
const _hoisted_3$g = {
|
|
12002
11887
|
class: "table__row"
|
|
12003
11888
|
};
|
|
12004
11889
|
const _hoisted_4$d = ["innerHTML"];
|
|
@@ -12009,23 +11894,23 @@ const _hoisted_5$a = {
|
|
|
12009
11894
|
const _hoisted_6$8 = {
|
|
12010
11895
|
key: 0
|
|
12011
11896
|
};
|
|
12012
|
-
const _hoisted_7$
|
|
11897
|
+
const _hoisted_7$7 = {
|
|
12013
11898
|
key: 1
|
|
12014
11899
|
};
|
|
12015
|
-
const _hoisted_8$
|
|
12016
|
-
function _sfc_render$
|
|
11900
|
+
const _hoisted_8$5 = ["colspan"];
|
|
11901
|
+
function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12017
11902
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12018
11903
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
12019
11904
|
class: vue.normalizeClass(_ctx.wrapperClasses)
|
|
12020
11905
|
}, [vue.createElementVNode("table", vue.mergeProps({
|
|
12021
11906
|
class: ["table", _ctx.tableClasses],
|
|
12022
11907
|
tabindex: _ctx.tabindex
|
|
12023
|
-
}, _ctx.$attrs), [_ctx.hasCaption ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$
|
|
11908
|
+
}, _ctx.$attrs), [_ctx.hasCaption ? (vue.openBlock(), vue.createElementBlock("caption", _hoisted_2$k, [vue.renderSlot(_ctx.$slots, "caption")])) : vue.createCommentVNode("", true), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.createElementVNode("colgroup", null, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.columns, (column) => {
|
|
12024
11909
|
return vue.openBlock(), vue.createElementBlock("col", {
|
|
12025
11910
|
key: column.id,
|
|
12026
11911
|
class: vue.normalizeClass(column.size)
|
|
12027
11912
|
}, null, 2);
|
|
12028
|
-
}), 128))]), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", _hoisted_3$
|
|
11913
|
+
}), 128))]), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", _hoisted_3$g, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.visibleColumns, (column) => {
|
|
12029
11914
|
return vue.openBlock(), vue.createElementBlock("th", vue.mergeProps({
|
|
12030
11915
|
key: column.id,
|
|
12031
11916
|
scope: "col",
|
|
@@ -12041,10 +11926,10 @@ function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12041
11926
|
}, null, 8, ["class", "name"])) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), column.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$a, vue.toDisplayString(column.description), 1)) : vue.createCommentVNode("", true)], 16);
|
|
12042
11927
|
}), 128))])]), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("tbody", null, [_ctx.isEmpty && _ctx.columns.length === 0 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_6$8, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps({
|
|
12043
11928
|
row: {}
|
|
12044
|
-
})))])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.isEmpty ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_7$
|
|
11929
|
+
})))])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.isEmpty ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_7$7, [vue.createElementVNode("td", {
|
|
12045
11930
|
class: "table__column table__column--action",
|
|
12046
11931
|
colspan: _ctx.columns.length
|
|
12047
|
-
}, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.data-table.empty", "Tabellen är tom")), 1)])], 8, _hoisted_8$
|
|
11932
|
+
}, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.data-table.empty", "Tabellen är tom")), 1)])], 8, _hoisted_8$5)])) : vue.createCommentVNode("", true), _cache[3] || (_cache[3] = vue.createTextVNode()), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.rows, (row) => {
|
|
12048
11933
|
return vue.openBlock(), vue.createElementBlock("tr", {
|
|
12049
11934
|
key: _ctx.rowKey(row),
|
|
12050
11935
|
class: "table__row"
|
|
@@ -12053,9 +11938,9 @@ function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12053
11938
|
}, {
|
|
12054
11939
|
row
|
|
12055
11940
|
}))]);
|
|
12056
|
-
}), 128))])], 16, _hoisted_1$
|
|
11941
|
+
}), 128))])], 16, _hoisted_1$o)], 2);
|
|
12057
11942
|
}
|
|
12058
|
-
const FDataTable = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
11943
|
+
const FDataTable = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$m]]);
|
|
12059
11944
|
function isDayEnabled(day, config2) {
|
|
12060
11945
|
return passesMinDate(day, config2.minDate) && passesMaxDate(day, config2.maxDate) && passesInvalidDates(day, config2.invalidDates) && passesInvalidWeekdays(day, config2.invalidWeekdays);
|
|
12061
11946
|
}
|
|
@@ -12131,7 +12016,7 @@ function getDisplayMonth(minDate, maxDate, selectedDate, initialMonth) {
|
|
|
12131
12016
|
}
|
|
12132
12017
|
return month || date.FDate.now().startOfMonth();
|
|
12133
12018
|
}
|
|
12134
|
-
const _sfc_main$
|
|
12019
|
+
const _sfc_main$n = vue.defineComponent({
|
|
12135
12020
|
name: "FDatepickerField",
|
|
12136
12021
|
components: {
|
|
12137
12022
|
FCalendar,
|
|
@@ -12389,24 +12274,24 @@ const _sfc_main$q = vue.defineComponent({
|
|
|
12389
12274
|
}
|
|
12390
12275
|
}
|
|
12391
12276
|
});
|
|
12392
|
-
const _hoisted_1$
|
|
12277
|
+
const _hoisted_1$n = {
|
|
12393
12278
|
ref: "component",
|
|
12394
12279
|
class: "datepicker-field"
|
|
12395
12280
|
};
|
|
12396
|
-
const _hoisted_2$
|
|
12397
|
-
const _hoisted_3$
|
|
12281
|
+
const _hoisted_2$j = ["disabled", "aria-expanded"];
|
|
12282
|
+
const _hoisted_3$f = {
|
|
12398
12283
|
class: "sr-only"
|
|
12399
12284
|
};
|
|
12400
12285
|
const _hoisted_4$c = {
|
|
12401
12286
|
class: "datepicker-field__close"
|
|
12402
12287
|
};
|
|
12403
|
-
function _sfc_render$
|
|
12288
|
+
function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12404
12289
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12405
12290
|
const _component_f_text_field = vue.resolveComponent("f-text-field");
|
|
12406
12291
|
const _component_f_calendar_day = vue.resolveComponent("f-calendar-day");
|
|
12407
12292
|
const _component_f_calendar = vue.resolveComponent("f-calendar");
|
|
12408
12293
|
const _component_i_popup = vue.resolveComponent("i-popup");
|
|
12409
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
12294
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [vue.createElementVNode("div", {
|
|
12410
12295
|
ref: "calendarInputs",
|
|
12411
12296
|
onFocusout: _cache[2] || (_cache[2] = (...args) => _ctx.onFocusoutTextFieldButton && _ctx.onFocusoutTextFieldButton(...args))
|
|
12412
12297
|
}, [vue.createVNode(_component_f_text_field, vue.mergeProps(_ctx.$attrs, {
|
|
@@ -12423,11 +12308,11 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12423
12308
|
}), vue.createSlots({
|
|
12424
12309
|
description: vue.withCtx(({
|
|
12425
12310
|
descriptionClass,
|
|
12426
|
-
|
|
12427
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
12311
|
+
formatDescriptionClass
|
|
12312
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
12428
12313
|
descriptionClass,
|
|
12429
|
-
|
|
12430
|
-
})
|
|
12314
|
+
formatDescriptionClass
|
|
12315
|
+
})]),
|
|
12431
12316
|
"error-message": vue.withCtx(({
|
|
12432
12317
|
hasError,
|
|
12433
12318
|
validationMessage
|
|
@@ -12445,7 +12330,7 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12445
12330
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.onClickCalendarButton())
|
|
12446
12331
|
}, [vue.createVNode(_component_f_icon, {
|
|
12447
12332
|
name: "calendar"
|
|
12448
|
-
}), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$
|
|
12333
|
+
}), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_3$f, vue.toDisplayString(_ctx.calendarButtonText), 1)], 8, _hoisted_2$j)]),
|
|
12449
12334
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.datepicker-field.label", "Datum")), 1)]), _cache[7] || (_cache[7] = vue.createTextVNode()), _cache[8] || (_cache[8] = vue.createTextVNode()), _cache[9] || (_cache[9] = vue.createTextVNode()), _cache[10] || (_cache[10] = vue.createTextVNode())]),
|
|
12450
12335
|
_: 2
|
|
12451
12336
|
}, [_ctx.$slots.tooltip ? {
|
|
@@ -12496,11 +12381,11 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12496
12381
|
_: 1
|
|
12497
12382
|
}, 8, ["is-open", "anchor", "inline", "onOpen", "onClose"])], 512);
|
|
12498
12383
|
}
|
|
12499
|
-
const FDatepickerField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
12384
|
+
const FDatepickerField = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$l]]);
|
|
12500
12385
|
function isDialogueTreeEndQuestion(value) {
|
|
12501
12386
|
return Boolean(value.userData);
|
|
12502
12387
|
}
|
|
12503
|
-
const _sfc_main$
|
|
12388
|
+
const _sfc_main$m = vue.defineComponent({
|
|
12504
12389
|
name: "FDialogueTree",
|
|
12505
12390
|
components: {
|
|
12506
12391
|
FIcon
|
|
@@ -12522,7 +12407,7 @@ const _sfc_main$p = vue.defineComponent({
|
|
|
12522
12407
|
required: true
|
|
12523
12408
|
}
|
|
12524
12409
|
},
|
|
12525
|
-
emits: ["
|
|
12410
|
+
emits: ["update:modelValue"],
|
|
12526
12411
|
data() {
|
|
12527
12412
|
return {
|
|
12528
12413
|
currentStep: this.dialogueTree,
|
|
@@ -12575,21 +12460,20 @@ const _sfc_main$p = vue.defineComponent({
|
|
|
12575
12460
|
steps: this.steps
|
|
12576
12461
|
};
|
|
12577
12462
|
this.$emit("update:modelValue", emit);
|
|
12578
|
-
this.$emit("change", emit);
|
|
12579
12463
|
}
|
|
12580
12464
|
}
|
|
12581
12465
|
});
|
|
12582
|
-
const _hoisted_1$
|
|
12466
|
+
const _hoisted_1$m = {
|
|
12583
12467
|
class: "dialogue-tree"
|
|
12584
12468
|
};
|
|
12585
|
-
const _hoisted_2$
|
|
12469
|
+
const _hoisted_2$i = {
|
|
12586
12470
|
key: 0,
|
|
12587
12471
|
class: "dialogue-tree__list"
|
|
12588
12472
|
};
|
|
12589
|
-
const _hoisted_3$
|
|
12590
|
-
function _sfc_render$
|
|
12473
|
+
const _hoisted_3$e = ["onClick"];
|
|
12474
|
+
function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12591
12475
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12592
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
12476
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [_ctx.options.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_2$i, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.options, (option, index) => {
|
|
12593
12477
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
12594
12478
|
key: option.label,
|
|
12595
12479
|
class: "dialogue-tree__list-item"
|
|
@@ -12600,15 +12484,15 @@ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12600
12484
|
onClick: ($event) => _ctx.onClickedOption(option, index)
|
|
12601
12485
|
}, [vue.createElementVNode("span", null, vue.toDisplayString(option.label), 1), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
12602
12486
|
name: "arrow-right"
|
|
12603
|
-
})], 8, _hoisted_3$
|
|
12487
|
+
})], 8, _hoisted_3$e)]);
|
|
12604
12488
|
}), 128))])) : vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.mergeProps({
|
|
12605
12489
|
key: 1
|
|
12606
12490
|
}, {
|
|
12607
12491
|
userData: _ctx.userData
|
|
12608
12492
|
})))]);
|
|
12609
12493
|
}
|
|
12610
|
-
const FDialogueTree = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
12611
|
-
const _sfc_main$
|
|
12494
|
+
const FDialogueTree = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$k]]);
|
|
12495
|
+
const _sfc_main$l = vue.defineComponent({
|
|
12612
12496
|
name: "FExpandablePanel",
|
|
12613
12497
|
components: {
|
|
12614
12498
|
FIcon,
|
|
@@ -12682,11 +12566,11 @@ const _sfc_main$o = vue.defineComponent({
|
|
|
12682
12566
|
}
|
|
12683
12567
|
}
|
|
12684
12568
|
});
|
|
12685
|
-
const _hoisted_1$
|
|
12686
|
-
const _hoisted_2$
|
|
12569
|
+
const _hoisted_1$l = ["aria-expanded", "aria-controls"];
|
|
12570
|
+
const _hoisted_2$h = {
|
|
12687
12571
|
class: "expandable-panel__icon"
|
|
12688
12572
|
};
|
|
12689
|
-
const _hoisted_3$
|
|
12573
|
+
const _hoisted_3$d = {
|
|
12690
12574
|
class: "icon-stack"
|
|
12691
12575
|
};
|
|
12692
12576
|
const _hoisted_4$b = ["title"];
|
|
@@ -12694,14 +12578,14 @@ const _hoisted_5$9 = {
|
|
|
12694
12578
|
class: "sr-only"
|
|
12695
12579
|
};
|
|
12696
12580
|
const _hoisted_6$7 = ["id"];
|
|
12697
|
-
const _hoisted_7$
|
|
12581
|
+
const _hoisted_7$6 = {
|
|
12698
12582
|
class: "expandable-panel__body"
|
|
12699
12583
|
};
|
|
12700
|
-
const _hoisted_8$
|
|
12584
|
+
const _hoisted_8$4 = {
|
|
12701
12585
|
key: 0,
|
|
12702
12586
|
class: "expandable-panel__outside"
|
|
12703
12587
|
};
|
|
12704
|
-
function _sfc_render$
|
|
12588
|
+
function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12705
12589
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12706
12590
|
const _component_f_expand = vue.resolveComponent("f-expand");
|
|
12707
12591
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -12715,7 +12599,7 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12715
12599
|
"aria-controls": _ctx.id
|
|
12716
12600
|
}, _ctx.$attrs, {
|
|
12717
12601
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickHeadingButton && _ctx.onClickHeadingButton(...args))
|
|
12718
|
-
}), [vue.createElementVNode("span", _hoisted_2$
|
|
12602
|
+
}), [vue.createElementVNode("span", _hoisted_2$h, [vue.createElementVNode("span", _hoisted_3$d, [vue.createVNode(_component_f_icon, {
|
|
12719
12603
|
name: "dash"
|
|
12720
12604
|
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
12721
12605
|
name: "dash"
|
|
@@ -12728,18 +12612,18 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12728
12612
|
})
|
|
12729
12613
|
}, [vue.createElementVNode("span", _hoisted_5$9, vue.toDisplayString(_ctx.screenReaderNotificationText), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
12730
12614
|
name: "bell"
|
|
12731
|
-
})], 8, _hoisted_4$b)) : vue.createCommentVNode("", true)], 16, _hoisted_1$
|
|
12615
|
+
})], 8, _hoisted_4$b)) : vue.createCommentVNode("", true)], 16, _hoisted_1$l)]),
|
|
12732
12616
|
_: 3
|
|
12733
12617
|
})), _cache[6] || (_cache[6] = vue.createTextVNode()), vue.createVNode(_component_f_expand, null, {
|
|
12734
12618
|
default: vue.withCtx(() => [vue.withDirectives(vue.createElementVNode("div", {
|
|
12735
12619
|
id: _ctx.id,
|
|
12736
12620
|
class: "expandable-panel__content"
|
|
12737
|
-
}, [vue.createElementVNode("div", _hoisted_7$
|
|
12621
|
+
}, [vue.createElementVNode("div", _hoisted_7$6, [vue.renderSlot(_ctx.$slots, "default")]), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.hasOutsideSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$4, [vue.renderSlot(_ctx.$slots, "outside")])) : vue.createCommentVNode("", true)], 8, _hoisted_6$7), [[vue.vShow, _ctx.expanded]])]),
|
|
12738
12622
|
_: 3
|
|
12739
12623
|
})], 2);
|
|
12740
12624
|
}
|
|
12741
|
-
const FExpandablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
12742
|
-
const _sfc_main$
|
|
12625
|
+
const FExpandablePanel = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$j]]);
|
|
12626
|
+
const _sfc_main$k = vue.defineComponent({
|
|
12743
12627
|
name: "FExpandableParagraph",
|
|
12744
12628
|
components: {
|
|
12745
12629
|
FIcon,
|
|
@@ -12821,11 +12705,11 @@ const _sfc_main$n = vue.defineComponent({
|
|
|
12821
12705
|
}
|
|
12822
12706
|
}
|
|
12823
12707
|
});
|
|
12824
|
-
const _hoisted_1$
|
|
12825
|
-
const _hoisted_2$
|
|
12708
|
+
const _hoisted_1$k = ["aria-expanded", "aria-controls"];
|
|
12709
|
+
const _hoisted_2$g = {
|
|
12826
12710
|
class: "expandable-paragraph__icon"
|
|
12827
12711
|
};
|
|
12828
|
-
const _hoisted_3$
|
|
12712
|
+
const _hoisted_3$c = {
|
|
12829
12713
|
class: "icon-stack"
|
|
12830
12714
|
};
|
|
12831
12715
|
const _hoisted_4$a = {
|
|
@@ -12836,11 +12720,11 @@ const _hoisted_5$8 = ["id"];
|
|
|
12836
12720
|
const _hoisted_6$6 = {
|
|
12837
12721
|
class: "expandable-paragraph__content"
|
|
12838
12722
|
};
|
|
12839
|
-
const _hoisted_7$
|
|
12723
|
+
const _hoisted_7$5 = {
|
|
12840
12724
|
key: 0,
|
|
12841
12725
|
class: "expandable-paragraph__separator"
|
|
12842
12726
|
};
|
|
12843
|
-
function _sfc_render$
|
|
12727
|
+
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12844
12728
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12845
12729
|
const _component_f_expand = vue.resolveComponent("f-expand");
|
|
12846
12730
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -12857,21 +12741,21 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
12857
12741
|
"aria-controls": _ctx.id
|
|
12858
12742
|
}, _ctx.$attrs, {
|
|
12859
12743
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClickMinimize && _ctx.onClickMinimize(...args))
|
|
12860
|
-
}), [vue.createElementVNode("span", _hoisted_2$
|
|
12744
|
+
}), [vue.createElementVNode("span", _hoisted_2$g, [vue.createElementVNode("span", _hoisted_3$c, [vue.createVNode(_component_f_icon, {
|
|
12861
12745
|
name: "dash"
|
|
12862
12746
|
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
12863
12747
|
name: "dash"
|
|
12864
|
-
})])]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "title")], 16, _hoisted_1$
|
|
12748
|
+
})])]), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "title")], 16, _hoisted_1$k)]),
|
|
12865
12749
|
_: 3
|
|
12866
12750
|
}, 8, ["class"])), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.hasRelatedSlot ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [vue.renderSlot(_ctx.$slots, "related")])) : vue.createCommentVNode("", true)], 2), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createVNode(_component_f_expand, null, {
|
|
12867
12751
|
default: vue.withCtx(() => [vue.withDirectives(vue.createElementVNode("div", {
|
|
12868
12752
|
id: _ctx.id,
|
|
12869
12753
|
class: "expandable-paragraph__container"
|
|
12870
|
-
}, [vue.createElementVNode("div", _hoisted_6$6, [vue.renderSlot(_ctx.$slots, "default")]), _cache[4] || (_cache[4] = vue.createTextVNode()), !_ctx.list ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$
|
|
12754
|
+
}, [vue.createElementVNode("div", _hoisted_6$6, [vue.renderSlot(_ctx.$slots, "default")]), _cache[4] || (_cache[4] = vue.createTextVNode()), !_ctx.list ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$5)) : vue.createCommentVNode("", true)], 8, _hoisted_5$8), [[vue.vShow, _ctx.expanded]])]),
|
|
12871
12755
|
_: 3
|
|
12872
12756
|
})], 2);
|
|
12873
12757
|
}
|
|
12874
|
-
const FExpandableParagraph = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
12758
|
+
const FExpandableParagraph = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$i]]);
|
|
12875
12759
|
const DEFAULT_ICON = "file";
|
|
12876
12760
|
const iconMap = {
|
|
12877
12761
|
"image/*": "pic",
|
|
@@ -12880,7 +12764,7 @@ const iconMap = {
|
|
|
12880
12764
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "doc",
|
|
12881
12765
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": "doc"
|
|
12882
12766
|
};
|
|
12883
|
-
const _sfc_main$
|
|
12767
|
+
const _sfc_main$j = vue.defineComponent({
|
|
12884
12768
|
name: "FFileItem",
|
|
12885
12769
|
components: {
|
|
12886
12770
|
FIcon
|
|
@@ -12959,13 +12843,13 @@ const _sfc_main$m = vue.defineComponent({
|
|
|
12959
12843
|
}
|
|
12960
12844
|
}
|
|
12961
12845
|
});
|
|
12962
|
-
const _hoisted_1$
|
|
12846
|
+
const _hoisted_1$j = {
|
|
12963
12847
|
class: "file-item"
|
|
12964
12848
|
};
|
|
12965
|
-
const _hoisted_2$
|
|
12849
|
+
const _hoisted_2$f = {
|
|
12966
12850
|
class: "file-item__row"
|
|
12967
12851
|
};
|
|
12968
|
-
const _hoisted_3$
|
|
12852
|
+
const _hoisted_3$b = ["id"];
|
|
12969
12853
|
const _hoisted_4$9 = {
|
|
12970
12854
|
class: "icon-stack button__icon icon-stack--new-window"
|
|
12971
12855
|
};
|
|
@@ -12975,25 +12859,25 @@ const _hoisted_5$7 = {
|
|
|
12975
12859
|
const _hoisted_6$5 = {
|
|
12976
12860
|
class: "sr-only"
|
|
12977
12861
|
};
|
|
12978
|
-
const _hoisted_7$
|
|
12862
|
+
const _hoisted_7$4 = {
|
|
12979
12863
|
key: 0,
|
|
12980
12864
|
class: "file-item__change-info"
|
|
12981
12865
|
};
|
|
12982
|
-
function _sfc_render$
|
|
12866
|
+
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
|
|
12983
12867
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
12984
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
12868
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [vue.createElementVNode("div", _hoisted_2$f, [vue.createElementVNode("a", vue.mergeProps({
|
|
12985
12869
|
id: _ctx.id,
|
|
12986
12870
|
class: "file-item__file-open"
|
|
12987
12871
|
}, _ctx.$attrs), [vue.createElementVNode("div", _hoisted_4$9, [vue.createVNode(_component_f_icon, {
|
|
12988
12872
|
name: "new-window"
|
|
12989
12873
|
}), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
12990
12874
|
name: _ctx.iconName
|
|
12991
|
-
}, null, 8, ["name"])]), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_5$7, vue.toDisplayString(_ctx.fileName), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_6$5, " " + vue.toDisplayString(_ctx.$t("fkui.file-item.file-open", "öppnas i nytt fönster")), 1)], 16, _hoisted_3$
|
|
12875
|
+
}, null, 8, ["name"])]), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_5$7, vue.toDisplayString(_ctx.fileName), 1), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_6$5, " " + vue.toDisplayString(_ctx.$t("fkui.file-item.file-open", "öppnas i nytt fönster")), 1)], 16, _hoisted_3$b), _cache[3] || (_cache[3] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "row")]), _cache[4] || (_cache[4] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default"), _cache[5] || (_cache[5] = vue.createTextVNode()), _ctx.isMimeTypeChanged ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$4, vue.toDisplayString(_ctx.mimeTypeChangedText), 1)) : vue.createCommentVNode("", true), _cache[6] || (_cache[6] = vue.createTextVNode()), _cache[7] || (_cache[7] = vue.createElementVNode("hr", {
|
|
12992
12876
|
class: "file-item__separator"
|
|
12993
12877
|
}, null, -1))]);
|
|
12994
12878
|
}
|
|
12995
|
-
const FFileItem = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
12996
|
-
const _sfc_main$
|
|
12879
|
+
const FFileItem = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$h]]);
|
|
12880
|
+
const _sfc_main$i = vue.defineComponent({
|
|
12997
12881
|
name: "FFileSelector",
|
|
12998
12882
|
components: {
|
|
12999
12883
|
FIcon
|
|
@@ -13054,14 +12938,14 @@ const _sfc_main$l = vue.defineComponent({
|
|
|
13054
12938
|
}
|
|
13055
12939
|
}
|
|
13056
12940
|
});
|
|
13057
|
-
const _hoisted_1$
|
|
12941
|
+
const _hoisted_1$i = {
|
|
13058
12942
|
class: "file-selector"
|
|
13059
12943
|
};
|
|
13060
|
-
const _hoisted_2$
|
|
13061
|
-
const _hoisted_3$
|
|
13062
|
-
function _sfc_render$
|
|
12944
|
+
const _hoisted_2$e = ["id", "aria-labelledby", "aria-disabled"];
|
|
12945
|
+
const _hoisted_3$a = ["id", "for"];
|
|
12946
|
+
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13063
12947
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
13064
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
12948
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [vue.createElementVNode("input", vue.mergeProps({
|
|
13065
12949
|
id: _ctx.id,
|
|
13066
12950
|
ref: "file-selector",
|
|
13067
12951
|
type: "file",
|
|
@@ -13069,7 +12953,7 @@ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
13069
12953
|
"aria-disabled": _ctx.ariaDisabled ? "true" : void 0
|
|
13070
12954
|
}, _ctx.attrs, {
|
|
13071
12955
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))
|
|
13072
|
-
}), null, 16, _hoisted_2$
|
|
12956
|
+
}), null, 16, _hoisted_2$e), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("label", {
|
|
13073
12957
|
id: _ctx.labelId,
|
|
13074
12958
|
role: "button",
|
|
13075
12959
|
class: vue.normalizeClass([_ctx.labelClass, "button button--tertiary button--medium"]),
|
|
@@ -13078,673 +12962,15 @@ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
13078
12962
|
}, [vue.createVNode(_component_f_icon, {
|
|
13079
12963
|
class: "button__icon",
|
|
13080
12964
|
name: "paper-clip"
|
|
13081
|
-
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 10, _hoisted_3$
|
|
12965
|
+
}), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 10, _hoisted_3$a)]);
|
|
13082
12966
|
}
|
|
13083
|
-
const FFileSelector = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
13084
|
-
const
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
},
|
|
13091
|
-
warning: {
|
|
13092
|
-
symbol: "circle",
|
|
13093
|
-
sign: "alert",
|
|
13094
|
-
screenReaderContextKey: "fkui.message-box.sr-context.warning",
|
|
13095
|
-
screenReaderContextDefault: "Varningsmeddelande"
|
|
13096
|
-
},
|
|
13097
|
-
error: {
|
|
13098
|
-
symbol: "triangle",
|
|
13099
|
-
sign: "alert",
|
|
13100
|
-
screenReaderContextKey: "fkui.message-box.sr-context.error",
|
|
13101
|
-
screenReaderContextDefault: "Felmeddelande"
|
|
13102
|
-
},
|
|
13103
|
-
info: {
|
|
13104
|
-
symbol: "circle",
|
|
13105
|
-
sign: "i",
|
|
13106
|
-
screenReaderContextKey: "fkui.message-box.sr-context.info",
|
|
13107
|
-
screenReaderContextDefault: "Informationsmeddelande"
|
|
13108
|
-
}
|
|
13109
|
-
};
|
|
13110
|
-
const _sfc_main$k = vue.defineComponent({
|
|
13111
|
-
name: "FMessageBox",
|
|
13112
|
-
components: {
|
|
13113
|
-
FIcon,
|
|
13114
|
-
IFlex,
|
|
13115
|
-
IFlexItem
|
|
13116
|
-
},
|
|
13117
|
-
props: {
|
|
13118
|
-
/**
|
|
13119
|
-
* Type of message-box. 'success', 'error', 'warning' and 'info' is valid.
|
|
13120
|
-
* */
|
|
13121
|
-
type: {
|
|
13122
|
-
type: String,
|
|
13123
|
-
required: true,
|
|
13124
|
-
validator(value) {
|
|
13125
|
-
return ["success", "warning", "error", "info"].includes(value);
|
|
13126
|
-
}
|
|
13127
|
-
},
|
|
13128
|
-
/**
|
|
13129
|
-
* If message-box should be a banner.
|
|
13130
|
-
* If prop is not used message-box will have default styling.
|
|
13131
|
-
*/
|
|
13132
|
-
banner: {
|
|
13133
|
-
type: Boolean,
|
|
13134
|
-
required: false
|
|
13135
|
-
},
|
|
13136
|
-
/**
|
|
13137
|
-
* It is important to provide a context for a screenreader, similar to a modal that initially outputs it is a dialog.
|
|
13138
|
-
* Type-specific screenreader context is output by default in this component.
|
|
13139
|
-
* By setting this property to false no context will be output.
|
|
13140
|
-
* Note that by doing this, it is the applications responsiblity to provide a clear context.
|
|
13141
|
-
*/
|
|
13142
|
-
provideScreenReaderContext: {
|
|
13143
|
-
type: Boolean,
|
|
13144
|
-
required: false,
|
|
13145
|
-
default: true
|
|
13146
|
-
},
|
|
13147
|
-
/**
|
|
13148
|
-
* Select standard or short layout.
|
|
13149
|
-
*
|
|
13150
|
-
* - 'normal' - Use normal layout when need for heading and/or longer text/multiple sentences
|
|
13151
|
-
* - 'short' - Use short layout when only need for shorter text
|
|
13152
|
-
*/
|
|
13153
|
-
layout: {
|
|
13154
|
-
type: String,
|
|
13155
|
-
required: false,
|
|
13156
|
-
default: "standard",
|
|
13157
|
-
validator(value) {
|
|
13158
|
-
return ["standard", "short"].includes(value);
|
|
13159
|
-
}
|
|
13160
|
-
}
|
|
13161
|
-
},
|
|
13162
|
-
data() {
|
|
13163
|
-
return {
|
|
13164
|
-
headingClass: ["message-box__heading"]
|
|
13165
|
-
};
|
|
13166
|
-
},
|
|
13167
|
-
computed: {
|
|
13168
|
-
messageBoxType() {
|
|
13169
|
-
if (this.layout === "short") {
|
|
13170
|
-
return `message-box--${this.type}-short`;
|
|
13171
|
-
} else {
|
|
13172
|
-
return `message-box--${this.type}`;
|
|
13173
|
-
}
|
|
13174
|
-
},
|
|
13175
|
-
bannerType() {
|
|
13176
|
-
return this.banner ? `message-box--banner` : "";
|
|
13177
|
-
},
|
|
13178
|
-
classType() {
|
|
13179
|
-
return `icon__${this.type}`;
|
|
13180
|
-
},
|
|
13181
|
-
classIcon() {
|
|
13182
|
-
return iconClasses[this.type].symbol === "circle" && iconClasses[this.type].sign === "alert" ? `icon__exclamation` : "";
|
|
13183
|
-
},
|
|
13184
|
-
stackTypeClass() {
|
|
13185
|
-
return `icon-stack--${this.type}`;
|
|
13186
|
-
},
|
|
13187
|
-
symbol() {
|
|
13188
|
-
return iconClasses[this.type].symbol;
|
|
13189
|
-
},
|
|
13190
|
-
sign() {
|
|
13191
|
-
return iconClasses[this.type].sign;
|
|
13192
|
-
}
|
|
13193
|
-
},
|
|
13194
|
-
methods: {
|
|
13195
|
-
screenReaderContext() {
|
|
13196
|
-
return logic.TranslationService.provider.translate(iconClasses[this.type].screenReaderContextKey, iconClasses[this.type].screenReaderContextDefault);
|
|
13197
|
-
}
|
|
13198
|
-
}
|
|
13199
|
-
});
|
|
13200
|
-
const _hoisted_1$j = {
|
|
13201
|
-
key: 0,
|
|
13202
|
-
class: "sr-only"
|
|
13203
|
-
};
|
|
13204
|
-
function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13205
|
-
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
13206
|
-
const _component_i_flex_item = vue.resolveComponent("i-flex-item");
|
|
13207
|
-
const _component_i_flex = vue.resolveComponent("i-flex");
|
|
13208
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
|
13209
|
-
class: vue.normalizeClass(["message-box", [_ctx.messageBoxType, _ctx.bannerType]])
|
|
13210
|
-
}, [_ctx.provideScreenReaderContext ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$j, vue.toDisplayString(_ctx.screenReaderContext()), 1)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_i_flex, {
|
|
13211
|
-
gap: "2x"
|
|
13212
|
-
}, {
|
|
13213
|
-
default: vue.withCtx(() => [_ctx.layout === "short" ? (vue.openBlock(), vue.createBlock(_component_i_flex_item, {
|
|
13214
|
-
key: 0,
|
|
13215
|
-
class: "message-box__icon",
|
|
13216
|
-
shrink: "",
|
|
13217
|
-
align: "center"
|
|
13218
|
-
}, {
|
|
13219
|
-
default: vue.withCtx(() => [vue.createElementVNode("span", {
|
|
13220
|
-
class: vue.normalizeClass(["icon-stack", _ctx.stackTypeClass])
|
|
13221
|
-
}, [vue.createVNode(_component_f_icon, {
|
|
13222
|
-
class: vue.normalizeClass(_ctx.classType),
|
|
13223
|
-
name: _ctx.symbol
|
|
13224
|
-
}, null, 8, ["class", "name"]), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
13225
|
-
class: vue.normalizeClass(_ctx.classIcon),
|
|
13226
|
-
name: _ctx.sign
|
|
13227
|
-
}, null, 8, ["class", "name"])], 2)]),
|
|
13228
|
-
_: 1
|
|
13229
|
-
})) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_i_flex_item, {
|
|
13230
|
-
class: "message-box__content",
|
|
13231
|
-
grow: "",
|
|
13232
|
-
align: "center"
|
|
13233
|
-
}, {
|
|
13234
|
-
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(_ctx.layout === "short" ? {} : {
|
|
13235
|
-
headingSlotClass: _ctx.headingClass
|
|
13236
|
-
})))]),
|
|
13237
|
-
_: 3
|
|
13238
|
-
})]),
|
|
13239
|
-
_: 3
|
|
13240
|
-
})], 2);
|
|
13241
|
-
}
|
|
13242
|
-
const FMessageBox = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$k]]);
|
|
13243
|
-
const setRef = Symbol("setRef");
|
|
13244
|
-
const getRef = Symbol("getRef");
|
|
13245
|
-
const setIsOpen = Symbol("setIsOpen");
|
|
13246
|
-
function createFFormProvideOptions(vm) {
|
|
13247
|
-
const {
|
|
13248
|
-
components
|
|
13249
|
-
} = vm;
|
|
13250
|
-
return {
|
|
13251
|
-
[setRef](id, data) {
|
|
13252
|
-
components[id] = new logic.Reference(data);
|
|
13253
|
-
},
|
|
13254
|
-
[getRef](id) {
|
|
13255
|
-
return components[id];
|
|
13256
|
-
},
|
|
13257
|
-
[setIsOpen](id, isOpen) {
|
|
13258
|
-
const steps = Object.values(components).filter(isFormStepReference);
|
|
13259
|
-
for (const step2 of steps) {
|
|
13260
|
-
step2.ref.isOpen = false;
|
|
13261
|
-
}
|
|
13262
|
-
const step = components[id];
|
|
13263
|
-
if (isFormStepReference(step)) {
|
|
13264
|
-
step.ref.isOpen = isOpen;
|
|
13265
|
-
}
|
|
13266
|
-
}
|
|
13267
|
-
};
|
|
13268
|
-
}
|
|
13269
|
-
const _sfc_main$j = vue.defineComponent({
|
|
13270
|
-
name: "FForm",
|
|
13271
|
-
components: {
|
|
13272
|
-
FMessageBox,
|
|
13273
|
-
FErrorList
|
|
13274
|
-
},
|
|
13275
|
-
provide() {
|
|
13276
|
-
return createFFormProvideOptions(this);
|
|
13277
|
-
},
|
|
13278
|
-
inheritAttrs: false,
|
|
13279
|
-
props: {
|
|
13280
|
-
/**
|
|
13281
|
-
* The id for the form id attribute.
|
|
13282
|
-
* If the prop is not set a random value will be generated.
|
|
13283
|
-
*/
|
|
13284
|
-
id: {
|
|
13285
|
-
type: String,
|
|
13286
|
-
required: false,
|
|
13287
|
-
default: () => logic.ElementIdService.generateElementId()
|
|
13288
|
-
},
|
|
13289
|
-
/**
|
|
13290
|
-
* If the error-message slot and the invalid elements list
|
|
13291
|
-
* should be displayed.
|
|
13292
|
-
*/
|
|
13293
|
-
displayError: {
|
|
13294
|
-
type: Boolean,
|
|
13295
|
-
default: true
|
|
13296
|
-
},
|
|
13297
|
-
/**
|
|
13298
|
-
* If invalid fields at submit this tells how the scroll to the error
|
|
13299
|
-
* field should occur. The default, "center", centres the error information
|
|
13300
|
-
* vertically. Allowed value is also "top" which scrolls such that the error
|
|
13301
|
-
* informations top is at the top of the viewport.
|
|
13302
|
-
*/
|
|
13303
|
-
errorScroll: {
|
|
13304
|
-
type: String,
|
|
13305
|
-
default: "center",
|
|
13306
|
-
validator(value) {
|
|
13307
|
-
return ["center", "top"].includes(value);
|
|
13308
|
-
}
|
|
13309
|
-
}
|
|
13310
|
-
},
|
|
13311
|
-
data() {
|
|
13312
|
-
return {
|
|
13313
|
-
errorMessageSlotClass: ["message-box__heading"],
|
|
13314
|
-
components: {}
|
|
13315
|
-
};
|
|
13316
|
-
},
|
|
13317
|
-
computed: {
|
|
13318
|
-
attrs() {
|
|
13319
|
-
let onSubmit;
|
|
13320
|
-
if (this.$attrs.onSubmit) {
|
|
13321
|
-
const originalSubmit = this.$attrs.onSubmit;
|
|
13322
|
-
onSubmit = async (event) => {
|
|
13323
|
-
const isValid = await this.onSubmit(event);
|
|
13324
|
-
if (isValid) {
|
|
13325
|
-
if (Array.isArray(originalSubmit)) {
|
|
13326
|
-
originalSubmit.forEach((submitFunction) => submitFunction(event));
|
|
13327
|
-
} else {
|
|
13328
|
-
originalSubmit(event);
|
|
13329
|
-
}
|
|
13330
|
-
}
|
|
13331
|
-
};
|
|
13332
|
-
} else {
|
|
13333
|
-
onSubmit = this.onSubmit;
|
|
13334
|
-
}
|
|
13335
|
-
const attrs = {
|
|
13336
|
-
...this.$attrs,
|
|
13337
|
-
id: this.id,
|
|
13338
|
-
onSubmit
|
|
13339
|
-
};
|
|
13340
|
-
return attrs;
|
|
13341
|
-
},
|
|
13342
|
-
numberOfTimesSubmitted() {
|
|
13343
|
-
const components = Object.values(this.components);
|
|
13344
|
-
return Math.max(0, ...components.map((it) => it.ref.numberOfTimesSubmitted));
|
|
13345
|
-
},
|
|
13346
|
-
isSubmitted() {
|
|
13347
|
-
return this.numberOfTimesSubmitted > 0;
|
|
13348
|
-
},
|
|
13349
|
-
hasError() {
|
|
13350
|
-
if (Object.values(this.components).length === 0) {
|
|
13351
|
-
return false;
|
|
13352
|
-
} else {
|
|
13353
|
-
const components = Object.values(this.components);
|
|
13354
|
-
return components.some((component) => component.ref.isValid === false);
|
|
13355
|
-
}
|
|
13356
|
-
},
|
|
13357
|
-
componentsWithErrors() {
|
|
13358
|
-
const sortedComponents = sortComponentsWithErrorsOnDOMOrder(this.components);
|
|
13359
|
-
return sortedComponents.map((c) => c.ref);
|
|
13360
|
-
},
|
|
13361
|
-
needsErrorScroll() {
|
|
13362
|
-
return this.errorScroll !== "center";
|
|
13363
|
-
}
|
|
13364
|
-
},
|
|
13365
|
-
methods: {
|
|
13366
|
-
async focusDomElement() {
|
|
13367
|
-
await this.$nextTick();
|
|
13368
|
-
const messageBoxError = this.$el.querySelector(".message-box--error");
|
|
13369
|
-
if (messageBoxError) {
|
|
13370
|
-
logic.focus(messageBoxError, {
|
|
13371
|
-
scrollToTop: this.needsErrorScroll
|
|
13372
|
-
});
|
|
13373
|
-
}
|
|
13374
|
-
},
|
|
13375
|
-
async focusFallbackElement() {
|
|
13376
|
-
await this.$nextTick();
|
|
13377
|
-
const element = this.$el.querySelector(".form-step__header");
|
|
13378
|
-
const invalidElement = this.$el.querySelector(":invalid");
|
|
13379
|
-
if (element) {
|
|
13380
|
-
logic.focus(element, {
|
|
13381
|
-
scrollToTop: this.needsErrorScroll
|
|
13382
|
-
});
|
|
13383
|
-
} else if (invalidElement) {
|
|
13384
|
-
logic.focus(invalidElement, {
|
|
13385
|
-
force: true,
|
|
13386
|
-
scrollToTop: this.needsErrorScroll
|
|
13387
|
-
});
|
|
13388
|
-
}
|
|
13389
|
-
},
|
|
13390
|
-
async onSubmit(event) {
|
|
13391
|
-
event.preventDefault();
|
|
13392
|
-
const components = Object.values(this.components);
|
|
13393
|
-
components.forEach((component) => {
|
|
13394
|
-
component.ref.numberOfTimesSubmitted++;
|
|
13395
|
-
if (!isFormStepReference(component)) {
|
|
13396
|
-
logic.ValidationService.setTouched(component.ref.id);
|
|
13397
|
-
logic.ValidationService.setSubmitted(component.ref.id);
|
|
13398
|
-
}
|
|
13399
|
-
});
|
|
13400
|
-
await cleanUpElements(this);
|
|
13401
|
-
await logic.ValidationService.validateAllElements(this.id);
|
|
13402
|
-
if (this.displayError) {
|
|
13403
|
-
this.focusDomElement();
|
|
13404
|
-
} else {
|
|
13405
|
-
this.focusFallbackElement();
|
|
13406
|
-
}
|
|
13407
|
-
return this.hasError === false;
|
|
13408
|
-
},
|
|
13409
|
-
async onComponentValidity(event) {
|
|
13410
|
-
const reference = new logic.Reference({
|
|
13411
|
-
id: event.detail.elementId,
|
|
13412
|
-
focusElementId: event.detail.focusElementId,
|
|
13413
|
-
title: event.detail.errorMessage,
|
|
13414
|
-
isValid: event.detail.isValid,
|
|
13415
|
-
numberOfTimesSubmitted: this.numberOfTimesSubmitted
|
|
13416
|
-
});
|
|
13417
|
-
this.components[event.detail.elementId] = reference;
|
|
13418
|
-
await cleanUpElements(this);
|
|
13419
|
-
}
|
|
13420
|
-
}
|
|
13421
|
-
});
|
|
13422
|
-
const _hoisted_1$i = ["id"];
|
|
13423
|
-
function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13424
|
-
const _component_f_error_list = vue.resolveComponent("f-error-list");
|
|
13425
|
-
const _component_f_message_box = vue.resolveComponent("f-message-box");
|
|
13426
|
-
return vue.openBlock(), vue.createElementBlock("form", vue.mergeProps({
|
|
13427
|
-
id: _ctx.id,
|
|
13428
|
-
class: "form",
|
|
13429
|
-
novalidate: ""
|
|
13430
|
-
}, _ctx.attrs, {
|
|
13431
|
-
onComponentValidity: _cache[0] || (_cache[0] = (...args) => _ctx.onComponentValidity && _ctx.onComponentValidity(...args))
|
|
13432
|
-
}), [_ctx.displayError && _ctx.isSubmitted && _ctx.hasError ? (vue.openBlock(), vue.createBlock(_component_f_message_box, {
|
|
13433
|
-
key: 0,
|
|
13434
|
-
tabindex: "-1",
|
|
13435
|
-
type: "error"
|
|
13436
|
-
}, {
|
|
13437
|
-
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
13438
|
-
slotClass: _ctx.errorMessageSlotClass
|
|
13439
|
-
}))), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("nav", null, [vue.createVNode(_component_f_error_list, {
|
|
13440
|
-
items: _ctx.componentsWithErrors
|
|
13441
|
-
}, null, 8, ["items"])])]),
|
|
13442
|
-
_: 3
|
|
13443
|
-
})) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$i);
|
|
13444
|
-
}
|
|
13445
|
-
const FForm = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$j]]);
|
|
13446
|
-
const _sfc_main$i = vue.defineComponent({
|
|
13447
|
-
name: "FFormStep",
|
|
13448
|
-
components: {
|
|
13449
|
-
FIcon,
|
|
13450
|
-
FValidationGroup,
|
|
13451
|
-
FErrorList
|
|
13452
|
-
},
|
|
13453
|
-
mixins: [TranslationMixin],
|
|
13454
|
-
inheritAttrs: false,
|
|
13455
|
-
props: {
|
|
13456
|
-
/**
|
|
13457
|
-
* The id for the root div id attribute.
|
|
13458
|
-
* If the prop is not set a random value will be generated.
|
|
13459
|
-
*/
|
|
13460
|
-
id: {
|
|
13461
|
-
type: String,
|
|
13462
|
-
required: true,
|
|
13463
|
-
default: () => logic.ElementIdService.generateElementId()
|
|
13464
|
-
},
|
|
13465
|
-
/**
|
|
13466
|
-
* If the form step should have a bottom arrow.
|
|
13467
|
-
* It is recommended to remove the arrow for the last step with `:has-arrow="false"`.
|
|
13468
|
-
*/
|
|
13469
|
-
hasArrow: {
|
|
13470
|
-
type: Boolean,
|
|
13471
|
-
default: true
|
|
13472
|
-
},
|
|
13473
|
-
/**
|
|
13474
|
-
* If the form step is the last step.
|
|
13475
|
-
* If set to true the form step will have a bigger bottom margin.
|
|
13476
|
-
*/
|
|
13477
|
-
isLastStep: {
|
|
13478
|
-
type: Boolean,
|
|
13479
|
-
default: false
|
|
13480
|
-
},
|
|
13481
|
-
/**
|
|
13482
|
-
* If error links should be disabled, `:disable-error-links="true"`..
|
|
13483
|
-
* If `true`, errors will be displayed as text instead.
|
|
13484
|
-
*/
|
|
13485
|
-
disableErrorLinks: {
|
|
13486
|
-
type: Boolean,
|
|
13487
|
-
default: false
|
|
13488
|
-
}
|
|
13489
|
-
},
|
|
13490
|
-
setup() {
|
|
13491
|
-
return {
|
|
13492
|
-
setRef: vue.inject(setRef),
|
|
13493
|
-
getRef: vue.inject(getRef),
|
|
13494
|
-
setIsOpen: vue.inject(setIsOpen)
|
|
13495
|
-
};
|
|
13496
|
-
},
|
|
13497
|
-
data() {
|
|
13498
|
-
return {
|
|
13499
|
-
self: new logic.Reference({
|
|
13500
|
-
isOpen: false,
|
|
13501
|
-
numberOfTimesSubmitted: 0,
|
|
13502
|
-
isAnyFieldTouched: false,
|
|
13503
|
-
isValid: true,
|
|
13504
|
-
id: this.id,
|
|
13505
|
-
focusElementId: `${this.id}-error`,
|
|
13506
|
-
title: ""
|
|
13507
|
-
}),
|
|
13508
|
-
hasBeenValid: false,
|
|
13509
|
-
isOpenedClosed: false,
|
|
13510
|
-
headerSlotClass: ["form-step__title"],
|
|
13511
|
-
stepErrorId: `${this.id}-error`,
|
|
13512
|
-
groupValidity: {
|
|
13513
|
-
isValid: false,
|
|
13514
|
-
componentsWithError: [],
|
|
13515
|
-
componentCount: 0
|
|
13516
|
-
}
|
|
13517
|
-
};
|
|
13518
|
-
},
|
|
13519
|
-
computed: {
|
|
13520
|
-
attrs() {
|
|
13521
|
-
return {
|
|
13522
|
-
...this.$attrs,
|
|
13523
|
-
class: {
|
|
13524
|
-
"form-step--complete": this.self.ref.isValid,
|
|
13525
|
-
"form-step--last-step": this.isLastStep
|
|
13526
|
-
}
|
|
13527
|
-
};
|
|
13528
|
-
},
|
|
13529
|
-
defaultErrorMessage() {
|
|
13530
|
-
return this.$t("fkui.form-step.errorlist.title", "Oj, du har glömt att fylla i något. Gå till:");
|
|
13531
|
-
},
|
|
13532
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- technical debt, not sure what is going on here
|
|
13533
|
-
injected() {
|
|
13534
|
-
return this;
|
|
13535
|
-
},
|
|
13536
|
-
isSubmitted() {
|
|
13537
|
-
return this.self.ref.numberOfTimesSubmitted > 0;
|
|
13538
|
-
},
|
|
13539
|
-
componentsWithError() {
|
|
13540
|
-
return this.groupValidity.componentsWithError.map((c) => ({
|
|
13541
|
-
id: this.disableErrorLinks ? void 0 : c.elementId,
|
|
13542
|
-
focusElementId: c.focusElementId,
|
|
13543
|
-
title: c.errorMessage
|
|
13544
|
-
}));
|
|
13545
|
-
},
|
|
13546
|
-
hasError() {
|
|
13547
|
-
return this.groupValidity.componentsWithError.length > 0;
|
|
13548
|
-
},
|
|
13549
|
-
displayErrorList() {
|
|
13550
|
-
return (this.isOpenedClosed || this.hasBeenValid || this.isSubmitted) && this.hasError;
|
|
13551
|
-
},
|
|
13552
|
-
validationGroupKey() {
|
|
13553
|
-
return `${this.id}-group`;
|
|
13554
|
-
}
|
|
13555
|
-
},
|
|
13556
|
-
watch: {
|
|
13557
|
-
"self.ref.numberOfTimesSubmitted": {
|
|
13558
|
-
handler() {
|
|
13559
|
-
logic.ValidationService.setSubmitted(this.$el);
|
|
13560
|
-
logic.ValidationService.validateAllElements(this.id);
|
|
13561
|
-
}
|
|
13562
|
-
},
|
|
13563
|
-
groupValidity: {
|
|
13564
|
-
immediate: true,
|
|
13565
|
-
handler() {
|
|
13566
|
-
this.self.ref.isValid = this.groupValidity.isValid;
|
|
13567
|
-
if (this.hasBeenValid === false) {
|
|
13568
|
-
this.hasBeenValid = this.groupValidity.isValid;
|
|
13569
|
-
}
|
|
13570
|
-
}
|
|
13571
|
-
}
|
|
13572
|
-
},
|
|
13573
|
-
async mounted() {
|
|
13574
|
-
await this.$nextTick();
|
|
13575
|
-
this.loadSelf();
|
|
13576
|
-
this.injected.setRef(this.id, this.self.ref);
|
|
13577
|
-
this.loadSelf();
|
|
13578
|
-
this.updateSelfRefTitle();
|
|
13579
|
-
},
|
|
13580
|
-
beforeUpdate() {
|
|
13581
|
-
this.updateSelfRefTitle();
|
|
13582
|
-
},
|
|
13583
|
-
methods: {
|
|
13584
|
-
updateSelfRefTitle() {
|
|
13585
|
-
const [firstSlotClass] = this.headerSlotClass;
|
|
13586
|
-
const headerElement = this.$el.querySelector(`.${firstSlotClass}`);
|
|
13587
|
-
if (headerElement && headerElement.textContent) {
|
|
13588
|
-
this.self.ref.title = headerElement.textContent;
|
|
13589
|
-
}
|
|
13590
|
-
},
|
|
13591
|
-
loadSelf() {
|
|
13592
|
-
const ref = this.injected.getRef(this.id);
|
|
13593
|
-
Object.assign(this.self, ref);
|
|
13594
|
-
},
|
|
13595
|
-
async focusDomElement() {
|
|
13596
|
-
await this.$nextTick();
|
|
13597
|
-
if (this.hasError && this.self.ref.isAnyFieldTouched) {
|
|
13598
|
-
const formStepError = this.$el.querySelector(".form-step__error");
|
|
13599
|
-
logic.focus(formStepError);
|
|
13600
|
-
} else {
|
|
13601
|
-
const formStepHeader = this.$el.querySelector(".form-step__header");
|
|
13602
|
-
logic.focus(formStepHeader);
|
|
13603
|
-
}
|
|
13604
|
-
},
|
|
13605
|
-
async beforeNavigateToError() {
|
|
13606
|
-
this.injected.setIsOpen(this.id, true);
|
|
13607
|
-
await this.$nextTick();
|
|
13608
|
-
},
|
|
13609
|
-
/**
|
|
13610
|
-
* Toggle if open or closed.
|
|
13611
|
-
* If another form step is open then it will be closed.
|
|
13612
|
-
* @public
|
|
13613
|
-
*/
|
|
13614
|
-
toggleIsOpen() {
|
|
13615
|
-
this.injected.setIsOpen(this.id, !this.self.ref.isOpen);
|
|
13616
|
-
if (this.self.ref.isAnyFieldTouched && this.self.ref.isOpen === false) {
|
|
13617
|
-
if (this.isOpenedClosed === false) {
|
|
13618
|
-
this.isOpenedClosed = true;
|
|
13619
|
-
}
|
|
13620
|
-
logic.ValidationService.setTouched(this.$el);
|
|
13621
|
-
logic.ValidationService.validateAllElements(this.id);
|
|
13622
|
-
}
|
|
13623
|
-
this.focusDomElement();
|
|
13624
|
-
},
|
|
13625
|
-
onComponentValidity(event) {
|
|
13626
|
-
const hasReceivedValidOrErrorEvent = event.detail.validityMode === "VALID" || event.detail.validityMode === "ERROR";
|
|
13627
|
-
if (hasReceivedValidOrErrorEvent && this.self.ref.isOpen) {
|
|
13628
|
-
this.self.ref.isAnyFieldTouched = true;
|
|
13629
|
-
}
|
|
13630
|
-
}
|
|
13631
|
-
}
|
|
13632
|
-
});
|
|
13633
|
-
const _hoisted_1$h = {
|
|
13634
|
-
class: "form-step__header",
|
|
13635
|
-
tabindex: "-1",
|
|
13636
|
-
role: "group"
|
|
13637
|
-
};
|
|
13638
|
-
const _hoisted_2$f = ["id"];
|
|
13639
|
-
const _hoisted_3$a = {
|
|
13640
|
-
key: 0,
|
|
13641
|
-
class: "form-step__arrow"
|
|
13642
|
-
};
|
|
13643
|
-
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13644
|
-
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
13645
|
-
const _component_f_error_list = vue.resolveComponent("f-error-list");
|
|
13646
|
-
const _component_f_validation_group = vue.resolveComponent("f-validation-group");
|
|
13647
|
-
return vue.openBlock(), vue.createBlock(_component_f_validation_group, vue.mergeProps({
|
|
13648
|
-
id: _ctx.id
|
|
13649
|
-
}, _ctx.attrs, {
|
|
13650
|
-
key: _ctx.validationGroupKey,
|
|
13651
|
-
modelValue: _ctx.groupValidity,
|
|
13652
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.groupValidity = $event),
|
|
13653
|
-
class: "form-step",
|
|
13654
|
-
"stop-propagation": true
|
|
13655
|
-
}), {
|
|
13656
|
-
default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$h, [vue.renderSlot(_ctx.$slots, "header", vue.normalizeProps(vue.guardReactiveProps({
|
|
13657
|
-
slotClass: _ctx.headerSlotClass,
|
|
13658
|
-
..._ctx.self.ref,
|
|
13659
|
-
toggleIsOpen: _ctx.toggleIsOpen
|
|
13660
|
-
}))), _cache[2] || (_cache[2] = vue.createTextVNode()), _ctx.self.ref.isValid ? (vue.openBlock(), vue.createBlock(_component_f_icon, {
|
|
13661
|
-
key: 0,
|
|
13662
|
-
class: "form-step__check",
|
|
13663
|
-
name: "success"
|
|
13664
|
-
})) : vue.createCommentVNode("", true)]), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.displayErrorList ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
13665
|
-
key: 0,
|
|
13666
|
-
id: _ctx.stepErrorId,
|
|
13667
|
-
class: "form-step__error",
|
|
13668
|
-
tabindex: "-1",
|
|
13669
|
-
role: "group"
|
|
13670
|
-
}, [vue.createElementVNode("nav", null, [vue.createVNode(_component_f_error_list, {
|
|
13671
|
-
bullets: true,
|
|
13672
|
-
items: _ctx.componentsWithError,
|
|
13673
|
-
"before-navigate": _ctx.beforeNavigateToError
|
|
13674
|
-
}, {
|
|
13675
|
-
title: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.defaultErrorMessage), 1)])]),
|
|
13676
|
-
_: 3
|
|
13677
|
-
}, 8, ["items", "before-navigate"])])], 8, _hoisted_2$f)) : vue.createCommentVNode("", true), _cache[5] || (_cache[5] = vue.createTextVNode()), vue.createElementVNode("div", {
|
|
13678
|
-
onComponentValidity: _cache[0] || (_cache[0] = (...args) => _ctx.onComponentValidity && _ctx.onComponentValidity(...args))
|
|
13679
|
-
}, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps({
|
|
13680
|
-
..._ctx.self.ref,
|
|
13681
|
-
isSubmitted: _ctx.isSubmitted,
|
|
13682
|
-
toggleIsOpen: _ctx.toggleIsOpen
|
|
13683
|
-
}))), _cache[3] || (_cache[3] = vue.createTextVNode()), _ctx.hasArrow ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$a)) : vue.createCommentVNode("", true)], 32)]),
|
|
13684
|
-
_: 3
|
|
13685
|
-
}, 16, ["id", "modelValue"]);
|
|
13686
|
-
}
|
|
13687
|
-
const FFormStep = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i]]);
|
|
13688
|
-
const _sfc_main$h = vue.defineComponent({
|
|
13689
|
-
name: "FFormStepButton",
|
|
13690
|
-
components: {
|
|
13691
|
-
FIcon
|
|
13692
|
-
},
|
|
13693
|
-
mixins: [TranslationMixin],
|
|
13694
|
-
inheritAttrs: false,
|
|
13695
|
-
model: {
|
|
13696
|
-
prop: "sr-only"
|
|
13697
|
-
},
|
|
13698
|
-
props: {
|
|
13699
|
-
/**
|
|
13700
|
-
* If the id is not set a random value will be generated.
|
|
13701
|
-
*/
|
|
13702
|
-
id: {
|
|
13703
|
-
type: String,
|
|
13704
|
-
required: false,
|
|
13705
|
-
default: () => logic.ElementIdService.generateElementId()
|
|
13706
|
-
},
|
|
13707
|
-
isOpen: Boolean,
|
|
13708
|
-
isAnyFieldTouched: Boolean,
|
|
13709
|
-
additionalScreenreaderText: {
|
|
13710
|
-
type: String,
|
|
13711
|
-
required: false,
|
|
13712
|
-
default: ""
|
|
13713
|
-
}
|
|
13714
|
-
}
|
|
13715
|
-
});
|
|
13716
|
-
const _hoisted_1$g = ["id", "aria-expanded"];
|
|
13717
|
-
const _hoisted_2$e = {
|
|
13718
|
-
class: "sr-only"
|
|
13719
|
-
};
|
|
13720
|
-
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13721
|
-
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
13722
|
-
return vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
|
|
13723
|
-
id: _ctx.id,
|
|
13724
|
-
class: "button button--margin-bottom-0 button--large",
|
|
13725
|
-
type: "button"
|
|
13726
|
-
}, _ctx.$attrs, {
|
|
13727
|
-
"aria-expanded": _ctx.isOpen ? "true" : "false",
|
|
13728
|
-
"data-form-step-button": ""
|
|
13729
|
-
}), [_ctx.isOpen ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
13730
|
-
key: 0
|
|
13731
|
-
}, [vue.createVNode(_component_f_icon, {
|
|
13732
|
-
name: "success",
|
|
13733
|
-
class: "button__icon"
|
|
13734
|
-
}), vue.createTextVNode(" " + vue.toDisplayString(_ctx.$t("fkui.form-step-button.close", "OK")), 1)], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
13735
|
-
key: 1
|
|
13736
|
-
}, [vue.createVNode(_component_f_icon, {
|
|
13737
|
-
name: "pen",
|
|
13738
|
-
class: "button__icon"
|
|
13739
|
-
}), vue.createTextVNode(" " + vue.toDisplayString(_ctx.isAnyFieldTouched ? _ctx.$t("fkui.form-step-button.edit", "Ändra") : _ctx.$t("fkui.form-step-button.open", "Fyll i")), 1)], 64)), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createElementVNode("span", _hoisted_2$e, vue.toDisplayString(_ctx.additionalScreenreaderText), 1)], 16, _hoisted_1$g);
|
|
13740
|
-
}
|
|
13741
|
-
const FFormStepButton = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h]]);
|
|
13742
|
-
const keybindings = Object.fromEntries([["Up", focusTrAbove], ["Down", focusTrBelow], ["ArrowUp", focusTrAbove], ["ArrowDown", focusTrBelow], [" ", activateRow], ["Spacebar", activateRow]]);
|
|
13743
|
-
function focusTrAbove(current) {
|
|
13744
|
-
if (current > 0) {
|
|
13745
|
-
this.tr[current - 1].focus();
|
|
13746
|
-
} else {
|
|
13747
|
-
this.tr[this.tr.length - 1].focus();
|
|
12967
|
+
const FFileSelector = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$g]]);
|
|
12968
|
+
const keybindings = Object.fromEntries([["Up", focusTrAbove], ["Down", focusTrBelow], ["ArrowUp", focusTrAbove], ["ArrowDown", focusTrBelow], [" ", activateRow], ["Spacebar", activateRow]]);
|
|
12969
|
+
function focusTrAbove(current) {
|
|
12970
|
+
if (current > 0) {
|
|
12971
|
+
this.tr[current - 1].focus();
|
|
12972
|
+
} else {
|
|
12973
|
+
this.tr[this.tr.length - 1].focus();
|
|
13748
12974
|
}
|
|
13749
12975
|
}
|
|
13750
12976
|
function focusTrBelow(current) {
|
|
@@ -13846,7 +13072,7 @@ function forceRepaintIE11(target) {
|
|
|
13846
13072
|
target.style.removeProperty("display");
|
|
13847
13073
|
}
|
|
13848
13074
|
}
|
|
13849
|
-
const _sfc_main$
|
|
13075
|
+
const _sfc_main$h = vue.defineComponent({
|
|
13850
13076
|
name: "FInteractiveTable",
|
|
13851
13077
|
components: {
|
|
13852
13078
|
FCheckboxField,
|
|
@@ -13964,7 +13190,6 @@ const _sfc_main$g = vue.defineComponent({
|
|
|
13964
13190
|
emits: [
|
|
13965
13191
|
"change",
|
|
13966
13192
|
"click",
|
|
13967
|
-
"update",
|
|
13968
13193
|
"unselect",
|
|
13969
13194
|
"update:modelValue",
|
|
13970
13195
|
"update:active",
|
|
@@ -14157,7 +13382,6 @@ const _sfc_main$g = vue.defineComponent({
|
|
|
14157
13382
|
updateVModelWithSelectedRows() {
|
|
14158
13383
|
if (this.modelValue) {
|
|
14159
13384
|
this.$emit("update:modelValue", this.selectedRows);
|
|
14160
|
-
this.$emit("update", this.selectedRows);
|
|
14161
13385
|
}
|
|
14162
13386
|
},
|
|
14163
13387
|
rowClasses(row, index) {
|
|
@@ -14234,7 +13458,7 @@ const _sfc_main$g = vue.defineComponent({
|
|
|
14234
13458
|
}
|
|
14235
13459
|
}
|
|
14236
13460
|
});
|
|
14237
|
-
const _hoisted_1$
|
|
13461
|
+
const _hoisted_1$h = ["role"];
|
|
14238
13462
|
const _hoisted_2$d = {
|
|
14239
13463
|
key: 0
|
|
14240
13464
|
};
|
|
@@ -14253,10 +13477,10 @@ const _hoisted_6$4 = {
|
|
|
14253
13477
|
key: 0,
|
|
14254
13478
|
scope: "col"
|
|
14255
13479
|
};
|
|
14256
|
-
const _hoisted_7$
|
|
13480
|
+
const _hoisted_7$3 = {
|
|
14257
13481
|
class: "sr-only"
|
|
14258
13482
|
};
|
|
14259
|
-
const _hoisted_8$
|
|
13483
|
+
const _hoisted_8$3 = {
|
|
14260
13484
|
key: 1,
|
|
14261
13485
|
scope: "col"
|
|
14262
13486
|
};
|
|
@@ -14299,7 +13523,7 @@ const _hoisted_21 = {
|
|
|
14299
13523
|
key: 1
|
|
14300
13524
|
};
|
|
14301
13525
|
const _hoisted_22 = ["colspan"];
|
|
14302
|
-
function _sfc_render$
|
|
13526
|
+
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14303
13527
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
14304
13528
|
const _component_f_checkbox_field = vue.resolveComponent("f-checkbox-field");
|
|
14305
13529
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -14312,7 +13536,7 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
14312
13536
|
key: column.id,
|
|
14313
13537
|
class: vue.normalizeClass(column.size)
|
|
14314
13538
|
}, null, 2);
|
|
14315
|
-
}), 128))]), _cache[16] || (_cache[16] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", _hoisted_5$6, [_ctx.isExpandableTable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$4, [vue.createElementVNode("span", _hoisted_7$
|
|
13539
|
+
}), 128))]), _cache[16] || (_cache[16] = vue.createTextVNode()), vue.createElementVNode("thead", null, [vue.createElementVNode("tr", _hoisted_5$6, [_ctx.isExpandableTable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$4, [vue.createElementVNode("span", _hoisted_7$3, vue.toDisplayString(_ctx.$t("fkui.interactive-table.select", "Expandera")), 1)])) : vue.createCommentVNode("", true), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.selectable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_8$3, [vue.createElementVNode("span", _hoisted_9$3, vue.toDisplayString(_ctx.$t("fkui.interactive-table.select", "Markera")), 1)])) : vue.createCommentVNode("", true), _cache[5] || (_cache[5] = vue.createTextVNode()), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.visibleColumns, (column) => {
|
|
14316
13540
|
return vue.openBlock(), vue.createElementBlock("th", vue.mergeProps({
|
|
14317
13541
|
key: column.id,
|
|
14318
13542
|
scope: "col",
|
|
@@ -14391,10 +13615,10 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
14391
13615
|
colspan: _ctx.nbOfColumns
|
|
14392
13616
|
}, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.interactive-table.empty", "Tabellen är tom")), 1)])], 8, _hoisted_22), _cache[12] || (_cache[12] = vue.createTextVNode()), vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps({
|
|
14393
13617
|
row: {}
|
|
14394
|
-
})))])) : vue.createCommentVNode("", true)]))], 16, _hoisted_1$
|
|
13618
|
+
})))])) : vue.createCommentVNode("", true)]))], 16, _hoisted_1$h)], 2);
|
|
14395
13619
|
}
|
|
14396
|
-
const FInteractiveTable = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
14397
|
-
const _sfc_main$
|
|
13620
|
+
const FInteractiveTable = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$f]]);
|
|
13621
|
+
const _sfc_main$g = vue.defineComponent({
|
|
14398
13622
|
name: "FLayoutApplicationTemplate",
|
|
14399
13623
|
computed: {
|
|
14400
13624
|
showHeader() {
|
|
@@ -14419,7 +13643,7 @@ const _sfc_main$f = vue.defineComponent({
|
|
|
14419
13643
|
}
|
|
14420
13644
|
}
|
|
14421
13645
|
});
|
|
14422
|
-
const _hoisted_1$
|
|
13646
|
+
const _hoisted_1$g = {
|
|
14423
13647
|
class: "layout-application-template"
|
|
14424
13648
|
};
|
|
14425
13649
|
const _hoisted_2$c = {
|
|
@@ -14438,12 +13662,12 @@ const _hoisted_5$5 = {
|
|
|
14438
13662
|
key: 0,
|
|
14439
13663
|
class: "layout-application-template__footer"
|
|
14440
13664
|
};
|
|
14441
|
-
function _sfc_render$
|
|
14442
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13665
|
+
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
13666
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [_ctx.showHeader || _ctx.showTopNavigation ? (vue.openBlock(), vue.createElementBlock("header", _hoisted_2$c, [_ctx.showHeader ? vue.renderSlot(_ctx.$slots, "header", {
|
|
14443
13667
|
key: 0
|
|
14444
13668
|
}) : vue.createCommentVNode("", true), _cache[0] || (_cache[0] = vue.createTextVNode()), _ctx.showTopNavigation ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_3$8, [vue.renderSlot(_ctx.$slots, "top-navigation")])) : vue.createCommentVNode("", true)], 512)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("main", _hoisted_4$7, [vue.renderSlot(_ctx.$slots, "default"), _cache[1] || (_cache[1] = vue.createTextVNode()), _ctx.showFooter ? (vue.openBlock(), vue.createElementBlock("footer", _hoisted_5$5, [vue.renderSlot(_ctx.$slots, "footer")])) : vue.createCommentVNode("", true)], 512)]);
|
|
14445
13669
|
}
|
|
14446
|
-
const FLayoutApplicationTemplate = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
13670
|
+
const FLayoutApplicationTemplate = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$e]]);
|
|
14447
13671
|
function getGridClasses(target) {
|
|
14448
13672
|
if (target === null) {
|
|
14449
13673
|
return {};
|
|
@@ -14544,7 +13768,7 @@ function useLayoutPanel(options) {
|
|
|
14544
13768
|
rightPrimaryClasses
|
|
14545
13769
|
};
|
|
14546
13770
|
}
|
|
14547
|
-
const _sfc_main$
|
|
13771
|
+
const _sfc_main$f = vue.defineComponent({
|
|
14548
13772
|
name: "FLayoutLeftPanel",
|
|
14549
13773
|
components: {
|
|
14550
13774
|
FIcon
|
|
@@ -14629,7 +13853,7 @@ const _sfc_main$e = vue.defineComponent({
|
|
|
14629
13853
|
}
|
|
14630
13854
|
}
|
|
14631
13855
|
});
|
|
14632
|
-
const _hoisted_1$
|
|
13856
|
+
const _hoisted_1$f = {
|
|
14633
13857
|
class: "layout-navigation"
|
|
14634
13858
|
};
|
|
14635
13859
|
const _hoisted_2$b = ["aria-expanded"];
|
|
@@ -14640,9 +13864,9 @@ const _hoisted_4$6 = {
|
|
|
14640
13864
|
key: 1,
|
|
14641
13865
|
class: "layout-navigation__navigation__inner--minimized"
|
|
14642
13866
|
};
|
|
14643
|
-
function _sfc_render$
|
|
13867
|
+
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14644
13868
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
14645
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
13869
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [vue.createElementVNode("nav", {
|
|
14646
13870
|
id: "layout-navigation__navigation",
|
|
14647
13871
|
class: "layout-navigation__navigation",
|
|
14648
13872
|
style: vue.normalizeStyle(_ctx.navigationStyle),
|
|
@@ -14691,7 +13915,7 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
14691
13915
|
style: vue.normalizeStyle(_ctx.primaryStyle)
|
|
14692
13916
|
}, [vue.renderSlot(_ctx.$slots, "default")], 6)]);
|
|
14693
13917
|
}
|
|
14694
|
-
const FLayoutLeftPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
13918
|
+
const FLayoutLeftPanel = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$d]]);
|
|
14695
13919
|
class FRightPanelServiceImpl {
|
|
14696
13920
|
constructor() {
|
|
14697
13921
|
_defineProperty(this, "focusedElementBeforeOpenining", null);
|
|
@@ -14721,7 +13945,7 @@ class FRightPanelServiceImpl {
|
|
|
14721
13945
|
}
|
|
14722
13946
|
}
|
|
14723
13947
|
const FLayoutRightPanelService = new FRightPanelServiceImpl();
|
|
14724
|
-
const _sfc_main$
|
|
13948
|
+
const _sfc_main$e = vue.defineComponent({
|
|
14725
13949
|
name: "FLayoutRightPanel",
|
|
14726
13950
|
components: {
|
|
14727
13951
|
FIcon
|
|
@@ -14838,15 +14062,15 @@ const _sfc_main$d = vue.defineComponent({
|
|
|
14838
14062
|
}
|
|
14839
14063
|
}
|
|
14840
14064
|
});
|
|
14841
|
-
const _hoisted_1$
|
|
14065
|
+
const _hoisted_1$e = {
|
|
14842
14066
|
class: "layout-secondary"
|
|
14843
14067
|
};
|
|
14844
14068
|
const _hoisted_2$a = {
|
|
14845
14069
|
class: "layout-secondary__secondary__inner"
|
|
14846
14070
|
};
|
|
14847
|
-
function _sfc_render$
|
|
14071
|
+
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14848
14072
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
14849
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
14073
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [vue.createElementVNode("div", {
|
|
14850
14074
|
id: "layout-secondary__primary",
|
|
14851
14075
|
class: vue.normalizeClass(["layout-secondary__primary", _ctx.rightPrimaryClasses]),
|
|
14852
14076
|
style: vue.normalizeStyle(_ctx.primaryStyle)
|
|
@@ -14883,8 +14107,8 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
14883
14107
|
name: "close"
|
|
14884
14108
|
})])], 6)])], 4)) : vue.createCommentVNode("", true)]);
|
|
14885
14109
|
}
|
|
14886
|
-
const FLayoutRightPanel = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
14887
|
-
const _sfc_main$
|
|
14110
|
+
const FLayoutRightPanel = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$c]]);
|
|
14111
|
+
const _sfc_main$d = vue.defineComponent({
|
|
14888
14112
|
name: "FList",
|
|
14889
14113
|
components: {
|
|
14890
14114
|
FCheckboxField
|
|
@@ -14949,7 +14173,7 @@ const _sfc_main$c = vue.defineComponent({
|
|
|
14949
14173
|
default: () => logic.ElementIdService.generateElementId()
|
|
14950
14174
|
}
|
|
14951
14175
|
},
|
|
14952
|
-
emits: ["change", "click", "
|
|
14176
|
+
emits: ["change", "click", "unselect", "update:modelValue", "select", "update:active"],
|
|
14953
14177
|
setup() {
|
|
14954
14178
|
return ActivateItemInjected();
|
|
14955
14179
|
},
|
|
@@ -15047,7 +14271,6 @@ const _sfc_main$c = vue.defineComponent({
|
|
|
15047
14271
|
updateVModelWithSelectedItems() {
|
|
15048
14272
|
if (this.modelValue) {
|
|
15049
14273
|
this.$emit("update:modelValue", this.selectedItems);
|
|
15050
|
-
this.$emit("update", this.selectedItems);
|
|
15051
14274
|
}
|
|
15052
14275
|
},
|
|
15053
14276
|
updateSelectedItemsFromVModel() {
|
|
@@ -15127,7 +14350,7 @@ const _sfc_main$c = vue.defineComponent({
|
|
|
15127
14350
|
}
|
|
15128
14351
|
}
|
|
15129
14352
|
});
|
|
15130
|
-
const _hoisted_1$
|
|
14353
|
+
const _hoisted_1$d = {
|
|
15131
14354
|
key: 0,
|
|
15132
14355
|
class: "list"
|
|
15133
14356
|
};
|
|
@@ -15141,10 +14364,10 @@ const _hoisted_3$6 = {
|
|
|
15141
14364
|
const _hoisted_4$5 = ["tabindex"];
|
|
15142
14365
|
const _hoisted_5$4 = ["id", "aria-labelledby", "tabindex", "onKeydown"];
|
|
15143
14366
|
const _hoisted_6$3 = ["onClick"];
|
|
15144
|
-
const _hoisted_7$
|
|
14367
|
+
const _hoisted_7$2 = {
|
|
15145
14368
|
class: "list__item__selectpane__input"
|
|
15146
14369
|
};
|
|
15147
|
-
const _hoisted_8$
|
|
14370
|
+
const _hoisted_8$2 = ["id"];
|
|
15148
14371
|
const _hoisted_9$2 = {
|
|
15149
14372
|
key: 0,
|
|
15150
14373
|
class: "list__item"
|
|
@@ -15152,9 +14375,9 @@ const _hoisted_9$2 = {
|
|
|
15152
14375
|
const _hoisted_10$1 = {
|
|
15153
14376
|
class: "list__item__itempane"
|
|
15154
14377
|
};
|
|
15155
|
-
function _sfc_render$
|
|
14378
|
+
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
15156
14379
|
const _component_f_checkbox_field = vue.resolveComponent("f-checkbox-field");
|
|
15157
|
-
return !_ctx.selectable ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_1$
|
|
14380
|
+
return !_ctx.selectable ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_1$d, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item) => {
|
|
15158
14381
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
15159
14382
|
key: _ctx.itemKey(item),
|
|
15160
14383
|
class: "list__item"
|
|
@@ -15186,7 +14409,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15186
14409
|
key: 0,
|
|
15187
14410
|
class: "list__item__selectpane",
|
|
15188
14411
|
onClick: vue.withModifiers(($event) => _ctx.onSelect(item), ["self"])
|
|
15189
|
-
}, [vue.createElementVNode("div", _hoisted_7$
|
|
14412
|
+
}, [vue.createElementVNode("div", _hoisted_7$2, [vue.createVNode(_component_f_checkbox_field, {
|
|
15190
14413
|
value: true,
|
|
15191
14414
|
"model-value": _ctx.isSelected(item),
|
|
15192
14415
|
onClick: vue.withModifiers(($event) => _ctx.onSelect(item), ["self"])
|
|
@@ -15198,7 +14421,7 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15198
14421
|
ref_for: true
|
|
15199
14422
|
}, {
|
|
15200
14423
|
item
|
|
15201
|
-
}))], 8, _hoisted_8$
|
|
14424
|
+
}))], 8, _hoisted_8$2)]),
|
|
15202
14425
|
_: 2
|
|
15203
14426
|
}, 1032, ["model-value", "onClick"])])], 8, _hoisted_6$3)) : vue.createCommentVNode("", true), _cache[3] || (_cache[3] = vue.createTextVNode()), (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.checkbox ? "div" : "a"), {
|
|
15204
14427
|
ref_for: true,
|
|
@@ -15216,8 +14439,8 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15216
14439
|
}, 1032, ["href", "onClick"]))], 42, _hoisted_5$4);
|
|
15217
14440
|
}), 128)), _cache[4] || (_cache[4] = vue.createTextVNode()), _ctx.isEmpty ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_9$2, [vue.createElementVNode("div", _hoisted_10$1, [vue.renderSlot(_ctx.$slots, "empty", {}, () => [vue.createElementVNode("em", null, vue.toDisplayString(_ctx.$t("fkui.list.empty", "Listan är tom")), 1)])])])) : vue.createCommentVNode("", true)], 8, _hoisted_4$5));
|
|
15218
14441
|
}
|
|
15219
|
-
const FList = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15220
|
-
const _sfc_main$
|
|
14442
|
+
const FList = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$b]]);
|
|
14443
|
+
const _sfc_main$c = vue.defineComponent({
|
|
15221
14444
|
name: "FLoader",
|
|
15222
14445
|
mixins: [TranslationMixin],
|
|
15223
14446
|
inheritAttrs: false,
|
|
@@ -15329,59 +14552,258 @@ const _sfc_main$b = vue.defineComponent({
|
|
|
15329
14552
|
}
|
|
15330
14553
|
}
|
|
15331
14554
|
});
|
|
14555
|
+
const _hoisted_1$c = {
|
|
14556
|
+
class: "loader__backdrop"
|
|
14557
|
+
};
|
|
14558
|
+
const _hoisted_2$8 = {
|
|
14559
|
+
role: "alert"
|
|
14560
|
+
};
|
|
14561
|
+
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14562
|
+
return vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
14563
|
+
to: _ctx.teleportTarget,
|
|
14564
|
+
disabled: _ctx.teleportDisabled
|
|
14565
|
+
}, [vue.withDirectives(vue.createElementVNode("div", vue.mergeProps(_ctx.$attrs, {
|
|
14566
|
+
class: ["loader", _ctx.classes]
|
|
14567
|
+
}), [vue.createElementVNode("div", _hoisted_1$c, [_cache[0] || (_cache[0] = vue.createElementVNode("div", {
|
|
14568
|
+
class: "loader__wrapper"
|
|
14569
|
+
}, [vue.createElementVNode("div", {
|
|
14570
|
+
class: "loader__spinner-1 loader__spinner"
|
|
14571
|
+
}, [vue.createElementVNode("div", {
|
|
14572
|
+
class: "loader__spinner-1-circle1 loader__circle loader__circle--1"
|
|
14573
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14574
|
+
class: "loader__spinner-1-circle2 loader__circle loader__circle--2"
|
|
14575
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14576
|
+
class: "loader__spinner-1-circle3 loader__circle loader__circle--3"
|
|
14577
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14578
|
+
class: "loader__spinner-1-circle4 loader__circle loader__circle--4"
|
|
14579
|
+
})]), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14580
|
+
class: "loader__spinner-2 loader__spinner"
|
|
14581
|
+
}, [vue.createElementVNode("div", {
|
|
14582
|
+
class: "loader__spinner-2-circle1 loader__circle loader__circle--1"
|
|
14583
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14584
|
+
class: "loader__spinner-2-circle2 loader__circle loader__circle--2"
|
|
14585
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14586
|
+
class: "loader__spinner-2-circle3 loader__circle loader__circle--3"
|
|
14587
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14588
|
+
class: "loader__spinner-2-circle4 loader__circle loader__circle--4"
|
|
14589
|
+
})]), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14590
|
+
class: "loader__spinner-3 loader__spinner"
|
|
14591
|
+
}, [vue.createElementVNode("div", {
|
|
14592
|
+
class: "loader__spinner-3-circle1 loader__circle loader__circle--1"
|
|
14593
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14594
|
+
class: "loader__spinner-3-circle2 loader__circle loader__circle--2"
|
|
14595
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14596
|
+
class: "loader__spinner-3-circle3 loader__circle loader__circle--3"
|
|
14597
|
+
}), vue.createTextVNode(), vue.createElementVNode("div", {
|
|
14598
|
+
class: "loader__spinner-3-circle4 loader__circle loader__circle--4"
|
|
14599
|
+
})])], -1)), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("div", {
|
|
14600
|
+
ref: "loader-text",
|
|
14601
|
+
class: vue.normalizeClass(["loader__wait-text", {
|
|
14602
|
+
"loader--delay": _ctx.delay
|
|
14603
|
+
}]),
|
|
14604
|
+
tabindex: "-1"
|
|
14605
|
+
}, [vue.createElementVNode("span", _hoisted_2$8, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.loader.wait.text", _ctx.defaultLoadingText)), 1)])])], 2)])], 16), [[vue.vShow, _ctx.show]])], 8, ["to", "disabled"]);
|
|
14606
|
+
}
|
|
14607
|
+
const FLoader = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$a]]);
|
|
14608
|
+
const _hoisted_1$b = ["aria-label"];
|
|
14609
|
+
const __default__ = vue.defineComponent({
|
|
14610
|
+
computed: {
|
|
14611
|
+
ariaLabel() {
|
|
14612
|
+
const content = renderSlotText(this.$slots.default);
|
|
14613
|
+
if (!content) {
|
|
14614
|
+
throw new Error("`f-logo` requires text content.");
|
|
14615
|
+
}
|
|
14616
|
+
return content;
|
|
14617
|
+
}
|
|
14618
|
+
}
|
|
14619
|
+
});
|
|
14620
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
14621
|
+
...__default__,
|
|
14622
|
+
__name: "FLogo",
|
|
14623
|
+
props: {
|
|
14624
|
+
/**
|
|
14625
|
+
* Size of the logo: `"small"`, `"large"`, or `"responsive"`.
|
|
14626
|
+
* Requires matching CSS variable to be set (`--f-logo-image-{small/large}`), or both if "responsive".
|
|
14627
|
+
*/
|
|
14628
|
+
size: {
|
|
14629
|
+
type: String,
|
|
14630
|
+
default: "responsive",
|
|
14631
|
+
required: false,
|
|
14632
|
+
validator(value) {
|
|
14633
|
+
return ["small", "large", "responsive"].includes(value);
|
|
14634
|
+
}
|
|
14635
|
+
}
|
|
14636
|
+
},
|
|
14637
|
+
setup(__props) {
|
|
14638
|
+
const props = __props;
|
|
14639
|
+
return (_ctx, _cache) => {
|
|
14640
|
+
return vue.openBlock(), vue.createElementBlock("span", {
|
|
14641
|
+
class: vue.normalizeClass(`logo logo--${props.size}`),
|
|
14642
|
+
"aria-label": _ctx.ariaLabel,
|
|
14643
|
+
role: "img"
|
|
14644
|
+
}, null, 10, _hoisted_1$b);
|
|
14645
|
+
};
|
|
14646
|
+
}
|
|
14647
|
+
});
|
|
14648
|
+
const iconClasses = {
|
|
14649
|
+
success: {
|
|
14650
|
+
symbol: "circle",
|
|
14651
|
+
sign: "success",
|
|
14652
|
+
screenReaderContextKey: "fkui.message-box.sr-context.success",
|
|
14653
|
+
screenReaderContextDefault: "Meddelande"
|
|
14654
|
+
},
|
|
14655
|
+
warning: {
|
|
14656
|
+
symbol: "circle",
|
|
14657
|
+
sign: "alert",
|
|
14658
|
+
screenReaderContextKey: "fkui.message-box.sr-context.warning",
|
|
14659
|
+
screenReaderContextDefault: "Varningsmeddelande"
|
|
14660
|
+
},
|
|
14661
|
+
error: {
|
|
14662
|
+
symbol: "triangle",
|
|
14663
|
+
sign: "alert",
|
|
14664
|
+
screenReaderContextKey: "fkui.message-box.sr-context.error",
|
|
14665
|
+
screenReaderContextDefault: "Felmeddelande"
|
|
14666
|
+
},
|
|
14667
|
+
info: {
|
|
14668
|
+
symbol: "circle",
|
|
14669
|
+
sign: "i",
|
|
14670
|
+
screenReaderContextKey: "fkui.message-box.sr-context.info",
|
|
14671
|
+
screenReaderContextDefault: "Informationsmeddelande"
|
|
14672
|
+
}
|
|
14673
|
+
};
|
|
14674
|
+
const _sfc_main$a = vue.defineComponent({
|
|
14675
|
+
name: "FMessageBox",
|
|
14676
|
+
components: {
|
|
14677
|
+
FIcon,
|
|
14678
|
+
IFlex,
|
|
14679
|
+
IFlexItem
|
|
14680
|
+
},
|
|
14681
|
+
props: {
|
|
14682
|
+
/**
|
|
14683
|
+
* Type of message-box. 'success', 'error', 'warning' and 'info' is valid.
|
|
14684
|
+
* */
|
|
14685
|
+
type: {
|
|
14686
|
+
type: String,
|
|
14687
|
+
required: true,
|
|
14688
|
+
validator(value) {
|
|
14689
|
+
return ["success", "warning", "error", "info"].includes(value);
|
|
14690
|
+
}
|
|
14691
|
+
},
|
|
14692
|
+
/**
|
|
14693
|
+
* If message-box should be a banner.
|
|
14694
|
+
* If prop is not used message-box will have default styling.
|
|
14695
|
+
*/
|
|
14696
|
+
banner: {
|
|
14697
|
+
type: Boolean,
|
|
14698
|
+
required: false
|
|
14699
|
+
},
|
|
14700
|
+
/**
|
|
14701
|
+
* It is important to provide a context for a screenreader, similar to a modal that initially outputs it is a dialog.
|
|
14702
|
+
* Type-specific screenreader context is output by default in this component.
|
|
14703
|
+
* By setting this property to false no context will be output.
|
|
14704
|
+
* Note that by doing this, it is the applications responsiblity to provide a clear context.
|
|
14705
|
+
*/
|
|
14706
|
+
provideScreenReaderContext: {
|
|
14707
|
+
type: Boolean,
|
|
14708
|
+
required: false,
|
|
14709
|
+
default: true
|
|
14710
|
+
},
|
|
14711
|
+
/**
|
|
14712
|
+
* Select standard or short layout.
|
|
14713
|
+
*
|
|
14714
|
+
* - 'normal' - Use normal layout when need for heading and/or longer text/multiple sentences
|
|
14715
|
+
* - 'short' - Use short layout when only need for shorter text
|
|
14716
|
+
*/
|
|
14717
|
+
layout: {
|
|
14718
|
+
type: String,
|
|
14719
|
+
required: false,
|
|
14720
|
+
default: "standard",
|
|
14721
|
+
validator(value) {
|
|
14722
|
+
return ["standard", "short"].includes(value);
|
|
14723
|
+
}
|
|
14724
|
+
}
|
|
14725
|
+
},
|
|
14726
|
+
data() {
|
|
14727
|
+
return {
|
|
14728
|
+
headingClass: ["message-box__heading"]
|
|
14729
|
+
};
|
|
14730
|
+
},
|
|
14731
|
+
computed: {
|
|
14732
|
+
messageBoxType() {
|
|
14733
|
+
if (this.layout === "short") {
|
|
14734
|
+
return `message-box--${this.type}-short`;
|
|
14735
|
+
} else {
|
|
14736
|
+
return `message-box--${this.type}`;
|
|
14737
|
+
}
|
|
14738
|
+
},
|
|
14739
|
+
bannerType() {
|
|
14740
|
+
return this.banner ? `message-box--banner` : "";
|
|
14741
|
+
},
|
|
14742
|
+
classType() {
|
|
14743
|
+
return `icon__${this.type}`;
|
|
14744
|
+
},
|
|
14745
|
+
classIcon() {
|
|
14746
|
+
return iconClasses[this.type].symbol === "circle" && iconClasses[this.type].sign === "alert" ? `icon__exclamation` : "";
|
|
14747
|
+
},
|
|
14748
|
+
stackTypeClass() {
|
|
14749
|
+
return `icon-stack--${this.type}`;
|
|
14750
|
+
},
|
|
14751
|
+
symbol() {
|
|
14752
|
+
return iconClasses[this.type].symbol;
|
|
14753
|
+
},
|
|
14754
|
+
sign() {
|
|
14755
|
+
return iconClasses[this.type].sign;
|
|
14756
|
+
}
|
|
14757
|
+
},
|
|
14758
|
+
methods: {
|
|
14759
|
+
screenReaderContext() {
|
|
14760
|
+
return logic.TranslationService.provider.translate(iconClasses[this.type].screenReaderContextKey, iconClasses[this.type].screenReaderContextDefault);
|
|
14761
|
+
}
|
|
14762
|
+
}
|
|
14763
|
+
});
|
|
15332
14764
|
const _hoisted_1$a = {
|
|
15333
|
-
|
|
15334
|
-
|
|
15335
|
-
const _hoisted_2$8 = {
|
|
15336
|
-
role: "alert"
|
|
14765
|
+
key: 0,
|
|
14766
|
+
class: "sr-only"
|
|
15337
14767
|
};
|
|
15338
|
-
function _sfc_render$
|
|
15339
|
-
|
|
15340
|
-
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
class: ["
|
|
15344
|
-
}
|
|
15345
|
-
|
|
15346
|
-
},
|
|
15347
|
-
|
|
15348
|
-
|
|
15349
|
-
|
|
15350
|
-
|
|
15351
|
-
|
|
15352
|
-
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
|
|
15356
|
-
|
|
15357
|
-
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15362
|
-
|
|
15363
|
-
|
|
15364
|
-
|
|
15365
|
-
|
|
15366
|
-
|
|
15367
|
-
|
|
15368
|
-
|
|
15369
|
-
|
|
15370
|
-
|
|
15371
|
-
|
|
15372
|
-
|
|
15373
|
-
|
|
15374
|
-
}),
|
|
15375
|
-
class: "loader__spinner-3-circle4 loader__circle loader__circle--4"
|
|
15376
|
-
})])], -1)), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("div", {
|
|
15377
|
-
ref: "loader-text",
|
|
15378
|
-
class: vue.normalizeClass(["loader__wait-text", {
|
|
15379
|
-
"loader--delay": _ctx.delay
|
|
15380
|
-
}]),
|
|
15381
|
-
tabindex: "-1"
|
|
15382
|
-
}, [vue.createElementVNode("span", _hoisted_2$8, [vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createTextVNode(vue.toDisplayString(_ctx.$t("fkui.loader.wait.text", _ctx.defaultLoadingText)), 1)])])], 2)])], 16), [[vue.vShow, _ctx.show]])], 8, ["to", "disabled"]);
|
|
14768
|
+
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14769
|
+
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
14770
|
+
const _component_i_flex_item = vue.resolveComponent("i-flex-item");
|
|
14771
|
+
const _component_i_flex = vue.resolveComponent("i-flex");
|
|
14772
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
14773
|
+
class: vue.normalizeClass(["message-box", [_ctx.messageBoxType, _ctx.bannerType]])
|
|
14774
|
+
}, [_ctx.provideScreenReaderContext ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$a, vue.toDisplayString(_ctx.screenReaderContext()), 1)) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createVNode(_component_i_flex, {
|
|
14775
|
+
gap: "2x"
|
|
14776
|
+
}, {
|
|
14777
|
+
default: vue.withCtx(() => [_ctx.layout === "short" ? (vue.openBlock(), vue.createBlock(_component_i_flex_item, {
|
|
14778
|
+
key: 0,
|
|
14779
|
+
class: "message-box__icon",
|
|
14780
|
+
shrink: "",
|
|
14781
|
+
align: "center"
|
|
14782
|
+
}, {
|
|
14783
|
+
default: vue.withCtx(() => [vue.createElementVNode("span", {
|
|
14784
|
+
class: vue.normalizeClass(["icon-stack", _ctx.stackTypeClass])
|
|
14785
|
+
}, [vue.createVNode(_component_f_icon, {
|
|
14786
|
+
class: vue.normalizeClass(_ctx.classType),
|
|
14787
|
+
name: _ctx.symbol
|
|
14788
|
+
}, null, 8, ["class", "name"]), _cache[0] || (_cache[0] = vue.createTextVNode()), vue.createVNode(_component_f_icon, {
|
|
14789
|
+
class: vue.normalizeClass(_ctx.classIcon),
|
|
14790
|
+
name: _ctx.sign
|
|
14791
|
+
}, null, 8, ["class", "name"])], 2)]),
|
|
14792
|
+
_: 1
|
|
14793
|
+
})) : vue.createCommentVNode("", true), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createVNode(_component_i_flex_item, {
|
|
14794
|
+
class: "message-box__content",
|
|
14795
|
+
grow: "",
|
|
14796
|
+
align: "center"
|
|
14797
|
+
}, {
|
|
14798
|
+
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(_ctx.layout === "short" ? {} : {
|
|
14799
|
+
headingSlotClass: _ctx.headingClass
|
|
14800
|
+
})))]),
|
|
14801
|
+
_: 3
|
|
14802
|
+
})]),
|
|
14803
|
+
_: 3
|
|
14804
|
+
})], 2);
|
|
15383
14805
|
}
|
|
15384
|
-
const
|
|
14806
|
+
const FMessageBox = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9]]);
|
|
15385
14807
|
function findOverflowIndex(totalWidth, elements) {
|
|
15386
14808
|
let sum = 0;
|
|
15387
14809
|
const index = elements.findIndex((element) => {
|
|
@@ -15431,7 +14853,7 @@ const upKeys = ["Up", "ArrowUp"];
|
|
|
15431
14853
|
const downKeys = ["Down", "ArrowDown"];
|
|
15432
14854
|
const verticalKeys = [...upKeys, ...downKeys];
|
|
15433
14855
|
const preventKeys = ["Tab", "Left", "Right", "ArrowLeft", "ArrowRight", "Home", "End", " ", "Spacebar", "Enter", ...verticalKeys];
|
|
15434
|
-
const _sfc_main$
|
|
14856
|
+
const _sfc_main$9 = vue.defineComponent({
|
|
15435
14857
|
name: "FNavigationMenu",
|
|
15436
14858
|
components: {
|
|
15437
14859
|
FIcon,
|
|
@@ -15779,14 +15201,14 @@ const _hoisted_6$2 = {
|
|
|
15779
15201
|
class: "imenu__popup-item",
|
|
15780
15202
|
role: "none"
|
|
15781
15203
|
};
|
|
15782
|
-
const _hoisted_7$
|
|
15204
|
+
const _hoisted_7$1 = {
|
|
15783
15205
|
class: "imenu__list__anchor-container"
|
|
15784
15206
|
};
|
|
15785
|
-
const _hoisted_8$
|
|
15207
|
+
const _hoisted_8$1 = ["aria-expanded"];
|
|
15786
15208
|
const _hoisted_9$1 = {
|
|
15787
15209
|
class: "sr-only"
|
|
15788
15210
|
};
|
|
15789
|
-
function _sfc_render$
|
|
15211
|
+
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
15790
15212
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
15791
15213
|
const _component_i_popup_menu = vue.resolveComponent("i-popup-menu");
|
|
15792
15214
|
return vue.openBlock(), vue.createElementBlock("nav", {
|
|
@@ -15821,7 +15243,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15821
15243
|
ref: "popup-item",
|
|
15822
15244
|
class: vue.normalizeClass(_ctx.popupItemClasses),
|
|
15823
15245
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.togglePopup(true))
|
|
15824
|
-
}, [vue.createElementVNode("div", _hoisted_7$
|
|
15246
|
+
}, [vue.createElementVNode("div", _hoisted_7$1, [vue.createElementVNode("a", {
|
|
15825
15247
|
ref: "popup-anchor",
|
|
15826
15248
|
tabindex: "0",
|
|
15827
15249
|
class: "imenu__list__anchor",
|
|
@@ -15831,7 +15253,7 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15831
15253
|
}, [vue.createElementVNode("span", _hoisted_9$1, [vue.createElementVNode("span", null, vue.toDisplayString(_ctx.popupMenuSrText) + " ", 1)]), vue.createTextVNode(" " + vue.toDisplayString(_ctx.popupLabel) + " ", 1), vue.createVNode(_component_f_icon, {
|
|
15832
15254
|
name: "arrow-down",
|
|
15833
15255
|
class: "imenu__list__anchor-icon-right"
|
|
15834
|
-
})], 8, _hoisted_8$
|
|
15256
|
+
})], 8, _hoisted_8$1)])], 2)])) : vue.createCommentVNode("", true)], 32), _cache[7] || (_cache[7] = vue.createTextVNode()), vue.createVNode(_component_i_popup_menu, {
|
|
15835
15257
|
ref: "popup-menu",
|
|
15836
15258
|
modelValue: _ctx.selectedItem,
|
|
15837
15259
|
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.selectedItem = $event),
|
|
@@ -15847,9 +15269,9 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15847
15269
|
onClose: _cache[5] || (_cache[5] = ($event) => _ctx.togglePopup(false))
|
|
15848
15270
|
}, null, 8, ["modelValue", "focused-item", "items", "is-open", "anchor", "selected-menu-item-screen-reader-text", "aria-label", "onSelect"])], 10, _hoisted_1$9);
|
|
15849
15271
|
}
|
|
15850
|
-
const FNavigationMenu = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15272
|
+
const FNavigationMenu = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8]]);
|
|
15851
15273
|
const EVENTS = ["online", "offline"];
|
|
15852
|
-
const _sfc_main$
|
|
15274
|
+
const _sfc_main$8 = vue.defineComponent({
|
|
15853
15275
|
name: "FOffline",
|
|
15854
15276
|
components: {
|
|
15855
15277
|
FIcon,
|
|
@@ -15909,7 +15331,7 @@ const _hoisted_4$3 = {
|
|
|
15909
15331
|
class: "offline__content"
|
|
15910
15332
|
};
|
|
15911
15333
|
const _hoisted_5$2 = ["aria-hidden"];
|
|
15912
|
-
function _sfc_render$
|
|
15334
|
+
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
15913
15335
|
const _component_f_icon = vue.resolveComponent("f-icon");
|
|
15914
15336
|
const _component_i_flex_item = vue.resolveComponent("i-flex-item");
|
|
15915
15337
|
const _component_i_flex = vue.resolveComponent("i-flex");
|
|
@@ -15945,8 +15367,8 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
15945
15367
|
"aria-hidden": _ctx.shouldNotRead ? "true" : void 0
|
|
15946
15368
|
}, "\n Din internetuppkoppling fungerar igen\n ", 8, _hoisted_5$2), [[vue.vShow, _ctx.isOnline]])], 8, _hoisted_1$8);
|
|
15947
15369
|
}
|
|
15948
|
-
const FOffline = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15949
|
-
const _sfc_main$
|
|
15370
|
+
const FOffline = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7]]);
|
|
15371
|
+
const _sfc_main$7 = vue.defineComponent({
|
|
15950
15372
|
name: "FOutputField",
|
|
15951
15373
|
components: {
|
|
15952
15374
|
FLabel
|
|
@@ -15983,7 +15405,7 @@ const _hoisted_1$7 = {
|
|
|
15983
15405
|
class: "output-field"
|
|
15984
15406
|
};
|
|
15985
15407
|
const _hoisted_2$5 = ["id", "for"];
|
|
15986
|
-
function _sfc_render$
|
|
15408
|
+
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
15987
15409
|
const _component_f_label = vue.resolveComponent("f-label");
|
|
15988
15410
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [vue.createVNode(_component_f_label, {
|
|
15989
15411
|
for: _ctx.id
|
|
@@ -16000,62 +15422,26 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
16000
15422
|
class: "output-field__output"
|
|
16001
15423
|
}, _ctx.$attrs), [vue.renderSlot(_ctx.$slots, "default")], 16, _hoisted_2$5)]);
|
|
16002
15424
|
}
|
|
16003
|
-
const FOutputField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16004
|
-
|
|
16005
|
-
const srStdLogoAltText = t("fkui.page-header.logo.alt-text", "Försäkringskassan");
|
|
16006
|
-
const srStdRouterLinkLabel = t("fkui.page-header.router.link.label", "gå till startsidan");
|
|
16007
|
-
if (hasRouterLink && routerLinkLabel !== "") {
|
|
16008
|
-
return `${srStdLogoAltText} ${routerLinkLabel}`;
|
|
16009
|
-
} else if (hasRouterLink) {
|
|
16010
|
-
return `${srStdLogoAltText}, ${srStdRouterLinkLabel}`;
|
|
16011
|
-
} else {
|
|
16012
|
-
return srStdLogoAltText;
|
|
16013
|
-
}
|
|
16014
|
-
}
|
|
16015
|
-
const _sfc_main$7 = vue.defineComponent({
|
|
15425
|
+
const FOutputField = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6]]);
|
|
15426
|
+
const _sfc_main$6 = vue.defineComponent({
|
|
16016
15427
|
name: "FPageHeader",
|
|
16017
15428
|
components: {
|
|
16018
15429
|
ISkipLink
|
|
16019
15430
|
},
|
|
16020
|
-
mixins: [TranslationMixin],
|
|
16021
15431
|
inheritAttrs: true,
|
|
16022
15432
|
props: {
|
|
16023
|
-
/** Setting the logo sizes small, large or responsive. */
|
|
16024
|
-
logoSize: {
|
|
16025
|
-
type: String,
|
|
16026
|
-
default: "responsive",
|
|
16027
|
-
required: false,
|
|
16028
|
-
validator(value) {
|
|
16029
|
-
return ["small", "large", "responsive"].includes(value);
|
|
16030
|
-
}
|
|
16031
|
-
},
|
|
16032
15433
|
/**
|
|
16033
15434
|
* Render skiplink.
|
|
16034
15435
|
*
|
|
16035
|
-
* When set to a non-empty string
|
|
15436
|
+
* When set to a non-empty string the skiplink feature is enabled.
|
|
16036
15437
|
* The string is the id of the element to move focus to.
|
|
16037
15438
|
*
|
|
16038
|
-
* When set to
|
|
16039
|
-
* set the element id to move focus to.
|
|
16040
|
-
*
|
|
16041
|
-
* When set to `false` or empty string the skiplink feature is disabled.
|
|
16042
|
-
*
|
|
16043
|
-
* Using a boolean is deprecated. Leave unset or a non-empty string.
|
|
15439
|
+
* When set to empty string (default) the skiplink feature is disabled.
|
|
16044
15440
|
*/
|
|
16045
15441
|
skipLink: {
|
|
16046
|
-
type: [String, Boolean],
|
|
16047
|
-
required: false,
|
|
16048
|
-
default: ""
|
|
16049
|
-
},
|
|
16050
|
-
/**
|
|
16051
|
-
* Target for skiplink.
|
|
16052
|
-
*
|
|
16053
|
-
* @deprecated Use `skipLink` prop with a non-empty string instead.
|
|
16054
|
-
*/
|
|
16055
|
-
skipLinkHref: {
|
|
16056
15442
|
type: String,
|
|
16057
15443
|
required: false,
|
|
16058
|
-
default: "
|
|
15444
|
+
default: ""
|
|
16059
15445
|
},
|
|
16060
15446
|
/**
|
|
16061
15447
|
* HTML element type for header.
|
|
@@ -16066,73 +15452,21 @@ const _sfc_main$7 = vue.defineComponent({
|
|
|
16066
15452
|
validator(value) {
|
|
16067
15453
|
return ["span", "h1"].includes(value);
|
|
16068
15454
|
}
|
|
16069
|
-
},
|
|
16070
|
-
/**
|
|
16071
|
-
* Target for router-link via path.
|
|
16072
|
-
* (Behaviour from using both name and path in combination is undefined.)
|
|
16073
|
-
*/
|
|
16074
|
-
routerLinkPath: {
|
|
16075
|
-
type: String,
|
|
16076
|
-
required: false,
|
|
16077
|
-
default: ""
|
|
16078
|
-
},
|
|
16079
|
-
/**
|
|
16080
|
-
* Target for router-link via name.
|
|
16081
|
-
* (Behaviour from using both name and path in combination is undefined.)
|
|
16082
|
-
*/
|
|
16083
|
-
routerLinkName: {
|
|
16084
|
-
type: String,
|
|
16085
|
-
required: false,
|
|
16086
|
-
default: ""
|
|
16087
|
-
},
|
|
16088
|
-
/**
|
|
16089
|
-
* Label to override the router-link label when router-link is present.
|
|
16090
|
-
*/
|
|
16091
|
-
routerLinkLabel: {
|
|
16092
|
-
type: String,
|
|
16093
|
-
required: false,
|
|
16094
|
-
default: ""
|
|
16095
15455
|
}
|
|
16096
15456
|
},
|
|
16097
15457
|
computed: {
|
|
16098
|
-
logoClass() {
|
|
16099
|
-
return `page-header__logo--${this.logoSize}`;
|
|
16100
|
-
},
|
|
16101
|
-
hasRouterLink() {
|
|
16102
|
-
return Boolean(this.routerLinkName || this.routerLinkPath);
|
|
16103
|
-
},
|
|
16104
|
-
routerLinkTo() {
|
|
16105
|
-
const {
|
|
16106
|
-
routerLinkName,
|
|
16107
|
-
routerLinkPath
|
|
16108
|
-
} = this;
|
|
16109
|
-
if (routerLinkName) {
|
|
16110
|
-
return {
|
|
16111
|
-
name: routerLinkName
|
|
16112
|
-
};
|
|
16113
|
-
}
|
|
16114
|
-
if (routerLinkPath) {
|
|
16115
|
-
return {
|
|
16116
|
-
path: routerLinkPath
|
|
16117
|
-
};
|
|
16118
|
-
}
|
|
16119
|
-
return null;
|
|
16120
|
-
},
|
|
16121
15458
|
skipLinkAnchor() {
|
|
16122
15459
|
const {
|
|
16123
|
-
skipLink
|
|
16124
|
-
skipLinkHref
|
|
15460
|
+
skipLink
|
|
16125
15461
|
} = this;
|
|
16126
|
-
if (skipLink ===
|
|
15462
|
+
if (skipLink === "") {
|
|
16127
15463
|
return null;
|
|
16128
|
-
} else if (skipLink === true) {
|
|
16129
|
-
return skipLinkHref;
|
|
16130
15464
|
} else {
|
|
16131
15465
|
return `#${skipLink}`;
|
|
16132
15466
|
}
|
|
16133
15467
|
},
|
|
16134
|
-
|
|
16135
|
-
return
|
|
15468
|
+
hasLogo() {
|
|
15469
|
+
return Boolean(this.$slots.logo);
|
|
16136
15470
|
}
|
|
16137
15471
|
}
|
|
16138
15472
|
});
|
|
@@ -16147,124 +15481,111 @@ const _hoisted_3$3 = {
|
|
|
16147
15481
|
class: "page-header"
|
|
16148
15482
|
};
|
|
16149
15483
|
const _hoisted_4$2 = {
|
|
15484
|
+
key: 0,
|
|
16150
15485
|
class: "page-header__logo"
|
|
16151
15486
|
};
|
|
16152
|
-
const _hoisted_5$1 =
|
|
16153
|
-
const _hoisted_6$1 = ["aria-label"];
|
|
16154
|
-
const _hoisted_7$1 = {
|
|
15487
|
+
const _hoisted_5$1 = {
|
|
16155
15488
|
class: "page-header__right"
|
|
16156
15489
|
};
|
|
16157
|
-
const
|
|
15490
|
+
const _hoisted_6$1 = {
|
|
16158
15491
|
class: "page-header__right-slot"
|
|
16159
15492
|
};
|
|
16160
|
-
function _sfc_render$
|
|
15493
|
+
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16161
15494
|
const _component_i_skip_link = vue.resolveComponent("i-skip-link");
|
|
16162
|
-
const _component_router_link = vue.resolveComponent("router-link");
|
|
16163
15495
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [_ctx.skipLinkAnchor ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$4, [vue.createVNode(_component_i_skip_link, {
|
|
16164
15496
|
href: _ctx.skipLinkAnchor
|
|
16165
15497
|
}, {
|
|
16166
15498
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "skip-link-text")]),
|
|
16167
15499
|
_: 3
|
|
16168
|
-
}, 8, ["href"])])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_3$3, [vue.
|
|
16169
|
-
key: 0,
|
|
16170
|
-
to: _ctx.routerLinkTo
|
|
16171
|
-
}, {
|
|
16172
|
-
default: vue.withCtx(() => [vue.createElementVNode("span", {
|
|
16173
|
-
class: vue.normalizeClass(_ctx.logoClass),
|
|
16174
|
-
"aria-label": _ctx.altLogoText,
|
|
16175
|
-
role: "img"
|
|
16176
|
-
}, null, 10, _hoisted_5$1)]),
|
|
16177
|
-
_: 1
|
|
16178
|
-
}, 8, ["to"])) : (vue.openBlock(), vue.createElementBlock("span", {
|
|
16179
|
-
key: 1,
|
|
16180
|
-
class: vue.normalizeClass(_ctx.logoClass),
|
|
16181
|
-
"aria-label": _ctx.altLogoText,
|
|
16182
|
-
role: "img"
|
|
16183
|
-
}, null, 10, _hoisted_6$1))])]), _cache[0] || (_cache[0] = vue.createTextVNode()), (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.headerTag), {
|
|
15500
|
+
}, 8, ["href"])])) : vue.createCommentVNode("", true), _cache[2] || (_cache[2] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_3$3, [_ctx.hasLogo ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [vue.renderSlot(_ctx.$slots, "logo")])) : vue.createCommentVNode("", true), _cache[0] || (_cache[0] = vue.createTextVNode()), (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.headerTag), {
|
|
16184
15501
|
class: "page-header__app-name"
|
|
16185
15502
|
}, {
|
|
16186
15503
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
|
|
16187
15504
|
_: 3
|
|
16188
|
-
})), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("div",
|
|
15505
|
+
})), _cache[1] || (_cache[1] = vue.createTextVNode()), vue.createElementVNode("div", _hoisted_5$1, [vue.createElementVNode("div", _hoisted_6$1, [vue.renderSlot(_ctx.$slots, "right")])])], 512)]);
|
|
16189
15506
|
}
|
|
16190
|
-
const FPageHeader = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
15507
|
+
const FPageHeader = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5]]);
|
|
15508
|
+
const _hoisted_1$5 = {
|
|
15509
|
+
class: "progress"
|
|
15510
|
+
};
|
|
15511
|
+
const _hoisted_2$3 = ["aria-label", "aria-valuenow", "aria-valuetext"];
|
|
15512
|
+
const _hoisted_3$2 = {
|
|
15513
|
+
class: "sr-only"
|
|
15514
|
+
};
|
|
16191
15515
|
const MIN_VALUE = 0;
|
|
16192
15516
|
const MAX_VALUE = 100;
|
|
16193
|
-
|
|
16194
|
-
|
|
16195
|
-
}
|
|
16196
|
-
const _sfc_main$6 = vue.defineComponent({
|
|
16197
|
-
name: "FProgressbar",
|
|
15517
|
+
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
15518
|
+
__name: "FProgressbar",
|
|
16198
15519
|
props: {
|
|
16199
15520
|
/**
|
|
16200
|
-
* Sets the progress. Higher value indicates further progress.
|
|
15521
|
+
* Sets the progress. Higher value indicates further progress.
|
|
15522
|
+
*
|
|
15523
|
+
* Value must be in range 0-100.
|
|
16201
15524
|
*/
|
|
16202
15525
|
value: {
|
|
16203
15526
|
type: Number,
|
|
16204
15527
|
required: true,
|
|
16205
15528
|
validator(value) {
|
|
16206
|
-
return value >=
|
|
15529
|
+
return value >= 0 && value <= 100;
|
|
16207
15530
|
}
|
|
16208
15531
|
},
|
|
16209
15532
|
/**
|
|
16210
|
-
* Text that the screenreader will read
|
|
15533
|
+
* Text that the screenreader will read.
|
|
15534
|
+
*
|
|
15535
|
+
* `%VALUE%` can be used as a placeholder for the actual value e.g
|
|
15536
|
+
* `"You have uploaded %VALUE% percent"`.
|
|
16211
15537
|
*/
|
|
16212
15538
|
valueText: {
|
|
16213
15539
|
type: String,
|
|
16214
15540
|
required: false,
|
|
16215
15541
|
default: "Du har slutfört %VALUE% %."
|
|
16216
15542
|
},
|
|
16217
|
-
|
|
15543
|
+
/**
|
|
15544
|
+
* Accessible name for this progressbar. Should describe the purpose of this
|
|
15545
|
+
* progressbar.
|
|
15546
|
+
*/
|
|
15547
|
+
/* eslint-disable-next-line vue/prop-name-casing -- vue does not allow ariaLabel as a prop as it collides with internal types */
|
|
15548
|
+
"aria-label": {
|
|
16218
15549
|
type: String,
|
|
16219
15550
|
required: true
|
|
16220
15551
|
}
|
|
16221
15552
|
},
|
|
16222
|
-
|
|
16223
|
-
|
|
16224
|
-
|
|
16225
|
-
|
|
16226
|
-
|
|
16227
|
-
|
|
16228
|
-
|
|
16229
|
-
|
|
16230
|
-
|
|
16231
|
-
|
|
16232
|
-
|
|
16233
|
-
|
|
16234
|
-
|
|
16235
|
-
|
|
16236
|
-
|
|
16237
|
-
|
|
16238
|
-
|
|
16239
|
-
|
|
16240
|
-
|
|
16241
|
-
|
|
16242
|
-
|
|
16243
|
-
|
|
15553
|
+
setup(__props) {
|
|
15554
|
+
const props = __props;
|
|
15555
|
+
const ariaLabel = props.ariaLabel;
|
|
15556
|
+
function clamp(val) {
|
|
15557
|
+
return Math.round(Math.min(Math.max(val || 0, MIN_VALUE), MAX_VALUE));
|
|
15558
|
+
}
|
|
15559
|
+
const progressValueNow = vue.computed(() => clamp(props.value));
|
|
15560
|
+
const cssWidth = vue.computed(() => `width: ${progressValueNow.value}%`);
|
|
15561
|
+
const progressBarClass = vue.computed(() => {
|
|
15562
|
+
if (progressValueNow.value === MIN_VALUE) {
|
|
15563
|
+
return "progress__meter--pending";
|
|
15564
|
+
} else if (progressValueNow.value === MAX_VALUE) {
|
|
15565
|
+
return "progress__meter--finished";
|
|
15566
|
+
} else {
|
|
15567
|
+
return "progress__meter--inprogress";
|
|
15568
|
+
}
|
|
15569
|
+
});
|
|
15570
|
+
const progressText = vue.computed(() => {
|
|
15571
|
+
return `${props.valueText.replace("%VALUE%", progressValueNow.value.toString())}`;
|
|
15572
|
+
});
|
|
15573
|
+
return (_ctx, _cache) => {
|
|
15574
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createElementVNode("span", {
|
|
15575
|
+
class: vue.normalizeClass(["progress__meter", progressBarClass.value]),
|
|
15576
|
+
role: "progressbar",
|
|
15577
|
+
"aria-label": vue.unref(ariaLabel),
|
|
15578
|
+
"aria-valuemin": "0",
|
|
15579
|
+
"aria-valuemax": "100",
|
|
15580
|
+
"aria-valuenow": progressValueNow.value,
|
|
15581
|
+
"aria-valuetext": progressText.value,
|
|
15582
|
+
style: vue.normalizeStyle(cssWidth.value)
|
|
15583
|
+
}, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(progressText.value), 1)], 14, _hoisted_2$3)]);
|
|
15584
|
+
};
|
|
16244
15585
|
}
|
|
16245
15586
|
});
|
|
16246
|
-
const _hoisted_1$5 = {
|
|
16247
|
-
class: "progress"
|
|
16248
|
-
};
|
|
16249
|
-
const _hoisted_2$3 = ["aria-label", "aria-valuenow", "aria-valuetext"];
|
|
16250
|
-
const _hoisted_3$2 = {
|
|
16251
|
-
class: "sr-only"
|
|
16252
|
-
};
|
|
16253
|
-
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16254
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [vue.createElementVNode("span", {
|
|
16255
|
-
class: vue.normalizeClass(["progress__meter", _ctx.progressBarClass]),
|
|
16256
|
-
role: "progressbar",
|
|
16257
|
-
"aria-label": _ctx.ariaLabel,
|
|
16258
|
-
"aria-valuemin": "0",
|
|
16259
|
-
"aria-valuemax": "100",
|
|
16260
|
-
"aria-valuenow": _ctx.progressValueNow,
|
|
16261
|
-
"aria-valuetext": _ctx.progressText,
|
|
16262
|
-
style: vue.normalizeStyle(_ctx.cssWidth)
|
|
16263
|
-
}, [vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(_ctx.progressText), 1)], 14, _hoisted_2$3)]);
|
|
16264
|
-
}
|
|
16265
|
-
const FProgressbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6]]);
|
|
16266
15587
|
const anyType = [String, Object, Array, Number, Date, Boolean];
|
|
16267
|
-
const _sfc_main$
|
|
15588
|
+
const _sfc_main$4 = vue.defineComponent({
|
|
16268
15589
|
name: "FRadioField",
|
|
16269
15590
|
inheritAttrs: false,
|
|
16270
15591
|
props: {
|
|
@@ -16430,7 +15751,7 @@ const _hoisted_4$1 = {
|
|
|
16430
15751
|
key: 0,
|
|
16431
15752
|
class: "radio-button__details"
|
|
16432
15753
|
};
|
|
16433
|
-
function _sfc_render$
|
|
15754
|
+
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16434
15755
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
16435
15756
|
class: vue.normalizeClass(["radio-button", _ctx.disabledClass]),
|
|
16436
15757
|
onValidity: _cache[0] || (_cache[0] = (...args) => _ctx.onValidity && _ctx.onValidity(...args))
|
|
@@ -16456,70 +15777,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
16456
15777
|
_: 3
|
|
16457
15778
|
}, 8, ["onEnter", "onAfterEnter", "onLeave"])) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true)], 10, _hoisted_2$2)], 34);
|
|
16458
15779
|
}
|
|
16459
|
-
const FRadioField = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
16460
|
-
const _sfc_main$4 = vue.defineComponent({
|
|
16461
|
-
name: "FRadioGroup",
|
|
16462
|
-
components: {
|
|
16463
|
-
FFieldset
|
|
16464
|
-
},
|
|
16465
|
-
inheritAttrs: false,
|
|
16466
|
-
props: {
|
|
16467
|
-
/**
|
|
16468
|
-
* The id for the fieldset id attribute.
|
|
16469
|
-
* If the prop is not set the id will be generated.
|
|
16470
|
-
*/
|
|
16471
|
-
id: {
|
|
16472
|
-
type: String,
|
|
16473
|
-
required: false,
|
|
16474
|
-
default: () => logic.ElementIdService.generateElementId()
|
|
16475
|
-
},
|
|
16476
|
-
/**
|
|
16477
|
-
* The name of the radio group.
|
|
16478
|
-
* The radio group fields in the group will use the same name.
|
|
16479
|
-
*/
|
|
16480
|
-
name: {
|
|
16481
|
-
type: String,
|
|
16482
|
-
required: true
|
|
16483
|
-
},
|
|
16484
|
-
/**
|
|
16485
|
-
* If radio buttons should be aligned horizontally.
|
|
16486
|
-
* If the prop is not set the radio buttons will be aligned vertically.
|
|
16487
|
-
* Default: `false`
|
|
16488
|
-
*/
|
|
16489
|
-
isHorizontal: {
|
|
16490
|
-
type: Boolean,
|
|
16491
|
-
required: false
|
|
16492
|
-
}
|
|
16493
|
-
}
|
|
16494
|
-
});
|
|
16495
|
-
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16496
|
-
const _component_f_fieldset = vue.resolveComponent("f-fieldset");
|
|
16497
|
-
return vue.openBlock(), vue.createBlock(_component_f_fieldset, vue.mergeProps({
|
|
16498
|
-
id: _ctx.id,
|
|
16499
|
-
name: _ctx.name
|
|
16500
|
-
}, _ctx.$attrs, {
|
|
16501
|
-
horizontal: _ctx.isHorizontal
|
|
16502
|
-
}), vue.createSlots({
|
|
16503
|
-
label: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "label")]),
|
|
16504
|
-
description: vue.withCtx(({
|
|
16505
|
-
descriptionClass,
|
|
16506
|
-
discreteDescriptionClass
|
|
16507
|
-
}) => [vue.renderSlot(_ctx.$slots, "description", vue.normalizeProps(vue.guardReactiveProps({
|
|
16508
|
-
descriptionClass,
|
|
16509
|
-
discreteDescriptionClass
|
|
16510
|
-
})))]),
|
|
16511
|
-
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message")]),
|
|
16512
|
-
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps({
|
|
16513
|
-
indentClass: "indent"
|
|
16514
|
-
})))]),
|
|
16515
|
-
_: 2
|
|
16516
|
-
}, [_ctx.$slots.tooltip ? {
|
|
16517
|
-
name: "tooltip",
|
|
16518
|
-
fn: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "tooltip")]),
|
|
16519
|
-
key: "0"
|
|
16520
|
-
} : void 0]), 1040, ["id", "name", "horizontal"]);
|
|
16521
|
-
}
|
|
16522
|
-
const FRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
|
|
15780
|
+
const FRadioField = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
|
|
16523
15781
|
const _sfc_main$3 = vue.defineComponent({
|
|
16524
15782
|
name: "FStaticField",
|
|
16525
15783
|
components: {
|
|
@@ -16538,11 +15796,11 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
16538
15796
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "label")]),
|
|
16539
15797
|
description: vue.withCtx(({
|
|
16540
15798
|
descriptionClass,
|
|
16541
|
-
|
|
16542
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
15799
|
+
formatDescriptionClass
|
|
15800
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
16543
15801
|
descriptionClass,
|
|
16544
|
-
|
|
16545
|
-
})
|
|
15802
|
+
formatDescriptionClass
|
|
15803
|
+
})]),
|
|
16546
15804
|
_: 2
|
|
16547
15805
|
}, [_ctx.$slots.tooltip ? {
|
|
16548
15806
|
name: "tooltip",
|
|
@@ -16718,11 +15976,11 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
16718
15976
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
|
|
16719
15977
|
description: vue.withCtx(({
|
|
16720
15978
|
descriptionClass,
|
|
16721
|
-
|
|
16722
|
-
}) => [vue.renderSlot(_ctx.$slots, "description",
|
|
15979
|
+
formatDescriptionClass
|
|
15980
|
+
}) => [vue.renderSlot(_ctx.$slots, "description", {
|
|
16723
15981
|
descriptionClass,
|
|
16724
|
-
|
|
16725
|
-
})
|
|
15982
|
+
formatDescriptionClass
|
|
15983
|
+
})]),
|
|
16726
15984
|
"error-message": vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "error-message", vue.normalizeProps(vue.guardReactiveProps({
|
|
16727
15985
|
hasError: _ctx.hasError,
|
|
16728
15986
|
validationMessage: _ctx.validationMessage
|
|
@@ -16845,7 +16103,7 @@ const _sfc_main$1 = vue.defineComponent({
|
|
|
16845
16103
|
default: false
|
|
16846
16104
|
}
|
|
16847
16105
|
},
|
|
16848
|
-
emits: ["cancel", "
|
|
16106
|
+
emits: ["cancel", "completed", "update:modelValue"],
|
|
16849
16107
|
data() {
|
|
16850
16108
|
return {
|
|
16851
16109
|
steps: []
|
|
@@ -16924,10 +16182,8 @@ const _sfc_main$1 = vue.defineComponent({
|
|
|
16924
16182
|
if (open >= 0) {
|
|
16925
16183
|
const step = this.steps[open - 1];
|
|
16926
16184
|
this.$emit("update:modelValue", step.key);
|
|
16927
|
-
this.$emit("change", step.key);
|
|
16928
16185
|
} else {
|
|
16929
16186
|
this.$emit("update:modelValue", null);
|
|
16930
|
-
this.$emit("change", null);
|
|
16931
16187
|
}
|
|
16932
16188
|
},
|
|
16933
16189
|
cancel(isFinalStep) {
|
|
@@ -17293,21 +16549,19 @@ exports.ErrorData = ErrorData;
|
|
|
17293
16549
|
exports.ErrorPlugin = ErrorPlugin;
|
|
17294
16550
|
exports.ErrorViewData = ErrorViewData;
|
|
17295
16551
|
exports.EventBus = EventBus;
|
|
17296
|
-
exports.FBadge = _sfc_main$
|
|
17297
|
-
exports.FBankAccountNumberTextField = _sfc_main$
|
|
17298
|
-
exports.FBankgiroTextField = _sfc_main$
|
|
16552
|
+
exports.FBadge = _sfc_main$1b;
|
|
16553
|
+
exports.FBankAccountNumberTextField = _sfc_main$y;
|
|
16554
|
+
exports.FBankgiroTextField = _sfc_main$x;
|
|
17299
16555
|
exports.FCalendar = FCalendar;
|
|
17300
16556
|
exports.FCalendarDay = FCalendarDay;
|
|
17301
|
-
exports.FCard = _sfc_main$
|
|
16557
|
+
exports.FCard = _sfc_main$W;
|
|
17302
16558
|
exports.FCheckboxField = FCheckboxField;
|
|
17303
|
-
exports.
|
|
17304
|
-
exports.FCheckboxGroupField = FCheckboxField;
|
|
17305
|
-
exports.FClearingnumberTextField = _sfc_main$z;
|
|
16559
|
+
exports.FClearingnumberTextField = _sfc_main$w;
|
|
17306
16560
|
exports.FConfirmModal = FConfirmModal;
|
|
17307
16561
|
exports.FContextMenu = FContextMenu;
|
|
17308
16562
|
exports.FCrudButton = FCrudButton;
|
|
17309
16563
|
exports.FCrudDataset = FCrudDataset;
|
|
17310
|
-
exports.FCurrencyTextField = _sfc_main$
|
|
16564
|
+
exports.FCurrencyTextField = _sfc_main$A;
|
|
17311
16565
|
exports.FDataTable = FDataTable;
|
|
17312
16566
|
exports.FDatepickerField = FDatepickerField;
|
|
17313
16567
|
exports.FDialogueTree = FDialogueTree;
|
|
@@ -17320,11 +16574,8 @@ exports.FExpandableParagraph = FExpandableParagraph;
|
|
|
17320
16574
|
exports.FFieldset = FFieldset;
|
|
17321
16575
|
exports.FFileItem = FFileItem;
|
|
17322
16576
|
exports.FFileSelector = FFileSelector;
|
|
17323
|
-
exports.FForm = FForm;
|
|
17324
16577
|
exports.FFormModal = FFormModal;
|
|
17325
16578
|
exports.FFormModalAction = FValidationFormAction;
|
|
17326
|
-
exports.FFormStep = FFormStep;
|
|
17327
|
-
exports.FFormStepButton = FFormStepButton;
|
|
17328
16579
|
exports.FIcon = FIcon;
|
|
17329
16580
|
exports.FInteractiveTable = FInteractiveTable;
|
|
17330
16581
|
exports.FKUIConfigButtonOrder = FKUIConfigButtonOrder;
|
|
@@ -17335,23 +16586,22 @@ exports.FLayoutRightPanel = FLayoutRightPanel;
|
|
|
17335
16586
|
exports.FLayoutRightPanelService = FLayoutRightPanelService;
|
|
17336
16587
|
exports.FList = FList;
|
|
17337
16588
|
exports.FLoader = FLoader;
|
|
16589
|
+
exports.FLogo = _sfc_main$b;
|
|
17338
16590
|
exports.FMessageBox = FMessageBox;
|
|
17339
16591
|
exports.FModal = FModal;
|
|
17340
16592
|
exports.FNavigationMenu = FNavigationMenu;
|
|
17341
|
-
exports.FNumericTextField = _sfc_main$
|
|
16593
|
+
exports.FNumericTextField = _sfc_main$v;
|
|
17342
16594
|
exports.FOffline = FOffline;
|
|
17343
|
-
exports.FOrganisationsnummerTextField = _sfc_main$
|
|
16595
|
+
exports.FOrganisationsnummerTextField = _sfc_main$q;
|
|
17344
16596
|
exports.FOutputField = FOutputField;
|
|
17345
16597
|
exports.FPageHeader = FPageHeader;
|
|
17346
|
-
exports.FPercentTextField = _sfc_main$
|
|
17347
|
-
exports.FPersonnummerTextField = _sfc_main$
|
|
16598
|
+
exports.FPercentTextField = _sfc_main$r;
|
|
16599
|
+
exports.FPersonnummerTextField = _sfc_main$u;
|
|
17348
16600
|
exports.FPhoneTextField = FPhoneTextField;
|
|
17349
|
-
exports.FPlusgiroTextField = _sfc_main$
|
|
17350
|
-
exports.FPostalCodeTextField = _sfc_main$
|
|
17351
|
-
exports.FProgressbar =
|
|
16601
|
+
exports.FPlusgiroTextField = _sfc_main$t;
|
|
16602
|
+
exports.FPostalCodeTextField = _sfc_main$s;
|
|
16603
|
+
exports.FProgressbar = _sfc_main$5;
|
|
17352
16604
|
exports.FRadioField = FRadioField;
|
|
17353
|
-
exports.FRadioGroup = FRadioGroup;
|
|
17354
|
-
exports.FRadioGroupField = FRadioField;
|
|
17355
16605
|
exports.FSearchTextField = FSearchTextField;
|
|
17356
16606
|
exports.FSelectField = FSelectField;
|
|
17357
16607
|
exports.FSortFilterDataset = FSortFilterDataset;
|
|
@@ -17371,18 +16621,17 @@ exports.FWizard = FWizard;
|
|
|
17371
16621
|
exports.FWizardStep = FWizardStep;
|
|
17372
16622
|
exports.FWizardStepAction = FValidationFormAction;
|
|
17373
16623
|
exports.FormErrorList = FormErrorList;
|
|
17374
|
-
exports.FormStep = FormStep;
|
|
17375
16624
|
exports.IAnimateExpand = IAnimateExpand;
|
|
17376
16625
|
exports.ICalendarMonth = ICalendarMonth;
|
|
17377
16626
|
exports.ICalendarMonthGrid = ICalendarMonthGrid;
|
|
17378
16627
|
exports.ICalendarNavbar = ICalendarNavbar;
|
|
17379
|
-
exports.IComboboxDropdown = _sfc_main$
|
|
17380
|
-
exports.IComboboxToggleButton = _sfc_main$
|
|
16628
|
+
exports.IComboboxDropdown = _sfc_main$O;
|
|
16629
|
+
exports.IComboboxToggleButton = _sfc_main$N;
|
|
17381
16630
|
exports.IFlex = IFlex;
|
|
17382
16631
|
exports.IFlexItem = IFlexItem;
|
|
17383
16632
|
exports.IPopup = IPopup;
|
|
17384
16633
|
exports.IPopupError = IPopupError;
|
|
17385
|
-
exports.IPopupListbox = _sfc_main$
|
|
16634
|
+
exports.IPopupListbox = _sfc_main$S;
|
|
17386
16635
|
exports.IPopupMenu = IPopupMenu;
|
|
17387
16636
|
exports.ISkipLink = ISkipLink;
|
|
17388
16637
|
exports.IValidationForm = FValidationForm;
|
|
@@ -17397,10 +16646,8 @@ exports.TranslationPlugin = TranslationPlugin;
|
|
|
17397
16646
|
exports.UNHANDLED_ERROR_EVENT = UNHANDLED_ERROR_EVENT;
|
|
17398
16647
|
exports.ValidationPlugin = ValidationPlugin;
|
|
17399
16648
|
exports.actionFromKeyboardEvent = actionFromKeyboardEvent;
|
|
17400
|
-
exports.cleanUpElements = cleanUpElements;
|
|
17401
16649
|
exports.config = config;
|
|
17402
16650
|
exports.confirmModal = confirmModal;
|
|
17403
|
-
exports.createFFormProvideOptions = createFFormProvideOptions;
|
|
17404
16651
|
exports.dispatchComponentUnmountEvent = dispatchComponentUnmountEvent;
|
|
17405
16652
|
exports.dispatchComponentValidityEvent = dispatchComponentValidityEvent;
|
|
17406
16653
|
exports.findElementFromVueRef = findElementFromVueRef;
|
|
@@ -17417,9 +16664,7 @@ exports.getHTMLElementFromVueRef = getHTMLElementFromVueRef;
|
|
|
17417
16664
|
exports.getHTMLElementsFromVueRef = getHTMLElementsFromVueRef;
|
|
17418
16665
|
exports.getInputElement = getInputElement;
|
|
17419
16666
|
exports.getParentByName = getParentByName;
|
|
17420
|
-
exports.getRef = getRef;
|
|
17421
16667
|
exports.getSortedHTMLElementsFromVueRef = getSortedHTMLElementsFromVueRef;
|
|
17422
|
-
exports.getTextFromScopedSlot = getTextFromScopedSlot;
|
|
17423
16668
|
exports.handleKeyboardFocusNavigation = handleKeyboardFocusNavigation;
|
|
17424
16669
|
exports.hasParentByName = hasParentByName;
|
|
17425
16670
|
exports.hasSlot = hasSlot;
|
|
@@ -17427,7 +16672,6 @@ exports.includeItem = includeItem;
|
|
|
17427
16672
|
exports.isContextMenuSeparatorItem = isContextMenuSeparatorItem;
|
|
17428
16673
|
exports.isContextMenuTextItem = isContextMenuTextItem;
|
|
17429
16674
|
exports.isDialogueTreeEndQuestion = isDialogueTreeEndQuestion;
|
|
17430
|
-
exports.isFormStepReference = isFormStepReference;
|
|
17431
16675
|
exports.itemEquals = itemEquals;
|
|
17432
16676
|
exports.mountComponent = mountComponent;
|
|
17433
16677
|
exports.openModal = openModal;
|
|
@@ -17437,10 +16681,7 @@ exports.refIsHTMLElementArray = refIsHTMLElementArray;
|
|
|
17437
16681
|
exports.refIsVue = refIsVue;
|
|
17438
16682
|
exports.refIsVueArray = refIsVueArray;
|
|
17439
16683
|
exports.renderSlotText = renderSlotText;
|
|
17440
|
-
exports.setIsOpen = setIsOpen;
|
|
17441
|
-
exports.setRef = setRef;
|
|
17442
16684
|
exports.setRunningContext = setRunningContext;
|
|
17443
|
-
exports.sortComponentsWithErrorsOnDOMOrder = sortComponentsWithErrorsOnDOMOrder;
|
|
17444
16685
|
exports.tableScrollClasses = tableScrollClasses;
|
|
17445
16686
|
exports.tooltipAttachTo = tooltipAttachTo;
|
|
17446
16687
|
exports.useCombobox = useCombobox;
|