@flux-ui/components 3.0.0-next.56 → 3.0.0-next.58
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/component/FluxKanban.vue.d.ts +17 -5
- package/dist/component/FluxKanbanCard.vue.d.ts +1 -0
- package/dist/component/FluxKanbanColumn.vue.d.ts +13 -2
- package/dist/composable/private/useAsyncFilterOptions.d.ts +1 -1
- package/dist/composable/private/useKanban.d.ts +13 -3
- package/dist/data/di.d.ts +29 -0
- package/dist/index.css +152 -32
- package/dist/index.js +801 -176
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/component/FluxKanban.vue +83 -5
- package/src/component/FluxKanbanCard.vue +107 -13
- package/src/component/FluxKanbanColumn.vue +200 -13
- package/src/composable/private/useAsyncFilterOptions.ts +8 -14
- package/src/composable/private/useFilterOption.ts +1 -1
- package/src/composable/private/useKanban.ts +593 -13
- package/src/css/component/FluxKanban.module.scss +205 -0
- package/src/data/di.ts +33 -0
- package/src/data/filter.ts +1 -1
- package/src/css/component/FluxKanbanCard.module.scss +0 -35
- package/src/css/component/FluxKanbanColumn.module.scss +0 -49
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Comment, Fragment, Teleport, Transition, TransitionGroup, cloneVNode, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, customRef, defineComponent, getCurrentInstance, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowReactive, toDisplayString, toHandlers, toRef, unref, useId, useModel, useSlots, useTemplateRef, vModelCheckbox, vModelText, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
|
|
1
|
+
import { Comment, Fragment, Teleport, Text, Transition, TransitionGroup, cloneVNode, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, customRef, defineComponent, getCurrentInstance, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowReactive, toDisplayString, toHandlers, toRef, unref, useId, useModel, useSlots, useTemplateRef, vModelCheckbox, vModelText, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
|
|
2
2
|
import { DateTime } from "luxon";
|
|
3
3
|
//#region \0rolldown/runtime.js
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -4525,17 +4525,17 @@ function he$1(e, t, n) {
|
|
|
4525
4525
|
}
|
|
4526
4526
|
//#endregion
|
|
4527
4527
|
//#region src/composable/private/useAsyncFilterOptions.ts
|
|
4528
|
-
function useAsyncFilterOptions_default(
|
|
4528
|
+
function useAsyncFilterOptions_default(params) {
|
|
4529
4529
|
const { isLoading, loaded } = Z$1();
|
|
4530
|
-
const debouncedModelSearch = Y$1(modelSearch, 150);
|
|
4531
|
-
const fetchOptions = computed(() => loaded(
|
|
4532
|
-
const fetchRelevant = computed(() => loaded(
|
|
4533
|
-
const fetchSearch = computed(() => loaded(
|
|
4530
|
+
const debouncedModelSearch = Y$1(params.modelSearch, 150);
|
|
4531
|
+
const fetchOptions = computed(() => loaded(params.fetchOptions));
|
|
4532
|
+
const fetchRelevant = computed(() => loaded(params.fetchRelevant));
|
|
4533
|
+
const fetchSearch = computed(() => loaded(params.fetchSearch));
|
|
4534
4534
|
const selectedOptions = ref([]);
|
|
4535
4535
|
const visibleOptions = ref([]);
|
|
4536
4536
|
const options = computed(() => {
|
|
4537
4537
|
const options = [];
|
|
4538
|
-
const search = unref(modelSearch);
|
|
4538
|
+
const search = unref(params.modelSearch);
|
|
4539
4539
|
const selected = unref(selectedOptions);
|
|
4540
4540
|
const visible = unref(visibleOptions);
|
|
4541
4541
|
visible.forEach((vo) => options.push(vo));
|
|
@@ -4546,7 +4546,7 @@ function useAsyncFilterOptions_default({ currentValueIds, modelSearch, fetchOpti
|
|
|
4546
4546
|
});
|
|
4547
4547
|
return options;
|
|
4548
4548
|
});
|
|
4549
|
-
watch(currentValueIds, async (ids) => {
|
|
4549
|
+
watch(params.currentValueIds, async (ids) => {
|
|
4550
4550
|
if (ids.length === 0) return;
|
|
4551
4551
|
selectedOptions.value = await unref(fetchOptions)(ids);
|
|
4552
4552
|
}, { immediate: true });
|
|
@@ -7984,13 +7984,13 @@ var Icon_module_default = {
|
|
|
7984
7984
|
};
|
|
7985
7985
|
//#endregion
|
|
7986
7986
|
//#region src/component/FluxIcon.vue?vue&type=script&setup=true&lang.ts
|
|
7987
|
-
var _hoisted_1$
|
|
7987
|
+
var _hoisted_1$57 = [
|
|
7988
7988
|
"viewBox",
|
|
7989
7989
|
"role",
|
|
7990
7990
|
"aria-hidden",
|
|
7991
7991
|
"aria-label"
|
|
7992
7992
|
];
|
|
7993
|
-
var _hoisted_2$
|
|
7993
|
+
var _hoisted_2$23 = ["d"];
|
|
7994
7994
|
//#endregion
|
|
7995
7995
|
//#region src/component/FluxIcon.vue
|
|
7996
7996
|
var FluxIcon_default = /* @__PURE__ */ defineComponent({
|
|
@@ -8036,8 +8036,8 @@ var FluxIcon_default = /* @__PURE__ */ defineComponent({
|
|
|
8036
8036
|
return openBlock(), createElementBlock("path", {
|
|
8037
8037
|
d: path,
|
|
8038
8038
|
fill: "currentColor"
|
|
8039
|
-
}, null, 8, _hoisted_2$
|
|
8040
|
-
}), 256))], 14, _hoisted_1$
|
|
8039
|
+
}, null, 8, _hoisted_2$23);
|
|
8040
|
+
}), 256))], 14, _hoisted_1$57)) : (openBlock(), createElementBlock("i", {
|
|
8041
8041
|
key: 1,
|
|
8042
8042
|
class: normalizeClass(unref(Icon_module_default).icon)
|
|
8043
8043
|
}, null, 2));
|
|
@@ -8046,7 +8046,7 @@ var FluxIcon_default = /* @__PURE__ */ defineComponent({
|
|
|
8046
8046
|
});
|
|
8047
8047
|
//#endregion
|
|
8048
8048
|
//#region src/component/FluxPressable.vue?vue&type=script&setup=true&lang.ts
|
|
8049
|
-
var _hoisted_1$
|
|
8049
|
+
var _hoisted_1$56 = [
|
|
8050
8050
|
"href",
|
|
8051
8051
|
"rel",
|
|
8052
8052
|
"target"
|
|
@@ -8097,7 +8097,7 @@ var FluxPressable_default = /* @__PURE__ */ defineComponent({
|
|
|
8097
8097
|
rel: __props.rel,
|
|
8098
8098
|
target: __props.target,
|
|
8099
8099
|
onClick: _cache[1] || (_cache[1] = ($event) => onClick($event))
|
|
8100
|
-
}), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$
|
|
8100
|
+
}), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1$56)) : __props.componentType === "button" ? (openBlock(), createElementBlock("button", mergeProps({ key: 2 }, $attrs, toHandlers(hoverListeners, true), { onClick: _cache[2] || (_cache[2] = ($event) => onClick($event)) }), [renderSlot(_ctx.$slots, "default")], 16)) : (openBlock(), createElementBlock("div", mergeProps({ key: 3 }, $attrs, toHandlers(hoverListeners, true), { onClick }), [renderSlot(_ctx.$slots, "default")], 16));
|
|
8101
8101
|
};
|
|
8102
8102
|
}
|
|
8103
8103
|
});
|
|
@@ -8528,7 +8528,7 @@ var Flyout_module_default = {
|
|
|
8528
8528
|
};
|
|
8529
8529
|
//#endregion
|
|
8530
8530
|
//#region src/component/FluxFlyout.vue?vue&type=script&setup=true&lang.ts
|
|
8531
|
-
var _hoisted_1$
|
|
8531
|
+
var _hoisted_1$55 = ["onKeydown"];
|
|
8532
8532
|
//#endregion
|
|
8533
8533
|
//#region src/component/FluxFlyout.vue
|
|
8534
8534
|
var FluxFlyout_default = /* @__PURE__ */ defineComponent({
|
|
@@ -8665,7 +8665,7 @@ var FluxFlyout_default = /* @__PURE__ */ defineComponent({
|
|
|
8665
8665
|
openerHeight: openerHeight.value
|
|
8666
8666
|
})))]),
|
|
8667
8667
|
_: 3
|
|
8668
|
-
}, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$
|
|
8668
|
+
}, 8, ["class", "style"])) : createCommentVNode("", true)], 42, _hoisted_1$55)], 6);
|
|
8669
8669
|
};
|
|
8670
8670
|
}
|
|
8671
8671
|
});
|
|
@@ -9631,8 +9631,8 @@ var Avatar_module_default = {
|
|
|
9631
9631
|
};
|
|
9632
9632
|
//#endregion
|
|
9633
9633
|
//#region src/component/FluxAvatar.vue?vue&type=script&setup=true&lang.ts
|
|
9634
|
-
var _hoisted_1$
|
|
9635
|
-
var _hoisted_2$
|
|
9634
|
+
var _hoisted_1$54 = ["alt", "src"];
|
|
9635
|
+
var _hoisted_2$22 = { key: 0 };
|
|
9636
9636
|
//#endregion
|
|
9637
9637
|
//#region src/component/FluxAvatar.vue
|
|
9638
9638
|
var FluxAvatar_default = /* @__PURE__ */ defineComponent({
|
|
@@ -9718,10 +9718,10 @@ var FluxAvatar_default = /* @__PURE__ */ defineComponent({
|
|
|
9718
9718
|
class: normalizeClass(unref(Avatar_module_default).avatarImage),
|
|
9719
9719
|
alt: __props.alt,
|
|
9720
9720
|
src: __props.src
|
|
9721
|
-
}, null, 10, _hoisted_1$
|
|
9721
|
+
}, null, 10, _hoisted_1$54)) : (openBlock(), createElementBlock("div", {
|
|
9722
9722
|
key: 1,
|
|
9723
9723
|
class: normalizeClass(__props.fallback === "colorized" ? unref(Avatar_module_default).avatarFallbackColorized : unref(Avatar_module_default).avatarFallbackNeutral)
|
|
9724
|
-
}, [__props.fallbackInitials ? (openBlock(), createElementBlock("span", _hoisted_2$
|
|
9724
|
+
}, [__props.fallbackInitials ? (openBlock(), createElementBlock("span", _hoisted_2$22, toDisplayString(__props.fallbackInitials), 1)) : __props.fallbackIcon ? (openBlock(), createBlock(FluxIcon_default, {
|
|
9725
9725
|
key: 1,
|
|
9726
9726
|
name: __props.fallbackIcon
|
|
9727
9727
|
}, null, 8, ["name"])) : createCommentVNode("", true)], 2)),
|
|
@@ -9781,7 +9781,7 @@ var Badge_module_default = {
|
|
|
9781
9781
|
};
|
|
9782
9782
|
//#endregion
|
|
9783
9783
|
//#region src/component/FluxBadge.vue?vue&type=script&setup=true&lang.ts
|
|
9784
|
-
var _hoisted_1$
|
|
9784
|
+
var _hoisted_1$53 = ["aria-label"];
|
|
9785
9785
|
//#endregion
|
|
9786
9786
|
//#region src/component/FluxBadge.vue
|
|
9787
9787
|
var FluxBadge_default = /* @__PURE__ */ defineComponent({
|
|
@@ -9847,7 +9847,7 @@ var FluxBadge_default = /* @__PURE__ */ defineComponent({
|
|
|
9847
9847
|
type: "button",
|
|
9848
9848
|
"aria-label": unref(translate)("flux.delete"),
|
|
9849
9849
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onDeleteClick(), ["stop"]))
|
|
9850
|
-
}, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$
|
|
9850
|
+
}, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$53)) : createCommentVNode("", true)
|
|
9851
9851
|
]),
|
|
9852
9852
|
_: 1
|
|
9853
9853
|
}, 8, [
|
|
@@ -10112,8 +10112,8 @@ var FluxPaneFooter_default = /* @__PURE__ */ defineComponent({
|
|
|
10112
10112
|
});
|
|
10113
10113
|
//#endregion
|
|
10114
10114
|
//#region src/component/FluxPaneHeader.vue?vue&type=script&setup=true&lang.ts
|
|
10115
|
-
var _hoisted_1$
|
|
10116
|
-
var _hoisted_2$
|
|
10115
|
+
var _hoisted_1$52 = { key: 0 };
|
|
10116
|
+
var _hoisted_2$21 = { key: 1 };
|
|
10117
10117
|
//#endregion
|
|
10118
10118
|
//#region src/component/FluxPaneHeader.vue
|
|
10119
10119
|
var FluxPaneHeader_default = /* @__PURE__ */ defineComponent({
|
|
@@ -10136,7 +10136,7 @@ var FluxPaneHeader_default = /* @__PURE__ */ defineComponent({
|
|
|
10136
10136
|
__props.title || __props.subtitle ? (openBlock(), createElementBlock("div", {
|
|
10137
10137
|
key: 1,
|
|
10138
10138
|
class: normalizeClass(unref(Pane_module_default).paneHeaderCaption)
|
|
10139
|
-
}, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$
|
|
10139
|
+
}, [__props.title ? (openBlock(), createElementBlock("strong", _hoisted_1$52, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_2$21, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
|
|
10140
10140
|
renderSlot(_ctx.$slots, "after")
|
|
10141
10141
|
], 2);
|
|
10142
10142
|
};
|
|
@@ -10246,7 +10246,7 @@ var FilterBadge_default = /* @__PURE__ */ defineComponent({
|
|
|
10246
10246
|
});
|
|
10247
10247
|
//#endregion
|
|
10248
10248
|
//#region src/css/component/Menu.module.scss
|
|
10249
|
-
var { "
|
|
10249
|
+
var { "buttonIcon": _0$13, "button": _1$5, "buttonLabel": _2$2 } = Button_module_default$1;
|
|
10250
10250
|
var Menu_module_default = {
|
|
10251
10251
|
menu: `menu`,
|
|
10252
10252
|
menuNormal: `menu-normal menu`,
|
|
@@ -10254,9 +10254,9 @@ var Menu_module_default = {
|
|
|
10254
10254
|
menuGroup: `menu-group`,
|
|
10255
10255
|
menuGroupHorizontal: `menu-group-horizontal menu-group`,
|
|
10256
10256
|
menuGroupVertical: `menu-group-vertical menu-group`,
|
|
10257
|
-
menuItem: `menu-item ${
|
|
10257
|
+
menuItem: `menu-item ${_1$5}`,
|
|
10258
10258
|
badge: `badge`,
|
|
10259
|
-
menuItemIcon: `menu-item-icon ${
|
|
10259
|
+
menuItemIcon: `menu-item-icon ${_0$13}`,
|
|
10260
10260
|
menuItemLabel: `menu-item-label ${_2$2}`,
|
|
10261
10261
|
menuItemActive: `menu-item-active`,
|
|
10262
10262
|
menuItemDestructive: `menu-item-destructive`,
|
|
@@ -10266,7 +10266,7 @@ var Menu_module_default = {
|
|
|
10266
10266
|
menuCollapsibleOpened: `menu-collapsible-opened menu-collapsible`,
|
|
10267
10267
|
menuCollapsibleBody: `menu-collapsible-body`,
|
|
10268
10268
|
menuCollapsibleContent: `menu-collapsible-content`,
|
|
10269
|
-
menuItemSelectableIcon: `menu-item-selectable-icon ${
|
|
10269
|
+
menuItemSelectableIcon: `menu-item-selectable-icon ${_0$13}`,
|
|
10270
10270
|
menuItemSelected: `menu-item-selected`,
|
|
10271
10271
|
menuItemCommand: `menu-item-command`,
|
|
10272
10272
|
menuItemCommandIcon: `menu-item-command-icon`,
|
|
@@ -10284,7 +10284,7 @@ var Menu_module_default = {
|
|
|
10284
10284
|
};
|
|
10285
10285
|
//#endregion
|
|
10286
10286
|
//#region src/component/FluxMenuItem.vue?vue&type=script&setup=true&lang.ts
|
|
10287
|
-
var _hoisted_1$
|
|
10287
|
+
var _hoisted_1$51 = ["src", "alt"];
|
|
10288
10288
|
//#endregion
|
|
10289
10289
|
//#region src/component/FluxMenuItem.vue
|
|
10290
10290
|
var FluxMenuItem_default = /* @__PURE__ */ defineComponent({
|
|
@@ -10361,7 +10361,7 @@ var FluxMenuItem_default = /* @__PURE__ */ defineComponent({
|
|
|
10361
10361
|
class: normalizeClass(unref(Menu_module_default).menuItemImage),
|
|
10362
10362
|
src: __props.imageSrc,
|
|
10363
10363
|
alt: __props.imageAlt ?? ""
|
|
10364
|
-
}, null, 10, _hoisted_1$
|
|
10364
|
+
}, null, 10, _hoisted_1$51)]),
|
|
10365
10365
|
key: "1"
|
|
10366
10366
|
} : slots.before ? {
|
|
10367
10367
|
name: "iconLeading",
|
|
@@ -10533,8 +10533,8 @@ var Form_module_default = {
|
|
|
10533
10533
|
};
|
|
10534
10534
|
//#endregion
|
|
10535
10535
|
//#region src/component/FluxFormInput.vue?vue&type=script&setup=true&lang.ts
|
|
10536
|
-
var _hoisted_1$
|
|
10537
|
-
var _hoisted_2$
|
|
10536
|
+
var _hoisted_1$50 = ["aria-disabled"];
|
|
10537
|
+
var _hoisted_2$20 = [
|
|
10538
10538
|
"id",
|
|
10539
10539
|
"name",
|
|
10540
10540
|
"autocomplete",
|
|
@@ -10713,7 +10713,7 @@ var FluxFormInput_default = /* @__PURE__ */ defineComponent({
|
|
|
10713
10713
|
onFocus: _cache[1] || (_cache[1] = ($event) => onFocus()),
|
|
10714
10714
|
onInput,
|
|
10715
10715
|
onKeydown: onKeyDown
|
|
10716
|
-
}, null, 42, _hoisted_2$
|
|
10716
|
+
}, null, 42, _hoisted_2$20),
|
|
10717
10717
|
__props.iconLeading ? (openBlock(), createBlock(FluxIcon_default, {
|
|
10718
10718
|
key: 0,
|
|
10719
10719
|
class: normalizeClass(unref(Form_module_default).formInputIconLeading),
|
|
@@ -10737,7 +10737,7 @@ var FluxFormInput_default = /* @__PURE__ */ defineComponent({
|
|
|
10737
10737
|
class: normalizeClass(unref(Form_module_default).formInputIconTrailing),
|
|
10738
10738
|
size: 18
|
|
10739
10739
|
}, null, 8, ["class"])) : createCommentVNode("", true)
|
|
10740
|
-
], 10, _hoisted_1$
|
|
10740
|
+
], 10, _hoisted_1$50);
|
|
10741
10741
|
};
|
|
10742
10742
|
}
|
|
10743
10743
|
});
|
|
@@ -10863,7 +10863,7 @@ var FluxMenu_default = /* @__PURE__ */ defineComponent({
|
|
|
10863
10863
|
});
|
|
10864
10864
|
//#endregion
|
|
10865
10865
|
//#region src/component/FluxTag.vue?vue&type=script&setup=true&lang.ts
|
|
10866
|
-
var _hoisted_1$
|
|
10866
|
+
var _hoisted_1$49 = ["aria-label"];
|
|
10867
10867
|
//#endregion
|
|
10868
10868
|
//#region src/component/FluxTag.vue
|
|
10869
10869
|
var FluxTag_default = /* @__PURE__ */ defineComponent({
|
|
@@ -10931,7 +10931,7 @@ var FluxTag_default = /* @__PURE__ */ defineComponent({
|
|
|
10931
10931
|
type: "button",
|
|
10932
10932
|
"aria-label": unref(translate)("flux.delete"),
|
|
10933
10933
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onDeleteClick(), ["stop"]))
|
|
10934
|
-
}, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$
|
|
10934
|
+
}, [createVNode(FluxIcon_default, { name: "xmark" })], 10, _hoisted_1$49)) : createCommentVNode("", true)
|
|
10935
10935
|
]),
|
|
10936
10936
|
_: 1
|
|
10937
10937
|
}, 8, [
|
|
@@ -11255,7 +11255,7 @@ var FluxTicks_default = /* @__PURE__ */ defineComponent({
|
|
|
11255
11255
|
});
|
|
11256
11256
|
//#endregion
|
|
11257
11257
|
//#region src/component/primitive/SliderBase.vue?vue&type=script&setup=true&lang.ts
|
|
11258
|
-
var _hoisted_1$
|
|
11258
|
+
var _hoisted_1$48 = ["aria-disabled"];
|
|
11259
11259
|
//#endregion
|
|
11260
11260
|
//#region src/component/primitive/SliderBase.vue
|
|
11261
11261
|
var SliderBase_default = /* @__PURE__ */ defineComponent({
|
|
@@ -11308,13 +11308,13 @@ var SliderBase_default = /* @__PURE__ */ defineComponent({
|
|
|
11308
11308
|
key: 0,
|
|
11309
11309
|
lower: __props.min,
|
|
11310
11310
|
upper: __props.max
|
|
11311
|
-
}, null, 8, ["lower", "upper"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$
|
|
11311
|
+
}, null, 8, ["lower", "upper"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$48);
|
|
11312
11312
|
};
|
|
11313
11313
|
}
|
|
11314
11314
|
});
|
|
11315
11315
|
//#endregion
|
|
11316
11316
|
//#region src/component/primitive/SliderThumb.vue?vue&type=script&setup=true&lang.ts
|
|
11317
|
-
var _hoisted_1$
|
|
11317
|
+
var _hoisted_1$47 = [
|
|
11318
11318
|
"aria-disabled",
|
|
11319
11319
|
"aria-label",
|
|
11320
11320
|
"aria-valuemax",
|
|
@@ -11373,7 +11373,7 @@ var SliderThumb_default = /* @__PURE__ */ defineComponent({
|
|
|
11373
11373
|
type: "button",
|
|
11374
11374
|
onKeydown: onKeyDown,
|
|
11375
11375
|
onPointerdown: _cache[0] || (_cache[0] = ($event) => $emit("grab", $event))
|
|
11376
|
-
}, null, 46, _hoisted_1$
|
|
11376
|
+
}, null, 46, _hoisted_1$47);
|
|
11377
11377
|
};
|
|
11378
11378
|
}
|
|
11379
11379
|
});
|
|
@@ -11478,7 +11478,7 @@ var Divider_module_default = {
|
|
|
11478
11478
|
};
|
|
11479
11479
|
//#endregion
|
|
11480
11480
|
//#region src/component/FluxSeparator.vue?vue&type=script&setup=true&lang.ts
|
|
11481
|
-
var _hoisted_1$
|
|
11481
|
+
var _hoisted_1$46 = ["aria-orientation"];
|
|
11482
11482
|
//#endregion
|
|
11483
11483
|
//#region src/component/FluxSeparator.vue
|
|
11484
11484
|
var FluxSeparator_default = /* @__PURE__ */ defineComponent({
|
|
@@ -11490,7 +11490,7 @@ var FluxSeparator_default = /* @__PURE__ */ defineComponent({
|
|
|
11490
11490
|
class: normalizeClass(__props.direction === "horizontal" ? unref(Divider_module_default).separatorHorizontal : unref(Divider_module_default).separatorVertical),
|
|
11491
11491
|
role: "separator",
|
|
11492
11492
|
"aria-orientation": __props.direction
|
|
11493
|
-
}, null, 10, _hoisted_1$
|
|
11493
|
+
}, null, 10, _hoisted_1$46);
|
|
11494
11494
|
};
|
|
11495
11495
|
}
|
|
11496
11496
|
});
|
|
@@ -11581,8 +11581,8 @@ var DatePicker_module_default = {
|
|
|
11581
11581
|
};
|
|
11582
11582
|
//#endregion
|
|
11583
11583
|
//#region src/component/FluxCalendar.vue?vue&type=script&setup=true&lang.ts
|
|
11584
|
-
var _hoisted_1$
|
|
11585
|
-
var _hoisted_2$
|
|
11584
|
+
var _hoisted_1$45 = ["aria-label", "onClick"];
|
|
11585
|
+
var _hoisted_2$19 = ["aria-label", "onClick"];
|
|
11586
11586
|
//#endregion
|
|
11587
11587
|
//#region src/component/FluxCalendar.vue
|
|
11588
11588
|
var FluxCalendar_default = /* @__PURE__ */ defineComponent({
|
|
@@ -11648,7 +11648,7 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
|
|
|
11648
11648
|
"aria-label": unref(translate)("flux.selectMonth"),
|
|
11649
11649
|
type: "button",
|
|
11650
11650
|
onClick: open
|
|
11651
|
-
}, toDisplayString(unref(viewMonth)), 11, _hoisted_1$
|
|
11651
|
+
}, toDisplayString(unref(viewMonth)), 11, _hoisted_1$45)]),
|
|
11652
11652
|
default: withCtx(({ close }) => [createElementVNode("div", { class: normalizeClass(unref(DatePicker_module_default).datePickerMonths) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(months), (month) => {
|
|
11653
11653
|
return openBlock(), createBlock(FluxSecondaryButton_default, {
|
|
11654
11654
|
key: month.label,
|
|
@@ -11664,7 +11664,7 @@ var FluxCalendar_default = /* @__PURE__ */ defineComponent({
|
|
|
11664
11664
|
"aria-label": unref(translate)("flux.selectYear"),
|
|
11665
11665
|
type: "button",
|
|
11666
11666
|
onClick: open
|
|
11667
|
-
}, toDisplayString(unref(viewYear)), 11, _hoisted_2$
|
|
11667
|
+
}, toDisplayString(unref(viewYear)), 11, _hoisted_2$19)]),
|
|
11668
11668
|
default: withCtx(({ close }) => [createElementVNode("div", { class: normalizeClass(unref(DatePicker_module_default).datePickerYears) }, [
|
|
11669
11669
|
createVNode(FluxSecondaryButton_default, {
|
|
11670
11670
|
"aria-label": unref(translate)("flux.previousYears"),
|
|
@@ -11770,8 +11770,8 @@ var FluxCalendarEvent_default = /* @__PURE__ */ defineComponent({
|
|
|
11770
11770
|
});
|
|
11771
11771
|
//#endregion
|
|
11772
11772
|
//#region src/component/FluxCheckbox.vue?vue&type=script&setup=true&lang.ts
|
|
11773
|
-
var _hoisted_1$
|
|
11774
|
-
var _hoisted_2$
|
|
11773
|
+
var _hoisted_1$44 = ["for"];
|
|
11774
|
+
var _hoisted_2$18 = [
|
|
11775
11775
|
"id",
|
|
11776
11776
|
"disabled",
|
|
11777
11777
|
"aria-disabled",
|
|
@@ -11825,7 +11825,7 @@ var FluxCheckbox_default = /* @__PURE__ */ defineComponent({
|
|
|
11825
11825
|
"aria-readonly": __props.isReadonly ? true : void 0,
|
|
11826
11826
|
"aria-invalid": __props.error ? true : void 0,
|
|
11827
11827
|
onClick
|
|
11828
|
-
}, null, 10, _hoisted_2$
|
|
11828
|
+
}, null, 10, _hoisted_2$18), [[vModelCheckbox, modelValue.value]]),
|
|
11829
11829
|
createElementVNode("button", {
|
|
11830
11830
|
"aria-hidden": "true",
|
|
11831
11831
|
class: normalizeClass(unref(Form_module_default).checkboxElement),
|
|
@@ -11843,7 +11843,7 @@ var FluxCheckbox_default = /* @__PURE__ */ defineComponent({
|
|
|
11843
11843
|
key: 0,
|
|
11844
11844
|
class: normalizeClass(unref(Form_module_default).checkboxLabel)
|
|
11845
11845
|
}, toDisplayString(__props.label), 3)) : createCommentVNode("", true)
|
|
11846
|
-
], 10, _hoisted_1$
|
|
11846
|
+
], 10, _hoisted_1$44);
|
|
11847
11847
|
};
|
|
11848
11848
|
}
|
|
11849
11849
|
});
|
|
@@ -12047,8 +12047,8 @@ var FluxCommandPaletteItem_default = /* @__PURE__ */ defineComponent({
|
|
|
12047
12047
|
});
|
|
12048
12048
|
//#endregion
|
|
12049
12049
|
//#region src/component/FluxCommandPalette.vue?vue&type=script&setup=true&lang.ts
|
|
12050
|
-
var _hoisted_1$
|
|
12051
|
-
var _hoisted_2$
|
|
12050
|
+
var _hoisted_1$43 = ["placeholder", "value"];
|
|
12051
|
+
var _hoisted_2$17 = ["onClick"];
|
|
12052
12052
|
//#endregion
|
|
12053
12053
|
//#region src/component/FluxCommandPalette.vue
|
|
12054
12054
|
var FluxCommandPalette_default = /* @__PURE__ */ defineComponent({
|
|
@@ -12175,7 +12175,7 @@ var FluxCommandPalette_default = /* @__PURE__ */ defineComponent({
|
|
|
12175
12175
|
value: unref(search),
|
|
12176
12176
|
type: "text",
|
|
12177
12177
|
onInput: _cache[2] || (_cache[2] = ($event) => unref(setSearch)($event.target.value))
|
|
12178
|
-
}, null, 42, _hoisted_1$
|
|
12178
|
+
}, null, 42, _hoisted_1$43),
|
|
12179
12179
|
createVNode(FluxTag_default, {
|
|
12180
12180
|
"is-keyboard-shortcut": "",
|
|
12181
12181
|
label: "Esc"
|
|
@@ -12202,7 +12202,7 @@ var FluxCommandPalette_default = /* @__PURE__ */ defineComponent({
|
|
|
12202
12202
|
key: 0,
|
|
12203
12203
|
class: normalizeClass(unref(CommandPalette_module_default).commandPaletteTabIcon),
|
|
12204
12204
|
name: tab.icon
|
|
12205
|
-
}, null, 8, ["class", "name"])) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(tab.label), 1)], 42, _hoisted_2$
|
|
12205
|
+
}, null, 8, ["class", "name"])) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(tab.label), 1)], 42, _hoisted_2$17);
|
|
12206
12206
|
}), 128))], 2)) : createCommentVNode("", true),
|
|
12207
12207
|
createVNode(FluxWindowTransition_default, { "is-back": unref(isTransitioningBack) }, {
|
|
12208
12208
|
default: withCtx(() => [(openBlock(), createElementBlock("div", {
|
|
@@ -12279,8 +12279,8 @@ var Comment_module_default = {
|
|
|
12279
12279
|
};
|
|
12280
12280
|
//#endregion
|
|
12281
12281
|
//#region src/component/FluxComment.vue?vue&type=script&setup=true&lang.ts
|
|
12282
|
-
var _hoisted_1$
|
|
12283
|
-
var _hoisted_2$
|
|
12282
|
+
var _hoisted_1$42 = { key: 0 };
|
|
12283
|
+
var _hoisted_2$16 = ["datetime"];
|
|
12284
12284
|
//#endregion
|
|
12285
12285
|
//#region src/component/FluxComment.vue
|
|
12286
12286
|
var FluxComment_default = /* @__PURE__ */ defineComponent({
|
|
@@ -12324,10 +12324,10 @@ var FluxComment_default = /* @__PURE__ */ defineComponent({
|
|
|
12324
12324
|
key: 0,
|
|
12325
12325
|
class: normalizeClass(unref(Comment_module_default).commentTyping)
|
|
12326
12326
|
}, null, 2)) : renderSlot(_ctx.$slots, "default", { key: 1 })], 2),
|
|
12327
|
-
createElementVNode("div", { class: normalizeClass(unref(Comment_module_default).commentFooter) }, [__props.isReceived && __props.postedBy ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
12327
|
+
createElementVNode("div", { class: normalizeClass(unref(Comment_module_default).commentFooter) }, [__props.isReceived && __props.postedBy ? (openBlock(), createElementBlock("span", _hoisted_1$42, toDisplayString(__props.postedBy), 1)) : createCommentVNode("", true), iso.value && relative.value && !__props.isTyping ? (openBlock(), createElementBlock("time", {
|
|
12328
12328
|
key: 1,
|
|
12329
12329
|
datetime: iso.value
|
|
12330
|
-
}, toDisplayString(isJustNowVisible.value ? unref(translate)("flux.justNow") : relative.value), 9, _hoisted_2$
|
|
12330
|
+
}, toDisplayString(isJustNowVisible.value ? unref(translate)("flux.justNow") : relative.value), 9, _hoisted_2$16)) : createCommentVNode("", true)], 2)
|
|
12331
12331
|
], 2);
|
|
12332
12332
|
};
|
|
12333
12333
|
}
|
|
@@ -12343,7 +12343,7 @@ var CoordinatePicker_module_default = {
|
|
|
12343
12343
|
};
|
|
12344
12344
|
//#endregion
|
|
12345
12345
|
//#region src/component/primitive/CoordinatePickerThumb.vue?vue&type=script&setup=true&lang.ts
|
|
12346
|
-
var _hoisted_1$
|
|
12346
|
+
var _hoisted_1$41 = [
|
|
12347
12347
|
"aria-disabled",
|
|
12348
12348
|
"aria-valuetext",
|
|
12349
12349
|
"tabindex"
|
|
@@ -12399,13 +12399,13 @@ var CoordinatePickerThumb_default = /* @__PURE__ */ defineComponent({
|
|
|
12399
12399
|
type: "button",
|
|
12400
12400
|
onKeydown: onKeyDown,
|
|
12401
12401
|
onPointerdown: _cache[0] || (_cache[0] = ($event) => $emit("grab", $event))
|
|
12402
|
-
}, null, 46, _hoisted_1$
|
|
12402
|
+
}, null, 46, _hoisted_1$41);
|
|
12403
12403
|
};
|
|
12404
12404
|
}
|
|
12405
12405
|
});
|
|
12406
12406
|
//#endregion
|
|
12407
12407
|
//#region src/component/primitive/CoordinatePicker.vue?vue&type=script&setup=true&lang.ts
|
|
12408
|
-
var _hoisted_1$
|
|
12408
|
+
var _hoisted_1$40 = ["aria-disabled", "aria-label"];
|
|
12409
12409
|
//#endregion
|
|
12410
12410
|
//#region src/component/primitive/CoordinatePicker.vue
|
|
12411
12411
|
var CoordinatePicker_default = /* @__PURE__ */ defineComponent({
|
|
@@ -12501,13 +12501,13 @@ var CoordinatePicker_default = /* @__PURE__ */ defineComponent({
|
|
|
12501
12501
|
"disabled",
|
|
12502
12502
|
"is-dragging",
|
|
12503
12503
|
"position"
|
|
12504
|
-
])], 42, _hoisted_1$
|
|
12504
|
+
])], 42, _hoisted_1$40);
|
|
12505
12505
|
};
|
|
12506
12506
|
}
|
|
12507
12507
|
});
|
|
12508
12508
|
//#endregion
|
|
12509
12509
|
//#region src/component/FluxFormFieldAddition.vue?vue&type=script&setup=true&lang.ts
|
|
12510
|
-
var _hoisted_1$
|
|
12510
|
+
var _hoisted_1$39 = { key: 1 };
|
|
12511
12511
|
//#endregion
|
|
12512
12512
|
//#region src/component/FluxFormFieldAddition.vue
|
|
12513
12513
|
var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
|
|
@@ -12529,7 +12529,7 @@ var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
|
|
|
12529
12529
|
name: __props.icon,
|
|
12530
12530
|
size: 16
|
|
12531
12531
|
}, null, 8, ["class", "name"])) : createCommentVNode("", true),
|
|
12532
|
-
__props.message ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
12532
|
+
__props.message ? (openBlock(), createElementBlock("span", _hoisted_1$39, toDisplayString(__props.message), 1)) : createCommentVNode("", true),
|
|
12533
12533
|
renderSlot(_ctx.$slots, "default")
|
|
12534
12534
|
], 2);
|
|
12535
12535
|
};
|
|
@@ -12537,7 +12537,7 @@ var FluxFormFieldAddition_default = /* @__PURE__ */ defineComponent({
|
|
|
12537
12537
|
});
|
|
12538
12538
|
//#endregion
|
|
12539
12539
|
//#region src/component/FluxFormField.vue?vue&type=script&setup=true&lang.ts
|
|
12540
|
-
var _hoisted_1$
|
|
12540
|
+
var _hoisted_1$38 = ["for"];
|
|
12541
12541
|
//#endregion
|
|
12542
12542
|
//#region src/component/FluxFormField.vue
|
|
12543
12543
|
var FluxFormField_default = /* @__PURE__ */ defineComponent({
|
|
@@ -12578,7 +12578,7 @@ var FluxFormField_default = /* @__PURE__ */ defineComponent({
|
|
|
12578
12578
|
label: __props.label,
|
|
12579
12579
|
maxLength: __props.maxLength
|
|
12580
12580
|
})))], 2)) : createCommentVNode("", true)
|
|
12581
|
-
], 10, _hoisted_1$
|
|
12581
|
+
], 10, _hoisted_1$38),
|
|
12582
12582
|
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ id: unref(id) }))),
|
|
12583
12583
|
__props.currentLength && __props.maxLength && __props.maxLength > 0 ? (openBlock(), createElementBlock("span", {
|
|
12584
12584
|
key: 0,
|
|
@@ -13118,14 +13118,14 @@ var FluxPrimaryButton_default = /* @__PURE__ */ defineComponent({
|
|
|
13118
13118
|
});
|
|
13119
13119
|
//#endregion
|
|
13120
13120
|
//#region src/component/FluxColorSelect.vue?vue&type=script&setup=true&lang.ts
|
|
13121
|
-
var _hoisted_1$
|
|
13121
|
+
var _hoisted_1$37 = [
|
|
13122
13122
|
"aria-checked",
|
|
13123
13123
|
"aria-label",
|
|
13124
13124
|
"disabled",
|
|
13125
13125
|
"tabindex",
|
|
13126
13126
|
"onClick"
|
|
13127
13127
|
];
|
|
13128
|
-
var _hoisted_2$
|
|
13128
|
+
var _hoisted_2$15 = [
|
|
13129
13129
|
"disabled",
|
|
13130
13130
|
"tabindex",
|
|
13131
13131
|
"aria-label",
|
|
@@ -13193,7 +13193,7 @@ var FluxColorSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
13193
13193
|
class: normalizeClass(unref(Color_module_default).colorSelectCheck),
|
|
13194
13194
|
name: "check",
|
|
13195
13195
|
size: 14
|
|
13196
|
-
}, null, 8, ["class"])], 14, _hoisted_1$
|
|
13196
|
+
}, null, 8, ["class"])], 14, _hoisted_1$37);
|
|
13197
13197
|
}), 128)), __props.isCustomAllowed ? (openBlock(), createBlock(FluxFlyout_default, { key: 0 }, {
|
|
13198
13198
|
opener: withCtx(({ open }) => [createElementVNode("button", {
|
|
13199
13199
|
class: normalizeClass(unref(Color_module_default).colorSelectCustom),
|
|
@@ -13205,7 +13205,7 @@ var FluxColorSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
13205
13205
|
}, [createVNode(FluxIcon_default, {
|
|
13206
13206
|
name: "ellipsis-h",
|
|
13207
13207
|
size: 16
|
|
13208
|
-
})], 10, _hoisted_2$
|
|
13208
|
+
})], 10, _hoisted_2$15)]),
|
|
13209
13209
|
default: withCtx(({ close }) => [createVNode(FluxColorPicker_default, {
|
|
13210
13210
|
modelValue: customColor.value,
|
|
13211
13211
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => customColor.value = $event),
|
|
@@ -13410,7 +13410,7 @@ var FluxPaginationButton_default = /* @__PURE__ */ defineComponent({
|
|
|
13410
13410
|
});
|
|
13411
13411
|
//#endregion
|
|
13412
13412
|
//#region src/component/FluxPagination.vue?vue&type=script&setup=true&lang.ts
|
|
13413
|
-
var _hoisted_1$
|
|
13413
|
+
var _hoisted_1$36 = ["aria-label"];
|
|
13414
13414
|
//#endregion
|
|
13415
13415
|
//#region src/component/FluxPagination.vue
|
|
13416
13416
|
var FluxPagination_default = /* @__PURE__ */ defineComponent({
|
|
@@ -13525,7 +13525,7 @@ var FluxPagination_default = /* @__PURE__ */ defineComponent({
|
|
|
13525
13525
|
"aria-label": unref(translate)("flux.next"),
|
|
13526
13526
|
onClick: next
|
|
13527
13527
|
}, null, 8, ["disabled", "aria-label"])) : createCommentVNode("", true)
|
|
13528
|
-
], 10, _hoisted_1$
|
|
13528
|
+
], 10, _hoisted_1$36);
|
|
13529
13529
|
};
|
|
13530
13530
|
}
|
|
13531
13531
|
});
|
|
@@ -13652,8 +13652,8 @@ var FluxTableRow_default = /* @__PURE__ */ defineComponent({
|
|
|
13652
13652
|
});
|
|
13653
13653
|
//#endregion
|
|
13654
13654
|
//#region src/component/FluxTable.vue?vue&type=script&setup=true&lang.ts
|
|
13655
|
-
var _hoisted_1$
|
|
13656
|
-
var _hoisted_2$
|
|
13655
|
+
var _hoisted_1$35 = { key: 0 };
|
|
13656
|
+
var _hoisted_2$14 = { key: 1 };
|
|
13657
13657
|
var _hoisted_3$6 = { key: 2 };
|
|
13658
13658
|
//#endregion
|
|
13659
13659
|
//#region src/component/FluxTable.vue
|
|
@@ -13695,8 +13695,8 @@ var FluxTable_default = /* @__PURE__ */ defineComponent({
|
|
|
13695
13695
|
return openBlock(), createElementBlock("div", { class: normalizeClass(unref(Table_module_default).table) }, [
|
|
13696
13696
|
createElementVNode("table", { class: normalizeClass(unref(Table_module_default).tableBase) }, [
|
|
13697
13697
|
renderSlot(_ctx.$slots, "colgroups"),
|
|
13698
|
-
slots.header ? (openBlock(), createElementBlock("thead", _hoisted_1$
|
|
13699
|
-
slots.default ? (openBlock(), createElementBlock("tbody", _hoisted_2$
|
|
13698
|
+
slots.header ? (openBlock(), createElementBlock("thead", _hoisted_1$35, [renderSlot(_ctx.$slots, "header")])) : createCommentVNode("", true),
|
|
13699
|
+
slots.default ? (openBlock(), createElementBlock("tbody", _hoisted_2$14, [renderSlot(_ctx.$slots, "default"), __props.fillColumns ? (openBlock(), createBlock(FluxTableRow_default, {
|
|
13700
13700
|
key: 0,
|
|
13701
13701
|
class: normalizeClass(unref(Table_module_default).tableFill)
|
|
13702
13702
|
}, {
|
|
@@ -13871,8 +13871,8 @@ var FluxDataTable_default = /* @__PURE__ */ defineComponent({
|
|
|
13871
13871
|
});
|
|
13872
13872
|
//#endregion
|
|
13873
13873
|
//#region src/component/FluxDatePicker.vue?vue&type=script&setup=true&lang.ts
|
|
13874
|
-
var _hoisted_1$
|
|
13875
|
-
var _hoisted_2$
|
|
13874
|
+
var _hoisted_1$34 = ["id"];
|
|
13875
|
+
var _hoisted_2$13 = ["aria-labelledby"];
|
|
13876
13876
|
var _hoisted_3$5 = ["onClick", "onMouseover"];
|
|
13877
13877
|
//#endregion
|
|
13878
13878
|
//#region src/component/FluxDatePicker.vue
|
|
@@ -14022,7 +14022,7 @@ var FluxDatePicker_default = /* @__PURE__ */ defineComponent({
|
|
|
14022
14022
|
class: normalizeClass(unref(DatePicker_module_default).datePickerHeaderViewButton),
|
|
14023
14023
|
type: "button",
|
|
14024
14024
|
onClick: _cache[1] || (_cache[1] = ($event) => setView("year"))
|
|
14025
|
-
}, toDisplayString(unref(viewYear)), 3)], 10, _hoisted_1$
|
|
14025
|
+
}, toDisplayString(unref(viewYear)), 3)], 10, _hoisted_1$34),
|
|
14026
14026
|
createVNode(unref(FluxFadeTransition_default), null, {
|
|
14027
14027
|
default: withCtx(() => [viewMode.value === "date" ? (openBlock(), createBlock(FluxSecondaryButton_default, {
|
|
14028
14028
|
key: 0,
|
|
@@ -14062,7 +14062,7 @@ var FluxDatePicker_default = /* @__PURE__ */ defineComponent({
|
|
|
14062
14062
|
}, toDisplayString(date.toLocaleString({ day: "numeric" })), 43, _hoisted_3$5);
|
|
14063
14063
|
}), 256))], 2))]),
|
|
14064
14064
|
_: 1
|
|
14065
|
-
}, 8, ["is-back"])], 10, _hoisted_2$
|
|
14065
|
+
}, 8, ["is-back"])], 10, _hoisted_2$13)) : viewMode.value === "month" ? (openBlock(), createElementBlock("div", {
|
|
14066
14066
|
key: "month",
|
|
14067
14067
|
class: normalizeClass(unref(DatePicker_module_default).datePickerMonths)
|
|
14068
14068
|
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(months), (month) => {
|
|
@@ -14123,7 +14123,7 @@ var FluxDisabled_default = /* @__PURE__ */ defineComponent({
|
|
|
14123
14123
|
});
|
|
14124
14124
|
//#endregion
|
|
14125
14125
|
//#region src/component/FluxDivider.vue?vue&type=script&setup=true&lang.ts
|
|
14126
|
-
var _hoisted_1$
|
|
14126
|
+
var _hoisted_1$33 = ["aria-orientation"];
|
|
14127
14127
|
//#endregion
|
|
14128
14128
|
//#region src/component/FluxDivider.vue
|
|
14129
14129
|
var FluxDivider_default = /* @__PURE__ */ defineComponent({
|
|
@@ -14145,18 +14145,18 @@ var FluxDivider_default = /* @__PURE__ */ defineComponent({
|
|
|
14145
14145
|
}, [renderSlot(_ctx.$slots, "default")], 2)) : (openBlock(), createElementBlock("hr", {
|
|
14146
14146
|
key: 1,
|
|
14147
14147
|
class: normalizeClass(unref(Divider_module_default).dividerLine)
|
|
14148
|
-
}, null, 2))], 10, _hoisted_1$
|
|
14148
|
+
}, null, 2))], 10, _hoisted_1$33);
|
|
14149
14149
|
};
|
|
14150
14150
|
}
|
|
14151
14151
|
});
|
|
14152
14152
|
//#endregion
|
|
14153
14153
|
//#region src/component/FluxDotPattern.vue?vue&type=script&setup=true&lang.ts
|
|
14154
|
-
var _hoisted_1$
|
|
14154
|
+
var _hoisted_1$32 = [
|
|
14155
14155
|
"id",
|
|
14156
14156
|
"width",
|
|
14157
14157
|
"height"
|
|
14158
14158
|
];
|
|
14159
|
-
var _hoisted_2$
|
|
14159
|
+
var _hoisted_2$12 = [
|
|
14160
14160
|
"r",
|
|
14161
14161
|
"cx",
|
|
14162
14162
|
"cy"
|
|
@@ -14206,7 +14206,7 @@ var FluxDotPattern_default = /* @__PURE__ */ defineComponent({
|
|
|
14206
14206
|
r: __props.cr,
|
|
14207
14207
|
cx: __props.width / 2 - __props.cx,
|
|
14208
14208
|
cy: __props.height / 2 - __props.cy
|
|
14209
|
-
}, null, 8, _hoisted_2$
|
|
14209
|
+
}, null, 8, _hoisted_2$12)], 8, _hoisted_1$32)]), createElementVNode("rect", {
|
|
14210
14210
|
width: "100%",
|
|
14211
14211
|
height: "100%",
|
|
14212
14212
|
"stroke-width": "0",
|
|
@@ -14229,12 +14229,12 @@ var DropZone_module_default = {
|
|
|
14229
14229
|
};
|
|
14230
14230
|
//#endregion
|
|
14231
14231
|
//#region src/component/FluxDropZone.vue?vue&type=script&setup=true&lang.ts
|
|
14232
|
-
var _hoisted_1$
|
|
14232
|
+
var _hoisted_1$31 = [
|
|
14233
14233
|
"aria-disabled",
|
|
14234
14234
|
"aria-label",
|
|
14235
14235
|
"tabindex"
|
|
14236
14236
|
];
|
|
14237
|
-
var _hoisted_2$
|
|
14237
|
+
var _hoisted_2$11 = ["pathLength"];
|
|
14238
14238
|
//#endregion
|
|
14239
14239
|
//#region src/component/FluxDropZone.vue
|
|
14240
14240
|
var FluxDropZone_default = /* @__PURE__ */ defineComponent({
|
|
@@ -14348,7 +14348,7 @@ var FluxDropZone_default = /* @__PURE__ */ defineComponent({
|
|
|
14348
14348
|
"stroke-linecap": "round",
|
|
14349
14349
|
"stroke-linejoin": "round",
|
|
14350
14350
|
pathLength: pathLength.value
|
|
14351
|
-
}, null, 8, _hoisted_2$
|
|
14351
|
+
}, null, 8, _hoisted_2$11)], 2)),
|
|
14352
14352
|
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
|
|
14353
14353
|
isDragging: isDragging.value,
|
|
14354
14354
|
isDraggingOver: isDraggingOver.value,
|
|
@@ -14375,7 +14375,7 @@ var FluxDropZone_default = /* @__PURE__ */ defineComponent({
|
|
|
14375
14375
|
isDraggingOver: isDraggingOver.value,
|
|
14376
14376
|
showPicker
|
|
14377
14377
|
})))
|
|
14378
|
-
], 42, _hoisted_1$
|
|
14378
|
+
], 42, _hoisted_1$31);
|
|
14379
14379
|
};
|
|
14380
14380
|
}
|
|
14381
14381
|
});
|
|
@@ -14405,12 +14405,12 @@ var Expandable_module_default = {
|
|
|
14405
14405
|
};
|
|
14406
14406
|
//#endregion
|
|
14407
14407
|
//#region src/component/FluxExpandable.vue?vue&type=script&setup=true&lang.ts
|
|
14408
|
-
var _hoisted_1$
|
|
14408
|
+
var _hoisted_1$30 = [
|
|
14409
14409
|
"id",
|
|
14410
14410
|
"aria-controls",
|
|
14411
14411
|
"aria-expanded"
|
|
14412
14412
|
];
|
|
14413
|
-
var _hoisted_2$
|
|
14413
|
+
var _hoisted_2$10 = ["id", "aria-labelledby"];
|
|
14414
14414
|
//#endregion
|
|
14415
14415
|
//#region src/component/FluxExpandable.vue
|
|
14416
14416
|
var FluxExpandable_default = /* @__PURE__ */ defineComponent({
|
|
@@ -14501,9 +14501,9 @@ var FluxExpandable_default = /* @__PURE__ */ defineComponent({
|
|
|
14501
14501
|
})), () => [createElementVNode("div", { class: normalizeClass(unref(Expandable_module_default).expandableContent) }, [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({
|
|
14502
14502
|
label: __props.label,
|
|
14503
14503
|
close
|
|
14504
|
-
})))], 2)])], 10, _hoisted_2$
|
|
14504
|
+
})))], 2)])], 10, _hoisted_2$10)) : createCommentVNode("", true)]),
|
|
14505
14505
|
_: 3
|
|
14506
|
-
})], 10, _hoisted_1$
|
|
14506
|
+
})], 10, _hoisted_1$30);
|
|
14507
14507
|
};
|
|
14508
14508
|
}
|
|
14509
14509
|
});
|
|
@@ -15477,7 +15477,7 @@ var FocalPoint_module_default = {
|
|
|
15477
15477
|
};
|
|
15478
15478
|
//#endregion
|
|
15479
15479
|
//#region src/component/FluxFocalPointEditor.vue?vue&type=script&setup=true&lang.ts
|
|
15480
|
-
var _hoisted_1$
|
|
15480
|
+
var _hoisted_1$29 = ["src"];
|
|
15481
15481
|
//#endregion
|
|
15482
15482
|
//#region src/component/FluxFocalPointEditor.vue
|
|
15483
15483
|
var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
|
|
@@ -15546,7 +15546,7 @@ var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
|
|
|
15546
15546
|
src: __props.src,
|
|
15547
15547
|
alt: "",
|
|
15548
15548
|
onLoad: onImageLoaded
|
|
15549
|
-
}, null, 42, _hoisted_1$
|
|
15549
|
+
}, null, 42, _hoisted_1$29), createElementVNode("div", {
|
|
15550
15550
|
class: normalizeClass(unref(FocalPoint_module_default).focalPointEditorArea),
|
|
15551
15551
|
style: normalizeStyle({
|
|
15552
15552
|
top: `${focalPointY.value}%`,
|
|
@@ -15575,7 +15575,7 @@ var FluxFocalPointEditor_default = /* @__PURE__ */ defineComponent({
|
|
|
15575
15575
|
});
|
|
15576
15576
|
//#endregion
|
|
15577
15577
|
//#region src/component/FluxFocalPointImage.vue?vue&type=script&setup=true&lang.ts
|
|
15578
|
-
var _hoisted_1$
|
|
15578
|
+
var _hoisted_1$28 = ["src", "alt"];
|
|
15579
15579
|
//#endregion
|
|
15580
15580
|
//#region src/component/FluxFocalPointImage.vue
|
|
15581
15581
|
var FluxFocalPointImage_default = /* @__PURE__ */ defineComponent({
|
|
@@ -15594,13 +15594,13 @@ var FluxFocalPointImage_default = /* @__PURE__ */ defineComponent({
|
|
|
15594
15594
|
style: normalizeStyle({ objectPosition: `${x.value}% ${y.value}%` }),
|
|
15595
15595
|
src: __props.src,
|
|
15596
15596
|
alt: __props.alt
|
|
15597
|
-
}, null, 14, _hoisted_1$
|
|
15597
|
+
}, null, 14, _hoisted_1$28);
|
|
15598
15598
|
};
|
|
15599
15599
|
}
|
|
15600
15600
|
});
|
|
15601
15601
|
//#endregion
|
|
15602
15602
|
//#region src/component/FluxForm.vue?vue&type=script&setup=true&lang.ts
|
|
15603
|
-
var _hoisted_1$
|
|
15603
|
+
var _hoisted_1$27 = ["aria-disabled"];
|
|
15604
15604
|
//#endregion
|
|
15605
15605
|
//#region src/component/FluxForm.vue
|
|
15606
15606
|
var FluxForm_default = /* @__PURE__ */ defineComponent({
|
|
@@ -15623,7 +15623,7 @@ var FluxForm_default = /* @__PURE__ */ defineComponent({
|
|
|
15623
15623
|
}, [createVNode(FluxDisabled_default, { disabled: __props.disabled }, {
|
|
15624
15624
|
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
15625
15625
|
_: 3
|
|
15626
|
-
}, 8, ["disabled"])], 42, _hoisted_1$
|
|
15626
|
+
}, 8, ["disabled"])], 42, _hoisted_1$27);
|
|
15627
15627
|
};
|
|
15628
15628
|
}
|
|
15629
15629
|
});
|
|
@@ -15735,7 +15735,7 @@ var FluxFormDateInput_default = /* @__PURE__ */ defineComponent({
|
|
|
15735
15735
|
});
|
|
15736
15736
|
//#endregion
|
|
15737
15737
|
//#region src/component/FluxFormDateRangeInput.vue?vue&type=script&setup=true&lang.ts
|
|
15738
|
-
var _hoisted_1$
|
|
15738
|
+
var _hoisted_1$26 = { key: 0 };
|
|
15739
15739
|
//#endregion
|
|
15740
15740
|
//#region src/component/FluxFormDateRangeInput.vue
|
|
15741
15741
|
var FluxFormDateRangeInput_default = /* @__PURE__ */ defineComponent({
|
|
@@ -15781,7 +15781,7 @@ var FluxFormDateRangeInput_default = /* @__PURE__ */ defineComponent({
|
|
|
15781
15781
|
default: withCtx(() => [createElementVNode("div", {
|
|
15782
15782
|
class: normalizeClass(unref(clsx)(unref(Form_module_default).formDateRangeInput, unref(disabled) && unref(Form_module_default).isDisabled, __props.isCondensed && unref(Form_module_default).isCondensed, __props.isSecondary && unref(Form_module_default).isSecondary, __props.error && unref(Form_module_default).isInvalid)),
|
|
15783
15783
|
role: "presentation"
|
|
15784
|
-
}, [label.value ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
15784
|
+
}, [label.value ? (openBlock(), createElementBlock("span", _hoisted_1$26, toDisplayString(label.value), 1)) : __props.placeholder ? (openBlock(), createElementBlock("span", {
|
|
15785
15785
|
key: 1,
|
|
15786
15786
|
class: normalizeClass(unref(Form_module_default).formSelectPlaceholder)
|
|
15787
15787
|
}, toDisplayString(__props.placeholder), 3)) : createCommentVNode("", true)], 2), createVNode(FluxSecondaryButton_default, {
|
|
@@ -15954,7 +15954,7 @@ var FluxFormGrid_default = /* @__PURE__ */ defineComponent({
|
|
|
15954
15954
|
});
|
|
15955
15955
|
//#endregion
|
|
15956
15956
|
//#region src/component/FluxFormInputAddition.vue?vue&type=script&setup=true&lang.ts
|
|
15957
|
-
var _hoisted_1$
|
|
15957
|
+
var _hoisted_1$25 = { key: 1 };
|
|
15958
15958
|
//#endregion
|
|
15959
15959
|
//#region src/component/FluxFormInputAddition.vue
|
|
15960
15960
|
var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
|
|
@@ -15971,7 +15971,7 @@ var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
|
|
|
15971
15971
|
name: __props.icon,
|
|
15972
15972
|
size: 18
|
|
15973
15973
|
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
15974
|
-
__props.label ? (openBlock(), createElementBlock("span", _hoisted_1$
|
|
15974
|
+
__props.label ? (openBlock(), createElementBlock("span", _hoisted_1$25, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
|
|
15975
15975
|
renderSlot(_ctx.$slots, "default")
|
|
15976
15976
|
], 2);
|
|
15977
15977
|
};
|
|
@@ -15979,14 +15979,14 @@ var FluxFormInputAddition_default = /* @__PURE__ */ defineComponent({
|
|
|
15979
15979
|
});
|
|
15980
15980
|
//#endregion
|
|
15981
15981
|
//#region src/component/FluxFormPinInput.vue?vue&type=script&setup=true&lang.ts
|
|
15982
|
-
var _hoisted_1$
|
|
15982
|
+
var _hoisted_1$24 = [
|
|
15983
15983
|
"id",
|
|
15984
15984
|
"name",
|
|
15985
15985
|
"autofocus",
|
|
15986
15986
|
"aria-disabled",
|
|
15987
15987
|
"aria-invalid"
|
|
15988
15988
|
];
|
|
15989
|
-
var _hoisted_2$
|
|
15989
|
+
var _hoisted_2$9 = [
|
|
15990
15990
|
"aria-label",
|
|
15991
15991
|
"autocomplete",
|
|
15992
15992
|
"autofocus",
|
|
@@ -16102,8 +16102,8 @@ var FluxFormPinInput_default = /* @__PURE__ */ defineComponent({
|
|
|
16102
16102
|
onInput,
|
|
16103
16103
|
onKeydown: onKeyDown,
|
|
16104
16104
|
onPaste
|
|
16105
|
-
}, null, 42, _hoisted_2$
|
|
16106
|
-
}), 128))], 14, _hoisted_1$
|
|
16105
|
+
}, null, 42, _hoisted_2$9);
|
|
16106
|
+
}), 128))], 14, _hoisted_1$24);
|
|
16107
16107
|
};
|
|
16108
16108
|
}
|
|
16109
16109
|
});
|
|
@@ -16399,7 +16399,7 @@ var FluxFormSelectAsync_default = /* @__PURE__ */ defineComponent({
|
|
|
16399
16399
|
});
|
|
16400
16400
|
//#endregion
|
|
16401
16401
|
//#region src/component/FluxFormTextArea.vue?vue&type=script&setup=true&lang.ts
|
|
16402
|
-
var _hoisted_1$
|
|
16402
|
+
var _hoisted_1$23 = [
|
|
16403
16403
|
"id",
|
|
16404
16404
|
"name",
|
|
16405
16405
|
"autocomplete",
|
|
@@ -16461,7 +16461,7 @@ var FluxFormTextArea_default = /* @__PURE__ */ defineComponent({
|
|
|
16461
16461
|
"aria-invalid": __props.error ? true : void 0,
|
|
16462
16462
|
onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur")),
|
|
16463
16463
|
onFocus: _cache[2] || (_cache[2] = ($event) => emit("focus"))
|
|
16464
|
-
}, null, 46, _hoisted_1$
|
|
16464
|
+
}, null, 46, _hoisted_1$23)), [[vModelText, modelValue.value]]);
|
|
16465
16465
|
};
|
|
16466
16466
|
}
|
|
16467
16467
|
});
|
|
@@ -17188,7 +17188,7 @@ var TreeViewSelect_module_default = {
|
|
|
17188
17188
|
};
|
|
17189
17189
|
//#endregion
|
|
17190
17190
|
//#region src/component/FluxFormTreeViewSelect.vue?vue&type=script&setup=true&lang.ts
|
|
17191
|
-
var _hoisted_1$
|
|
17191
|
+
var _hoisted_1$22 = [
|
|
17192
17192
|
"role",
|
|
17193
17193
|
"tabindex",
|
|
17194
17194
|
"aria-selected",
|
|
@@ -17429,7 +17429,7 @@ var FluxFormTreeViewSelect_default = /* @__PURE__ */ defineComponent({
|
|
|
17429
17429
|
"expanded",
|
|
17430
17430
|
"level-colors",
|
|
17431
17431
|
"onExpandClick"
|
|
17432
|
-
])], 42, _hoisted_1$
|
|
17432
|
+
])], 42, _hoisted_1$22);
|
|
17433
17433
|
}), 128))], 2)]),
|
|
17434
17434
|
_: 1
|
|
17435
17435
|
}, 8, ["class", "anchor"])) : createCommentVNode("", true)]),
|
|
@@ -17444,7 +17444,7 @@ var Remove_module_default = {
|
|
|
17444
17444
|
};
|
|
17445
17445
|
//#endregion
|
|
17446
17446
|
//#region src/component/FluxRemove.vue?vue&type=script&setup=true&lang.ts
|
|
17447
|
-
var _hoisted_1$
|
|
17447
|
+
var _hoisted_1$21 = ["aria-label"];
|
|
17448
17448
|
//#endregion
|
|
17449
17449
|
//#region src/component/FluxRemove.vue
|
|
17450
17450
|
var FluxRemove_default = /* @__PURE__ */ defineComponent({
|
|
@@ -17467,7 +17467,7 @@ var FluxRemove_default = /* @__PURE__ */ defineComponent({
|
|
|
17467
17467
|
key: 0,
|
|
17468
17468
|
name: __props.icon,
|
|
17469
17469
|
size: 16
|
|
17470
|
-
}, null, 8, ["name"])) : createCommentVNode("", true)], 10, _hoisted_1$
|
|
17470
|
+
}, null, 8, ["name"])) : createCommentVNode("", true)], 10, _hoisted_1$21);
|
|
17471
17471
|
};
|
|
17472
17472
|
}
|
|
17473
17473
|
});
|
|
@@ -17540,7 +17540,7 @@ var FluxGalleryItem_default = /* @__PURE__ */ defineComponent({
|
|
|
17540
17540
|
});
|
|
17541
17541
|
//#endregion
|
|
17542
17542
|
//#region src/component/FluxGallery.vue?vue&type=script&setup=true&lang.ts
|
|
17543
|
-
var _hoisted_1$
|
|
17543
|
+
var _hoisted_1$20 = ["onClick"];
|
|
17544
17544
|
//#endregion
|
|
17545
17545
|
//#region src/component/FluxGallery.vue
|
|
17546
17546
|
var FluxGallery_default = /* @__PURE__ */ defineComponent({
|
|
@@ -17618,7 +17618,7 @@ var FluxGallery_default = /* @__PURE__ */ defineComponent({
|
|
|
17618
17618
|
class: normalizeClass(unref(Gallery_module_default).galleryAdd),
|
|
17619
17619
|
type: "button",
|
|
17620
17620
|
onClick: ($event) => showPicker()
|
|
17621
|
-
}, [createVNode(FluxIcon_default, { name: "plus" })], 10, _hoisted_1$
|
|
17621
|
+
}, [createVNode(FluxIcon_default, { name: "plus" })], 10, _hoisted_1$20)) : createCommentVNode("", true)
|
|
17622
17622
|
]),
|
|
17623
17623
|
_: 2
|
|
17624
17624
|
}, 1032, ["class", "move-class"])]),
|
|
@@ -17685,12 +17685,12 @@ var FluxGridColumn_default = /* @__PURE__ */ defineComponent({
|
|
|
17685
17685
|
});
|
|
17686
17686
|
//#endregion
|
|
17687
17687
|
//#region src/component/FluxGridPattern.vue?vue&type=script&setup=true&lang.ts
|
|
17688
|
-
var _hoisted_1$
|
|
17688
|
+
var _hoisted_1$19 = [
|
|
17689
17689
|
"id",
|
|
17690
17690
|
"width",
|
|
17691
17691
|
"height"
|
|
17692
17692
|
];
|
|
17693
|
-
var _hoisted_2$
|
|
17693
|
+
var _hoisted_2$8 = ["d", "stroke-dasharray"];
|
|
17694
17694
|
var _hoisted_3$3 = ["fill"];
|
|
17695
17695
|
var _hoisted_4 = {
|
|
17696
17696
|
key: 0,
|
|
@@ -17730,7 +17730,7 @@ var FluxGridPattern_default = /* @__PURE__ */ defineComponent({
|
|
|
17730
17730
|
d: `M.5 ${__props.height}V.5H${__props.width}`,
|
|
17731
17731
|
fill: "none",
|
|
17732
17732
|
"stroke-dasharray": __props.strokeDasharray
|
|
17733
|
-
}, null, 8, _hoisted_2$
|
|
17733
|
+
}, null, 8, _hoisted_2$8)], 8, _hoisted_1$19)]),
|
|
17734
17734
|
createElementVNode("rect", {
|
|
17735
17735
|
width: "100%",
|
|
17736
17736
|
height: "100%",
|
|
@@ -17773,24 +17773,114 @@ var FluxInfo_default = /* @__PURE__ */ defineComponent({
|
|
|
17773
17773
|
});
|
|
17774
17774
|
//#endregion
|
|
17775
17775
|
//#region src/composable/private/useKanban.ts
|
|
17776
|
+
var AUTOSCROLL_ZONE = 40;
|
|
17777
|
+
var AUTOSCROLL_MAX_SPEED = 12;
|
|
17778
|
+
var DRAG_LEAVE_GRACE_MS = 50;
|
|
17776
17779
|
/**
|
|
17777
17780
|
* Internal composable for managing kanban drag-and-drop state.
|
|
17778
|
-
* Provides card registration, drag tracking,
|
|
17781
|
+
* Provides card registration, drag tracking, drop target management,
|
|
17782
|
+
* keyboard drag-and-drop, column reordering, drop validation and auto-scroll.
|
|
17779
17783
|
*/
|
|
17780
|
-
function useKanban(
|
|
17784
|
+
function useKanban(options) {
|
|
17781
17785
|
const dragState = ref(null);
|
|
17786
|
+
const columnDragState = ref(null);
|
|
17782
17787
|
const cardRegistry = /* @__PURE__ */ new WeakMap();
|
|
17788
|
+
const cardElementsById = /* @__PURE__ */ new Map();
|
|
17789
|
+
const columnRegistry = /* @__PURE__ */ new WeakMap();
|
|
17790
|
+
const columnElementsById = /* @__PURE__ */ new Map();
|
|
17791
|
+
const columnBodyById = /* @__PURE__ */ new Map();
|
|
17792
|
+
let boardElement = null;
|
|
17793
|
+
let clearTimer = null;
|
|
17794
|
+
let autoScrollFrame = null;
|
|
17795
|
+
let autoScrollX = 0;
|
|
17796
|
+
let autoScrollY = 0;
|
|
17797
|
+
let autoScrollVerticalTarget = null;
|
|
17798
|
+
const isDropAllowed = computed(() => {
|
|
17799
|
+
const state = unref(dragState);
|
|
17800
|
+
if (!state || state.dropColumnId === null) return true;
|
|
17801
|
+
const validate = unref(options.canMove);
|
|
17802
|
+
if (!validate) return true;
|
|
17803
|
+
return validate(buildMoveEvent(state));
|
|
17804
|
+
});
|
|
17805
|
+
function buildMoveEvent(state) {
|
|
17806
|
+
return {
|
|
17807
|
+
cardId: state.cardId,
|
|
17808
|
+
fromColumnId: state.fromColumnId,
|
|
17809
|
+
toColumnId: state.dropColumnId,
|
|
17810
|
+
beforeCardId: state.beforeCardId ?? void 0
|
|
17811
|
+
};
|
|
17812
|
+
}
|
|
17813
|
+
function clearTimerIfAny() {
|
|
17814
|
+
if (clearTimer !== null) {
|
|
17815
|
+
clearTimeout(clearTimer);
|
|
17816
|
+
clearTimer = null;
|
|
17817
|
+
}
|
|
17818
|
+
}
|
|
17819
|
+
function isSelfDrop(state) {
|
|
17820
|
+
if (state.dropColumnId !== state.fromColumnId) return false;
|
|
17821
|
+
if (state.beforeCardId === state.cardId) return true;
|
|
17822
|
+
const fromBody = columnBodyById.get(state.fromColumnId);
|
|
17823
|
+
if (!fromBody) return false;
|
|
17824
|
+
const cards = Array.from(fromBody.children).filter((child) => cardRegistry.has(child));
|
|
17825
|
+
const draggedIndex = cards.findIndex((elm) => cardRegistry.get(elm)?.cardId === state.cardId);
|
|
17826
|
+
if (draggedIndex === -1) return false;
|
|
17827
|
+
if (state.beforeCardId === null) return draggedIndex === cards.length - 1;
|
|
17828
|
+
const beforeIndex = cards.findIndex((elm) => cardRegistry.get(elm)?.cardId === state.beforeCardId);
|
|
17829
|
+
return beforeIndex !== -1 && beforeIndex === draggedIndex + 1;
|
|
17830
|
+
}
|
|
17831
|
+
function getColumnIndex(columnId) {
|
|
17832
|
+
if (!boardElement) return -1;
|
|
17833
|
+
return Array.from(boardElement.children).filter((child) => columnRegistry.has(child)).findIndex((elm) => columnRegistry.get(elm)?.columnId === columnId);
|
|
17834
|
+
}
|
|
17835
|
+
function getColumnByIndex(index) {
|
|
17836
|
+
if (!boardElement) return null;
|
|
17837
|
+
const elm = Array.from(boardElement.children).filter((child) => columnRegistry.has(child))[index];
|
|
17838
|
+
return elm ? columnRegistry.get(elm) : null;
|
|
17839
|
+
}
|
|
17840
|
+
function getCardsInColumn(columnId) {
|
|
17841
|
+
const body = columnBodyById.get(columnId);
|
|
17842
|
+
if (!body) return [];
|
|
17843
|
+
return Array.from(body.children).map((child) => cardRegistry.get(child)?.cardId).filter((id) => id !== void 0);
|
|
17844
|
+
}
|
|
17783
17845
|
function registerCard(element, cardId) {
|
|
17784
17846
|
cardRegistry.set(element, { cardId });
|
|
17847
|
+
cardElementsById.set(cardId, element);
|
|
17785
17848
|
}
|
|
17786
17849
|
function unregisterCard(element) {
|
|
17850
|
+
const info = cardRegistry.get(element);
|
|
17851
|
+
if (info) cardElementsById.delete(info.cardId);
|
|
17787
17852
|
cardRegistry.delete(element);
|
|
17788
17853
|
}
|
|
17789
17854
|
function getCardInfo(element) {
|
|
17790
17855
|
return cardRegistry.get(element);
|
|
17791
17856
|
}
|
|
17857
|
+
function registerColumn(element, columnId) {
|
|
17858
|
+
columnRegistry.set(element, { columnId });
|
|
17859
|
+
columnElementsById.set(columnId, element);
|
|
17860
|
+
}
|
|
17861
|
+
function unregisterColumn(element) {
|
|
17862
|
+
const info = columnRegistry.get(element);
|
|
17863
|
+
if (info) {
|
|
17864
|
+
columnElementsById.delete(info.columnId);
|
|
17865
|
+
columnBodyById.delete(info.columnId);
|
|
17866
|
+
}
|
|
17867
|
+
columnRegistry.delete(element);
|
|
17868
|
+
}
|
|
17869
|
+
function getColumnInfo(element) {
|
|
17870
|
+
return columnRegistry.get(element);
|
|
17871
|
+
}
|
|
17872
|
+
function setBoardElement(element) {
|
|
17873
|
+
boardElement = element;
|
|
17874
|
+
}
|
|
17875
|
+
function setColumnBodyElement(columnId, element) {
|
|
17876
|
+
if (element) columnBodyById.set(columnId, element);
|
|
17877
|
+
else columnBodyById.delete(columnId);
|
|
17878
|
+
}
|
|
17792
17879
|
function startDrag(cardId, fromColumnId) {
|
|
17880
|
+
if (unref(options.disabled)) return;
|
|
17881
|
+
clearTimerIfAny();
|
|
17793
17882
|
dragState.value = {
|
|
17883
|
+
mode: "pointer",
|
|
17794
17884
|
cardId,
|
|
17795
17885
|
fromColumnId,
|
|
17796
17886
|
dropColumnId: null,
|
|
@@ -17798,10 +17888,13 @@ function useKanban(onMove) {
|
|
|
17798
17888
|
};
|
|
17799
17889
|
}
|
|
17800
17890
|
function endDrag() {
|
|
17891
|
+
clearTimerIfAny();
|
|
17892
|
+
stopAutoScroll();
|
|
17801
17893
|
dragState.value = null;
|
|
17802
17894
|
}
|
|
17803
17895
|
function updateDropTarget(columnId, beforeCardId) {
|
|
17804
17896
|
if (!dragState.value) return;
|
|
17897
|
+
clearTimerIfAny();
|
|
17805
17898
|
dragState.value = {
|
|
17806
17899
|
...dragState.value,
|
|
17807
17900
|
dropColumnId: columnId,
|
|
@@ -17810,69 +17903,413 @@ function useKanban(onMove) {
|
|
|
17810
17903
|
}
|
|
17811
17904
|
function clearDropTarget() {
|
|
17812
17905
|
if (!dragState.value) return;
|
|
17813
|
-
|
|
17814
|
-
|
|
17815
|
-
|
|
17816
|
-
|
|
17817
|
-
|
|
17906
|
+
clearTimerIfAny();
|
|
17907
|
+
clearTimer = setTimeout(() => {
|
|
17908
|
+
clearTimer = null;
|
|
17909
|
+
if (!dragState.value) return;
|
|
17910
|
+
dragState.value = {
|
|
17911
|
+
...dragState.value,
|
|
17912
|
+
dropColumnId: null,
|
|
17913
|
+
beforeCardId: null
|
|
17914
|
+
};
|
|
17915
|
+
}, DRAG_LEAVE_GRACE_MS);
|
|
17818
17916
|
}
|
|
17819
17917
|
function commitDrop() {
|
|
17820
17918
|
const state = dragState.value;
|
|
17919
|
+
clearTimerIfAny();
|
|
17920
|
+
stopAutoScroll();
|
|
17821
17921
|
if (!state || state.dropColumnId === null) {
|
|
17822
17922
|
dragState.value = null;
|
|
17823
17923
|
return;
|
|
17824
17924
|
}
|
|
17825
|
-
|
|
17826
|
-
|
|
17827
|
-
|
|
17828
|
-
|
|
17829
|
-
|
|
17925
|
+
if (isSelfDrop(state)) {
|
|
17926
|
+
dragState.value = null;
|
|
17927
|
+
return;
|
|
17928
|
+
}
|
|
17929
|
+
const event = buildMoveEvent(state);
|
|
17930
|
+
const validate = unref(options.canMove);
|
|
17931
|
+
if (validate && !validate(event)) {
|
|
17932
|
+
options.onAnnounce("Drop not allowed.");
|
|
17933
|
+
dragState.value = null;
|
|
17934
|
+
return;
|
|
17935
|
+
}
|
|
17936
|
+
options.onMove(event);
|
|
17937
|
+
options.onAnnounce(`Card moved to ${String(state.dropColumnId)}.`);
|
|
17938
|
+
dragState.value = null;
|
|
17939
|
+
}
|
|
17940
|
+
function findCurrentColumnId(cardId) {
|
|
17941
|
+
for (const columnId of columnElementsById.keys()) if (getCardsInColumn(columnId).includes(cardId)) return columnId;
|
|
17942
|
+
return null;
|
|
17943
|
+
}
|
|
17944
|
+
function findCurrentBeforeCardId(cardId, columnId) {
|
|
17945
|
+
const cards = getCardsInColumn(columnId);
|
|
17946
|
+
const idx = cards.indexOf(cardId);
|
|
17947
|
+
if (idx === -1) return null;
|
|
17948
|
+
return cards[idx + 1] ?? null;
|
|
17949
|
+
}
|
|
17950
|
+
function grabCard(cardId, fromColumnId) {
|
|
17951
|
+
if (unref(options.disabled)) return;
|
|
17952
|
+
clearTimerIfAny();
|
|
17953
|
+
dragState.value = {
|
|
17954
|
+
mode: "keyboard",
|
|
17955
|
+
cardId,
|
|
17956
|
+
fromColumnId,
|
|
17957
|
+
dropColumnId: null,
|
|
17958
|
+
beforeCardId: null,
|
|
17959
|
+
originBeforeCardId: findCurrentBeforeCardId(cardId, fromColumnId)
|
|
17960
|
+
};
|
|
17961
|
+
options.onAnnounce("Card grabbed. Use arrow keys to move, Enter to drop, Escape to cancel.");
|
|
17962
|
+
}
|
|
17963
|
+
function moveKeyboard(direction) {
|
|
17964
|
+
const state = dragState.value;
|
|
17965
|
+
if (!state || state.mode !== "keyboard") return;
|
|
17966
|
+
const cardId = state.cardId;
|
|
17967
|
+
const currentColumnId = findCurrentColumnId(cardId);
|
|
17968
|
+
if (currentColumnId === null) return;
|
|
17969
|
+
const target = direction === "up" || direction === "down" ? computeWithinColumnTarget(cardId, currentColumnId, direction) : computeAcrossColumnTarget(currentColumnId, direction);
|
|
17970
|
+
if (!target) return;
|
|
17971
|
+
const event = {
|
|
17972
|
+
cardId,
|
|
17973
|
+
fromColumnId: currentColumnId,
|
|
17974
|
+
toColumnId: target.columnId,
|
|
17975
|
+
beforeCardId: target.beforeCardId ?? void 0
|
|
17976
|
+
};
|
|
17977
|
+
const validate = unref(options.canMove);
|
|
17978
|
+
if (validate && !validate(event)) {
|
|
17979
|
+
options.onAnnounce("Move not allowed.");
|
|
17980
|
+
return;
|
|
17981
|
+
}
|
|
17982
|
+
options.onMove(event);
|
|
17983
|
+
options.onAnnounce(target.announcement);
|
|
17984
|
+
restoreCardFocus(cardId);
|
|
17985
|
+
}
|
|
17986
|
+
function restoreCardFocus(cardId) {
|
|
17987
|
+
requestAnimationFrame(() => {
|
|
17988
|
+
const elm = cardElementsById.get(cardId);
|
|
17989
|
+
if (elm instanceof HTMLElement) elm.focus();
|
|
17990
|
+
});
|
|
17991
|
+
}
|
|
17992
|
+
function computeWithinColumnTarget(cardId, columnId, direction) {
|
|
17993
|
+
const cards = getCardsInColumn(columnId);
|
|
17994
|
+
const idx = cards.indexOf(cardId);
|
|
17995
|
+
if (idx === -1) return null;
|
|
17996
|
+
if (direction === "up") {
|
|
17997
|
+
if (idx === 0) return null;
|
|
17998
|
+
return {
|
|
17999
|
+
columnId,
|
|
18000
|
+
beforeCardId: cards[idx - 1],
|
|
18001
|
+
announcement: `Position ${idx} of ${cards.length}.`
|
|
18002
|
+
};
|
|
18003
|
+
}
|
|
18004
|
+
if (idx === cards.length - 1) return null;
|
|
18005
|
+
return {
|
|
18006
|
+
columnId,
|
|
18007
|
+
beforeCardId: cards[idx + 2] ?? null,
|
|
18008
|
+
announcement: `Position ${idx + 2} of ${cards.length}.`
|
|
18009
|
+
};
|
|
18010
|
+
}
|
|
18011
|
+
function computeAcrossColumnTarget(currentColumnId, direction) {
|
|
18012
|
+
const currentIdx = getColumnIndex(currentColumnId);
|
|
18013
|
+
if (currentIdx === -1) return null;
|
|
18014
|
+
const nextColumn = getColumnByIndex(direction === "left" ? currentIdx - 1 : currentIdx + 1);
|
|
18015
|
+
if (!nextColumn) return null;
|
|
18016
|
+
const targetCards = getCardsInColumn(nextColumn.columnId);
|
|
18017
|
+
return {
|
|
18018
|
+
columnId: nextColumn.columnId,
|
|
18019
|
+
beforeCardId: targetCards[0] ?? null,
|
|
18020
|
+
announcement: `Moved to column ${String(nextColumn.columnId)}.`
|
|
18021
|
+
};
|
|
18022
|
+
}
|
|
18023
|
+
function commitKeyboardDrop() {
|
|
18024
|
+
const state = dragState.value;
|
|
18025
|
+
if (!state || state.mode !== "keyboard") return;
|
|
18026
|
+
const currentColumnId = findCurrentColumnId(state.cardId);
|
|
18027
|
+
dragState.value = null;
|
|
18028
|
+
if (currentColumnId !== null) options.onAnnounce(`Card dropped in ${String(currentColumnId)}.`);
|
|
18029
|
+
}
|
|
18030
|
+
function cancelKeyboardDrop() {
|
|
18031
|
+
const state = dragState.value;
|
|
18032
|
+
if (!state || state.mode !== "keyboard") return;
|
|
18033
|
+
const cardId = state.cardId;
|
|
18034
|
+
const currentColumnId = findCurrentColumnId(cardId);
|
|
18035
|
+
const currentBeforeCardId = currentColumnId !== null ? findCurrentBeforeCardId(cardId, currentColumnId) : null;
|
|
18036
|
+
if (!(currentColumnId === state.fromColumnId && currentBeforeCardId === (state.originBeforeCardId ?? null)) && currentColumnId !== null) options.onMove({
|
|
18037
|
+
cardId,
|
|
18038
|
+
fromColumnId: currentColumnId,
|
|
18039
|
+
toColumnId: state.fromColumnId,
|
|
18040
|
+
beforeCardId: state.originBeforeCardId ?? void 0
|
|
17830
18041
|
});
|
|
17831
18042
|
dragState.value = null;
|
|
18043
|
+
options.onAnnounce("Drop cancelled.");
|
|
18044
|
+
}
|
|
18045
|
+
function isCardGrabbed(cardId) {
|
|
18046
|
+
const state = unref(dragState);
|
|
18047
|
+
return state !== null && state.mode === "keyboard" && state.cardId === cardId;
|
|
18048
|
+
}
|
|
18049
|
+
function startColumnDrag(columnId) {
|
|
18050
|
+
if (!unref(options.reorderableColumns) || unref(options.disabled)) return;
|
|
18051
|
+
columnDragState.value = {
|
|
18052
|
+
columnId,
|
|
18053
|
+
dropBeforeColumnId: null
|
|
18054
|
+
};
|
|
18055
|
+
}
|
|
18056
|
+
function endColumnDrag() {
|
|
18057
|
+
stopAutoScroll();
|
|
18058
|
+
columnDragState.value = null;
|
|
18059
|
+
}
|
|
18060
|
+
function updateColumnDropTarget(beforeColumnId) {
|
|
18061
|
+
if (!columnDragState.value) return;
|
|
18062
|
+
columnDragState.value = {
|
|
18063
|
+
...columnDragState.value,
|
|
18064
|
+
dropBeforeColumnId: beforeColumnId
|
|
18065
|
+
};
|
|
18066
|
+
}
|
|
18067
|
+
function commitColumnDrop() {
|
|
18068
|
+
const state = columnDragState.value;
|
|
18069
|
+
stopAutoScroll();
|
|
18070
|
+
if (!state) return;
|
|
18071
|
+
if (state.dropBeforeColumnId === state.columnId) {
|
|
18072
|
+
columnDragState.value = null;
|
|
18073
|
+
return;
|
|
18074
|
+
}
|
|
18075
|
+
const fromIdx = getColumnIndex(state.columnId);
|
|
18076
|
+
const beforeIdx = state.dropBeforeColumnId === null ? -1 : getColumnIndex(state.dropBeforeColumnId);
|
|
18077
|
+
if (fromIdx !== -1 && beforeIdx === fromIdx + 1) {
|
|
18078
|
+
columnDragState.value = null;
|
|
18079
|
+
return;
|
|
18080
|
+
}
|
|
18081
|
+
options.onMoveColumn({
|
|
18082
|
+
columnId: state.columnId,
|
|
18083
|
+
beforeColumnId: state.dropBeforeColumnId ?? void 0
|
|
18084
|
+
});
|
|
18085
|
+
columnDragState.value = null;
|
|
18086
|
+
}
|
|
18087
|
+
function onPointerMove(clientX, clientY) {
|
|
18088
|
+
if (!unref(dragState) && !unref(columnDragState)) return;
|
|
18089
|
+
autoScrollX = computeHorizontalScrollDelta(clientX);
|
|
18090
|
+
autoScrollY = 0;
|
|
18091
|
+
autoScrollVerticalTarget = null;
|
|
18092
|
+
const state = unref(dragState);
|
|
18093
|
+
if (state && state.dropColumnId !== null) {
|
|
18094
|
+
const body = columnBodyById.get(state.dropColumnId);
|
|
18095
|
+
if (body) {
|
|
18096
|
+
autoScrollY = computeVerticalScrollDelta(body, clientY);
|
|
18097
|
+
autoScrollVerticalTarget = body;
|
|
18098
|
+
}
|
|
18099
|
+
}
|
|
18100
|
+
if (autoScrollX !== 0 || autoScrollY !== 0) startAutoScroll();
|
|
18101
|
+
else stopAutoScroll();
|
|
18102
|
+
}
|
|
18103
|
+
function computeHorizontalScrollDelta(clientX) {
|
|
18104
|
+
if (!boardElement) return 0;
|
|
18105
|
+
const rect = boardElement.getBoundingClientRect();
|
|
18106
|
+
if (clientX < rect.left + AUTOSCROLL_ZONE) {
|
|
18107
|
+
const distance = Math.max(0, clientX - rect.left);
|
|
18108
|
+
return -Math.round((AUTOSCROLL_ZONE - distance) / AUTOSCROLL_ZONE * AUTOSCROLL_MAX_SPEED);
|
|
18109
|
+
}
|
|
18110
|
+
if (clientX > rect.right - AUTOSCROLL_ZONE) {
|
|
18111
|
+
const distance = Math.max(0, rect.right - clientX);
|
|
18112
|
+
return Math.round((AUTOSCROLL_ZONE - distance) / AUTOSCROLL_ZONE * AUTOSCROLL_MAX_SPEED);
|
|
18113
|
+
}
|
|
18114
|
+
return 0;
|
|
18115
|
+
}
|
|
18116
|
+
function computeVerticalScrollDelta(target, clientY) {
|
|
18117
|
+
const rect = target.getBoundingClientRect();
|
|
18118
|
+
if (clientY < rect.top + AUTOSCROLL_ZONE) {
|
|
18119
|
+
const distance = Math.max(0, clientY - rect.top);
|
|
18120
|
+
return -Math.round((AUTOSCROLL_ZONE - distance) / AUTOSCROLL_ZONE * AUTOSCROLL_MAX_SPEED);
|
|
18121
|
+
}
|
|
18122
|
+
if (clientY > rect.bottom - AUTOSCROLL_ZONE) {
|
|
18123
|
+
const distance = Math.max(0, rect.bottom - clientY);
|
|
18124
|
+
return Math.round((AUTOSCROLL_ZONE - distance) / AUTOSCROLL_ZONE * AUTOSCROLL_MAX_SPEED);
|
|
18125
|
+
}
|
|
18126
|
+
return 0;
|
|
18127
|
+
}
|
|
18128
|
+
function startAutoScroll() {
|
|
18129
|
+
if (autoScrollFrame !== null) return;
|
|
18130
|
+
const tick = () => {
|
|
18131
|
+
if (autoScrollX !== 0 && boardElement) boardElement.scrollLeft += autoScrollX;
|
|
18132
|
+
if (autoScrollY !== 0 && autoScrollVerticalTarget) autoScrollVerticalTarget.scrollTop += autoScrollY;
|
|
18133
|
+
if (autoScrollX === 0 && autoScrollY === 0) {
|
|
18134
|
+
autoScrollFrame = null;
|
|
18135
|
+
return;
|
|
18136
|
+
}
|
|
18137
|
+
autoScrollFrame = requestAnimationFrame(tick);
|
|
18138
|
+
};
|
|
18139
|
+
autoScrollFrame = requestAnimationFrame(tick);
|
|
18140
|
+
}
|
|
18141
|
+
function stopAutoScroll() {
|
|
18142
|
+
if (autoScrollFrame !== null) {
|
|
18143
|
+
cancelAnimationFrame(autoScrollFrame);
|
|
18144
|
+
autoScrollFrame = null;
|
|
18145
|
+
}
|
|
18146
|
+
autoScrollX = 0;
|
|
18147
|
+
autoScrollY = 0;
|
|
18148
|
+
autoScrollVerticalTarget = null;
|
|
17832
18149
|
}
|
|
17833
18150
|
return {
|
|
18151
|
+
disabled: options.disabled,
|
|
18152
|
+
reorderableColumns: options.reorderableColumns,
|
|
17834
18153
|
dragState,
|
|
18154
|
+
columnDragState,
|
|
18155
|
+
isDropAllowed,
|
|
17835
18156
|
registerCard,
|
|
17836
18157
|
unregisterCard,
|
|
17837
18158
|
getCardInfo,
|
|
18159
|
+
registerColumn,
|
|
18160
|
+
unregisterColumn,
|
|
18161
|
+
getColumnInfo,
|
|
18162
|
+
setBoardElement,
|
|
18163
|
+
setColumnBodyElement,
|
|
17838
18164
|
startDrag,
|
|
17839
18165
|
endDrag,
|
|
17840
18166
|
updateDropTarget,
|
|
17841
18167
|
clearDropTarget,
|
|
17842
|
-
commitDrop
|
|
18168
|
+
commitDrop,
|
|
18169
|
+
grabCard,
|
|
18170
|
+
moveKeyboard,
|
|
18171
|
+
commitKeyboardDrop,
|
|
18172
|
+
cancelKeyboardDrop,
|
|
18173
|
+
isCardGrabbed,
|
|
18174
|
+
startColumnDrag,
|
|
18175
|
+
endColumnDrag,
|
|
18176
|
+
updateColumnDropTarget,
|
|
18177
|
+
commitColumnDrop,
|
|
18178
|
+
onPointerMove
|
|
17843
18179
|
};
|
|
17844
18180
|
}
|
|
17845
|
-
var FluxKanban_module_default = {
|
|
18181
|
+
var FluxKanban_module_default = {
|
|
18182
|
+
kanban: `kanban`,
|
|
18183
|
+
kanbanLiveRegion: `kanban-live-region`,
|
|
18184
|
+
kanbanColumn: `kanban-column`,
|
|
18185
|
+
isColumnDragging: `is-column-dragging`,
|
|
18186
|
+
isColumnDropBefore: `is-column-drop-before`,
|
|
18187
|
+
kanbanColumnHeader: `kanban-column-header`,
|
|
18188
|
+
isReorderable: `is-reorderable`,
|
|
18189
|
+
kanbanColumnLabel: `kanban-column-label`,
|
|
18190
|
+
kanbanColumnBody: `kanban-column-body`,
|
|
18191
|
+
isOver: `is-over`,
|
|
18192
|
+
isDropDisallowed: `is-drop-disallowed`,
|
|
18193
|
+
isBoardDragging: `is-board-dragging`,
|
|
18194
|
+
isDisabled: `is-disabled`,
|
|
18195
|
+
kanbanColumnEmpty: `kanban-column-empty`,
|
|
18196
|
+
kanbanColumnFooter: `kanban-column-footer`,
|
|
18197
|
+
kanbanDropIndicator: `kanban-drop-indicator`,
|
|
18198
|
+
isDropEndActive: `is-drop-end-active`,
|
|
18199
|
+
isDropEndDisallowed: `is-drop-end-disallowed`,
|
|
18200
|
+
kanbanCard: `kanban-card`,
|
|
18201
|
+
isDragging: `is-dragging`,
|
|
18202
|
+
isGrabbed: `is-grabbed`,
|
|
18203
|
+
isDropBefore: `is-drop-before`,
|
|
18204
|
+
isDropBeforeDisallowed: `is-drop-before-disallowed`
|
|
18205
|
+
};
|
|
18206
|
+
//#endregion
|
|
18207
|
+
//#region src/component/FluxKanban.vue?vue&type=script&setup=true&lang.ts
|
|
18208
|
+
var _hoisted_1$18 = ["aria-label"];
|
|
17846
18209
|
//#endregion
|
|
17847
18210
|
//#region src/component/FluxKanban.vue
|
|
17848
18211
|
var FluxKanban_default = /* @__PURE__ */ defineComponent({
|
|
17849
18212
|
__name: "FluxKanban",
|
|
17850
|
-
|
|
18213
|
+
props: {
|
|
18214
|
+
ariaLabel: {},
|
|
18215
|
+
canMove: { type: Function },
|
|
18216
|
+
disabled: {
|
|
18217
|
+
type: Boolean,
|
|
18218
|
+
default: false
|
|
18219
|
+
},
|
|
18220
|
+
reorderableColumns: {
|
|
18221
|
+
type: Boolean,
|
|
18222
|
+
default: false
|
|
18223
|
+
}
|
|
18224
|
+
},
|
|
18225
|
+
emits: ["move", "moveColumn"],
|
|
17851
18226
|
setup(__props, { emit: __emit }) {
|
|
17852
18227
|
const emit = __emit;
|
|
17853
|
-
|
|
18228
|
+
const root = useTemplateRef("root");
|
|
18229
|
+
const liveMessage = ref("");
|
|
18230
|
+
const disabledRef = toRef(() => __props.disabled);
|
|
18231
|
+
const kanban = useKanban({
|
|
18232
|
+
disabled: disabledRef,
|
|
18233
|
+
reorderableColumns: toRef(() => __props.reorderableColumns),
|
|
18234
|
+
canMove: toRef(() => __props.canMove),
|
|
18235
|
+
onMove: (event) => emit("move", event),
|
|
18236
|
+
onMoveColumn: (event) => emit("moveColumn", event),
|
|
18237
|
+
onAnnounce: (message) => {
|
|
18238
|
+
liveMessage.value = "";
|
|
18239
|
+
requestAnimationFrame(() => {
|
|
18240
|
+
liveMessage.value = message;
|
|
18241
|
+
});
|
|
18242
|
+
}
|
|
18243
|
+
});
|
|
18244
|
+
const isDragging = computed(() => kanban.dragState.value !== null || kanban.columnDragState.value !== null);
|
|
18245
|
+
function onPointerMove(evt) {
|
|
18246
|
+
kanban.onPointerMove(evt.clientX, evt.clientY);
|
|
18247
|
+
}
|
|
18248
|
+
function onWindowDrop() {
|
|
18249
|
+
kanban.endDrag();
|
|
18250
|
+
kanban.endColumnDrag();
|
|
18251
|
+
}
|
|
18252
|
+
onMounted(() => {
|
|
18253
|
+
kanban.setBoardElement(root.value);
|
|
18254
|
+
window.addEventListener("drag", onPointerMove);
|
|
18255
|
+
window.addEventListener("dragend", onWindowDrop);
|
|
18256
|
+
});
|
|
18257
|
+
onBeforeUnmount(() => {
|
|
18258
|
+
kanban.setBoardElement(null);
|
|
18259
|
+
window.removeEventListener("drag", onPointerMove);
|
|
18260
|
+
window.removeEventListener("dragend", onWindowDrop);
|
|
18261
|
+
});
|
|
18262
|
+
watch(() => __props.disabled, (value) => {
|
|
18263
|
+
if (value) {
|
|
18264
|
+
kanban.endDrag();
|
|
18265
|
+
kanban.endColumnDrag();
|
|
18266
|
+
kanban.cancelKeyboardDrop();
|
|
18267
|
+
}
|
|
18268
|
+
});
|
|
18269
|
+
provide(FluxKanbanInjectionKey, kanban);
|
|
18270
|
+
provide(FluxDisabledInjectionKey, disabledRef);
|
|
17854
18271
|
return (_ctx, _cache) => {
|
|
17855
|
-
return openBlock(), createElementBlock("div", {
|
|
18272
|
+
return openBlock(), createElementBlock("div", {
|
|
18273
|
+
ref_key: "root",
|
|
18274
|
+
ref: root,
|
|
18275
|
+
role: "application",
|
|
18276
|
+
"aria-roledescription": "Kanban board",
|
|
18277
|
+
"aria-label": __props.ariaLabel,
|
|
18278
|
+
class: normalizeClass([unref(FluxKanban_module_default).kanban, isDragging.value && unref(FluxKanban_module_default).isBoardDragging])
|
|
18279
|
+
}, [renderSlot(_ctx.$slots, "default"), createElementVNode("div", {
|
|
18280
|
+
"aria-live": "polite",
|
|
18281
|
+
"aria-atomic": "true",
|
|
18282
|
+
class: normalizeClass(unref(FluxKanban_module_default).kanbanLiveRegion)
|
|
18283
|
+
}, toDisplayString(liveMessage.value), 3)], 10, _hoisted_1$18);
|
|
17856
18284
|
};
|
|
17857
18285
|
}
|
|
17858
18286
|
});
|
|
17859
|
-
|
|
17860
|
-
|
|
17861
|
-
|
|
17862
|
-
|
|
17863
|
-
|
|
18287
|
+
//#endregion
|
|
18288
|
+
//#region src/component/FluxKanbanCard.vue?vue&type=script&setup=true&lang.ts
|
|
18289
|
+
var _hoisted_1$17 = [
|
|
18290
|
+
"aria-disabled",
|
|
18291
|
+
"aria-grabbed",
|
|
18292
|
+
"draggable",
|
|
18293
|
+
"tabindex"
|
|
18294
|
+
];
|
|
17864
18295
|
//#endregion
|
|
17865
18296
|
//#region src/component/FluxKanbanCard.vue
|
|
17866
18297
|
var FluxKanbanCard_default = /* @__PURE__ */ defineComponent({
|
|
17867
18298
|
__name: "FluxKanbanCard",
|
|
17868
18299
|
props: {
|
|
17869
18300
|
cardId: {},
|
|
17870
|
-
columnId: {}
|
|
18301
|
+
columnId: {},
|
|
18302
|
+
disabled: {
|
|
18303
|
+
type: Boolean,
|
|
18304
|
+
default: false
|
|
18305
|
+
}
|
|
17871
18306
|
},
|
|
17872
18307
|
setup(__props) {
|
|
17873
18308
|
const kanban = inject(FluxKanbanInjectionKey);
|
|
17874
18309
|
const root = useTemplateRef("root");
|
|
17875
|
-
const
|
|
18310
|
+
const disabledState = useDisabled_default(toRef(() => __props.disabled));
|
|
18311
|
+
const isDragging = computed(() => unref(kanban.dragState)?.cardId === __props.cardId && unref(kanban.dragState)?.mode === "pointer");
|
|
18312
|
+
const isGrabbed = computed(() => kanban.isCardGrabbed(__props.cardId));
|
|
17876
18313
|
const isDropBefore = computed(() => {
|
|
17877
18314
|
const state = unref(kanban.dragState);
|
|
17878
18315
|
if (!state || state.dropColumnId === null || state.beforeCardId === null) return false;
|
|
@@ -17880,19 +18317,46 @@ var FluxKanbanCard_default = /* @__PURE__ */ defineComponent({
|
|
|
17880
18317
|
});
|
|
17881
18318
|
onMounted(() => {
|
|
17882
18319
|
if (root.value) kanban.registerCard(root.value, __props.cardId);
|
|
18320
|
+
if (kanban.isCardGrabbed(__props.cardId)) root.value?.focus();
|
|
17883
18321
|
});
|
|
17884
|
-
|
|
18322
|
+
onBeforeUnmount(() => {
|
|
17885
18323
|
if (root.value) kanban.unregisterCard(root.value);
|
|
17886
18324
|
});
|
|
18325
|
+
watch(() => __props.cardId, (newId, oldId) => {
|
|
18326
|
+
if (root.value && oldId !== void 0) {
|
|
18327
|
+
kanban.unregisterCard(root.value);
|
|
18328
|
+
kanban.registerCard(root.value, newId);
|
|
18329
|
+
}
|
|
18330
|
+
});
|
|
17887
18331
|
function onDragStart(evt) {
|
|
18332
|
+
if (unref(disabledState)) {
|
|
18333
|
+
evt.preventDefault();
|
|
18334
|
+
return;
|
|
18335
|
+
}
|
|
17888
18336
|
kanban.startDrag(__props.cardId, __props.columnId);
|
|
17889
|
-
if (evt.dataTransfer)
|
|
18337
|
+
if (evt.dataTransfer) {
|
|
18338
|
+
evt.dataTransfer.effectAllowed = "move";
|
|
18339
|
+
evt.dataTransfer.setData("text/plain", `card:${String(__props.cardId)}`);
|
|
18340
|
+
if (root.value) {
|
|
18341
|
+
const offsetX = evt.offsetX || root.value.getBoundingClientRect().width / 2;
|
|
18342
|
+
const offsetY = evt.offsetY || 12;
|
|
18343
|
+
evt.dataTransfer.setDragImage(root.value, offsetX, offsetY);
|
|
18344
|
+
}
|
|
18345
|
+
}
|
|
17890
18346
|
}
|
|
17891
18347
|
function onDragEnd() {
|
|
17892
18348
|
kanban.endDrag();
|
|
17893
18349
|
}
|
|
18350
|
+
function onFocus() {
|
|
18351
|
+
root.value?.scrollIntoView({
|
|
18352
|
+
block: "nearest",
|
|
18353
|
+
inline: "nearest",
|
|
18354
|
+
behavior: "smooth"
|
|
18355
|
+
});
|
|
18356
|
+
}
|
|
17894
18357
|
function onDragOver(evt) {
|
|
17895
|
-
if (!unref(kanban.dragState)) return;
|
|
18358
|
+
if (!unref(kanban.dragState) || unref(disabledState)) return;
|
|
18359
|
+
evt.preventDefault();
|
|
17896
18360
|
const cardEl = evt.currentTarget;
|
|
17897
18361
|
const rect = cardEl.getBoundingClientRect();
|
|
17898
18362
|
if (evt.clientY < rect.top + rect.height / 2) kanban.updateDropTarget(__props.columnId, __props.cardId);
|
|
@@ -17909,49 +18373,117 @@ var FluxKanbanCard_default = /* @__PURE__ */ defineComponent({
|
|
|
17909
18373
|
kanban.updateDropTarget(__props.columnId, null);
|
|
17910
18374
|
}
|
|
17911
18375
|
}
|
|
18376
|
+
function onKeyDown(evt) {
|
|
18377
|
+
if (unref(disabledState)) return;
|
|
18378
|
+
const state = unref(kanban.dragState);
|
|
18379
|
+
if (!(state !== null && state.mode === "keyboard" && state.cardId === __props.cardId)) {
|
|
18380
|
+
if (evt.key === " " || evt.key === "Enter") {
|
|
18381
|
+
evt.preventDefault();
|
|
18382
|
+
kanban.grabCard(__props.cardId, __props.columnId);
|
|
18383
|
+
}
|
|
18384
|
+
return;
|
|
18385
|
+
}
|
|
18386
|
+
switch (evt.key) {
|
|
18387
|
+
case "ArrowUp":
|
|
18388
|
+
evt.preventDefault();
|
|
18389
|
+
kanban.moveKeyboard("up");
|
|
18390
|
+
break;
|
|
18391
|
+
case "ArrowDown":
|
|
18392
|
+
evt.preventDefault();
|
|
18393
|
+
kanban.moveKeyboard("down");
|
|
18394
|
+
break;
|
|
18395
|
+
case "ArrowLeft":
|
|
18396
|
+
evt.preventDefault();
|
|
18397
|
+
kanban.moveKeyboard("left");
|
|
18398
|
+
break;
|
|
18399
|
+
case "ArrowRight":
|
|
18400
|
+
evt.preventDefault();
|
|
18401
|
+
kanban.moveKeyboard("right");
|
|
18402
|
+
break;
|
|
18403
|
+
case " ":
|
|
18404
|
+
case "Enter":
|
|
18405
|
+
evt.preventDefault();
|
|
18406
|
+
kanban.commitKeyboardDrop();
|
|
18407
|
+
break;
|
|
18408
|
+
case "Escape":
|
|
18409
|
+
evt.preventDefault();
|
|
18410
|
+
kanban.cancelKeyboardDrop();
|
|
18411
|
+
break;
|
|
18412
|
+
}
|
|
18413
|
+
}
|
|
17912
18414
|
return (_ctx, _cache) => {
|
|
17913
18415
|
return openBlock(), createElementBlock("div", {
|
|
17914
18416
|
ref_key: "root",
|
|
17915
18417
|
ref: root,
|
|
17916
18418
|
"data-kanban-card": "",
|
|
18419
|
+
role: "listitem",
|
|
18420
|
+
"aria-roledescription": "Kanban card",
|
|
18421
|
+
"aria-disabled": unref(disabledState) ? true : void 0,
|
|
18422
|
+
"aria-grabbed": isGrabbed.value ? true : void 0,
|
|
17917
18423
|
class: normalizeClass([
|
|
17918
|
-
unref(
|
|
17919
|
-
isDragging.value && unref(
|
|
17920
|
-
|
|
18424
|
+
unref(FluxKanban_module_default).kanbanCard,
|
|
18425
|
+
isDragging.value && unref(FluxKanban_module_default).isDragging,
|
|
18426
|
+
isGrabbed.value && unref(FluxKanban_module_default).isGrabbed,
|
|
18427
|
+
isDropBefore.value && unref(FluxKanban_module_default).isDropBefore,
|
|
18428
|
+
isDropBefore.value && !unref(kanban).isDropAllowed.value && unref(FluxKanban_module_default).isDropBeforeDisallowed,
|
|
18429
|
+
unref(disabledState) && unref(FluxKanban_module_default).isDisabled
|
|
17921
18430
|
]),
|
|
17922
|
-
draggable:
|
|
18431
|
+
draggable: !unref(disabledState),
|
|
18432
|
+
tabindex: unref(disabledState) ? -1 : 0,
|
|
17923
18433
|
onDragstart: onDragStart,
|
|
17924
18434
|
onDragend: onDragEnd,
|
|
17925
|
-
onDragover: withModifiers(onDragOver, ["
|
|
17926
|
-
|
|
18435
|
+
onDragover: withModifiers(onDragOver, ["stop"]),
|
|
18436
|
+
onFocus,
|
|
18437
|
+
onKeydown: onKeyDown
|
|
18438
|
+
}, [renderSlot(_ctx.$slots, "default")], 42, _hoisted_1$17);
|
|
17927
18439
|
};
|
|
17928
18440
|
}
|
|
17929
18441
|
});
|
|
17930
|
-
|
|
17931
|
-
|
|
17932
|
-
|
|
17933
|
-
|
|
17934
|
-
kanbanColumnBody: `kanban-column-body`,
|
|
17935
|
-
isOver: `is-over`,
|
|
17936
|
-
kanbanDropIndicator: `kanban-drop-indicator`
|
|
17937
|
-
};
|
|
18442
|
+
//#endregion
|
|
18443
|
+
//#region src/component/FluxKanbanColumn.vue?vue&type=script&setup=true&lang.ts
|
|
18444
|
+
var _hoisted_1$16 = ["aria-label", "aria-disabled"];
|
|
18445
|
+
var _hoisted_2$7 = ["draggable", "tabindex"];
|
|
17938
18446
|
//#endregion
|
|
17939
18447
|
//#region src/component/FluxKanbanColumn.vue
|
|
17940
18448
|
var FluxKanbanColumn_default = /* @__PURE__ */ defineComponent({
|
|
17941
18449
|
__name: "FluxKanbanColumn",
|
|
17942
18450
|
props: {
|
|
17943
18451
|
columnId: {},
|
|
18452
|
+
disabled: {
|
|
18453
|
+
type: Boolean,
|
|
18454
|
+
default: false
|
|
18455
|
+
},
|
|
17944
18456
|
label: {}
|
|
17945
18457
|
},
|
|
17946
18458
|
setup(__props) {
|
|
17947
18459
|
const kanban = inject(FluxKanbanInjectionKey);
|
|
18460
|
+
const root = useTemplateRef("root");
|
|
18461
|
+
const body = useTemplateRef("body");
|
|
18462
|
+
const slots = useSlots();
|
|
18463
|
+
const disabledState = useDisabled_default(toRef(() => __props.disabled));
|
|
18464
|
+
provide(FluxDisabledInjectionKey, disabledState);
|
|
17948
18465
|
let dragEnterCount = 0;
|
|
17949
18466
|
const isOver = ref(false);
|
|
18467
|
+
const isReorderable = computed(() => unref(kanban.reorderableColumns) && !unref(disabledState));
|
|
17950
18468
|
const isDropEnd = computed(() => {
|
|
17951
18469
|
const state = unref(kanban.dragState);
|
|
17952
18470
|
return state !== null && state.dropColumnId === __props.columnId && state.beforeCardId === null;
|
|
17953
18471
|
});
|
|
18472
|
+
const isColumnDragging = computed(() => unref(kanban.columnDragState)?.columnId === __props.columnId);
|
|
18473
|
+
const isColumnDropBefore = computed(() => {
|
|
18474
|
+
const state = unref(kanban.columnDragState);
|
|
18475
|
+
if (!state || state.dropBeforeColumnId !== __props.columnId || state.columnId === __props.columnId) return false;
|
|
18476
|
+
return true;
|
|
18477
|
+
});
|
|
18478
|
+
const isEmpty = computed(() => {
|
|
18479
|
+
if (!slots.empty) return false;
|
|
18480
|
+
const defaultSlot = slots.default?.();
|
|
18481
|
+
if (!defaultSlot || defaultSlot.length === 0) return true;
|
|
18482
|
+
return !a$2(defaultSlot).some((vnode) => vnode.type !== Comment && vnode.type !== Text);
|
|
18483
|
+
});
|
|
18484
|
+
const hasFooter = computed(() => !!slots.footer);
|
|
17954
18485
|
function onDragEnter() {
|
|
18486
|
+
if (unref(disabledState)) return;
|
|
17955
18487
|
dragEnterCount++;
|
|
17956
18488
|
isOver.value = true;
|
|
17957
18489
|
}
|
|
@@ -17963,27 +18495,120 @@ var FluxKanbanColumn_default = /* @__PURE__ */ defineComponent({
|
|
|
17963
18495
|
}
|
|
17964
18496
|
}
|
|
17965
18497
|
function onDragOver(evt) {
|
|
18498
|
+
if (unref(disabledState) || !unref(kanban.dragState)) return;
|
|
18499
|
+
evt.preventDefault();
|
|
17966
18500
|
if (!!!evt.target.closest("[data-kanban-card]")) kanban.updateDropTarget(__props.columnId, null);
|
|
17967
18501
|
}
|
|
17968
|
-
function onDrop() {
|
|
18502
|
+
function onDrop(evt) {
|
|
17969
18503
|
dragEnterCount = 0;
|
|
17970
18504
|
isOver.value = false;
|
|
18505
|
+
if (unref(disabledState) || !unref(kanban.dragState)) return;
|
|
18506
|
+
evt.preventDefault();
|
|
17971
18507
|
kanban.commitDrop();
|
|
17972
18508
|
}
|
|
18509
|
+
function onColumnDragStart(evt) {
|
|
18510
|
+
if (!unref(isReorderable)) return;
|
|
18511
|
+
if (evt.dataTransfer) {
|
|
18512
|
+
evt.dataTransfer.effectAllowed = "move";
|
|
18513
|
+
evt.dataTransfer.setData("text/plain", `column:${String(__props.columnId)}`);
|
|
18514
|
+
}
|
|
18515
|
+
kanban.startColumnDrag(__props.columnId);
|
|
18516
|
+
}
|
|
18517
|
+
function onColumnDragEnd() {
|
|
18518
|
+
kanban.endColumnDrag();
|
|
18519
|
+
}
|
|
18520
|
+
function onColumnDragOver(evt) {
|
|
18521
|
+
const state = unref(kanban.columnDragState);
|
|
18522
|
+
if (!state || state.columnId === __props.columnId) return;
|
|
18523
|
+
evt.preventDefault();
|
|
18524
|
+
const rect = evt.currentTarget.getBoundingClientRect();
|
|
18525
|
+
if (evt.clientX < rect.left + rect.width / 2) kanban.updateColumnDropTarget(__props.columnId);
|
|
18526
|
+
else {
|
|
18527
|
+
let next = root.value?.nextElementSibling ?? null;
|
|
18528
|
+
while (next) {
|
|
18529
|
+
const info = kanban.getColumnInfo(next);
|
|
18530
|
+
if (info) {
|
|
18531
|
+
kanban.updateColumnDropTarget(info.columnId);
|
|
18532
|
+
return;
|
|
18533
|
+
}
|
|
18534
|
+
next = next.nextElementSibling;
|
|
18535
|
+
}
|
|
18536
|
+
kanban.updateColumnDropTarget(null);
|
|
18537
|
+
}
|
|
18538
|
+
}
|
|
18539
|
+
function onColumnDrop(evt) {
|
|
18540
|
+
if (!unref(kanban.columnDragState)) return;
|
|
18541
|
+
evt.preventDefault();
|
|
18542
|
+
kanban.commitColumnDrop();
|
|
18543
|
+
}
|
|
18544
|
+
onMounted(() => {
|
|
18545
|
+
if (root.value) kanban.registerColumn(root.value, __props.columnId);
|
|
18546
|
+
if (body.value) kanban.setColumnBodyElement(__props.columnId, body.value);
|
|
18547
|
+
});
|
|
18548
|
+
onBeforeUnmount(() => {
|
|
18549
|
+
if (root.value) kanban.unregisterColumn(root.value);
|
|
18550
|
+
kanban.setColumnBodyElement(__props.columnId, null);
|
|
18551
|
+
});
|
|
18552
|
+
watch(() => __props.columnId, (newId, oldId) => {
|
|
18553
|
+
if (oldId !== void 0) kanban.setColumnBodyElement(oldId, null);
|
|
18554
|
+
if (root.value) {
|
|
18555
|
+
kanban.unregisterColumn(root.value);
|
|
18556
|
+
kanban.registerColumn(root.value, newId);
|
|
18557
|
+
}
|
|
18558
|
+
if (body.value) kanban.setColumnBodyElement(newId, body.value);
|
|
18559
|
+
});
|
|
17973
18560
|
return (_ctx, _cache) => {
|
|
17974
18561
|
return openBlock(), createElementBlock("div", {
|
|
17975
|
-
|
|
17976
|
-
|
|
17977
|
-
|
|
17978
|
-
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
|
|
17982
|
-
|
|
17983
|
-
|
|
17984
|
-
|
|
17985
|
-
|
|
17986
|
-
|
|
18562
|
+
ref_key: "root",
|
|
18563
|
+
ref: root,
|
|
18564
|
+
role: "list",
|
|
18565
|
+
"aria-roledescription": "Kanban column",
|
|
18566
|
+
"aria-label": __props.label,
|
|
18567
|
+
"aria-disabled": unref(disabledState) ? true : void 0,
|
|
18568
|
+
class: normalizeClass([
|
|
18569
|
+
unref(FluxKanban_module_default).kanbanColumn,
|
|
18570
|
+
isOver.value && unref(FluxKanban_module_default).isOver,
|
|
18571
|
+
isOver.value && !unref(kanban).isDropAllowed.value && unref(FluxKanban_module_default).isDropDisallowed,
|
|
18572
|
+
isReorderable.value && unref(FluxKanban_module_default).isReorderable,
|
|
18573
|
+
isColumnDragging.value && unref(FluxKanban_module_default).isColumnDragging,
|
|
18574
|
+
isColumnDropBefore.value && unref(FluxKanban_module_default).isColumnDropBefore,
|
|
18575
|
+
unref(disabledState) && unref(FluxKanban_module_default).isDisabled
|
|
18576
|
+
])
|
|
18577
|
+
}, [
|
|
18578
|
+
createElementVNode("div", {
|
|
18579
|
+
class: normalizeClass(unref(FluxKanban_module_default).kanbanColumnHeader),
|
|
18580
|
+
draggable: isReorderable.value && !unref(disabledState),
|
|
18581
|
+
tabindex: isReorderable.value && !unref(disabledState) ? 0 : void 0,
|
|
18582
|
+
onDragstart: onColumnDragStart,
|
|
18583
|
+
onDragend: onColumnDragEnd,
|
|
18584
|
+
onDragover: onColumnDragOver,
|
|
18585
|
+
onDrop: onColumnDrop
|
|
18586
|
+
}, [renderSlot(_ctx.$slots, "header", {}, () => [createElementVNode("span", { class: normalizeClass(unref(FluxKanban_module_default).kanbanColumnLabel) }, toDisplayString(__props.label), 3)]), renderSlot(_ctx.$slots, "actions")], 42, _hoisted_2$7),
|
|
18587
|
+
createElementVNode("div", {
|
|
18588
|
+
ref_key: "body",
|
|
18589
|
+
ref: body,
|
|
18590
|
+
class: normalizeClass(unref(FluxKanban_module_default).kanbanColumnBody),
|
|
18591
|
+
onDragenter: onDragEnter,
|
|
18592
|
+
onDragleave: onDragLeave,
|
|
18593
|
+
onDragover: onDragOver,
|
|
18594
|
+
onDrop
|
|
18595
|
+
}, [
|
|
18596
|
+
renderSlot(_ctx.$slots, "default"),
|
|
18597
|
+
isEmpty.value ? (openBlock(), createElementBlock("div", {
|
|
18598
|
+
key: 0,
|
|
18599
|
+
class: normalizeClass(unref(FluxKanban_module_default).kanbanColumnEmpty)
|
|
18600
|
+
}, [renderSlot(_ctx.$slots, "empty")], 2)) : createCommentVNode("", true),
|
|
18601
|
+
createElementVNode("div", { class: normalizeClass([
|
|
18602
|
+
unref(FluxKanban_module_default).kanbanDropIndicator,
|
|
18603
|
+
isDropEnd.value && unref(FluxKanban_module_default).isDropEndActive,
|
|
18604
|
+
isDropEnd.value && !unref(kanban).isDropAllowed.value && unref(FluxKanban_module_default).isDropEndDisallowed
|
|
18605
|
+
]) }, null, 2)
|
|
18606
|
+
], 34),
|
|
18607
|
+
hasFooter.value ? (openBlock(), createElementBlock("div", {
|
|
18608
|
+
key: 0,
|
|
18609
|
+
class: normalizeClass(unref(FluxKanban_module_default).kanbanColumnFooter)
|
|
18610
|
+
}, [renderSlot(_ctx.$slots, "footer")], 2)) : createCommentVNode("", true)
|
|
18611
|
+
], 10, _hoisted_1$16);
|
|
17987
18612
|
};
|
|
17988
18613
|
}
|
|
17989
18614
|
});
|
|
@@ -18110,10 +18735,10 @@ var FluxLayerPaneSecondary_default = /* @__PURE__ */ defineComponent({
|
|
|
18110
18735
|
});
|
|
18111
18736
|
//#endregion
|
|
18112
18737
|
//#region src/css/component/Legend.module.scss
|
|
18113
|
-
var { "
|
|
18738
|
+
var { "stackVertical": _0$5, "stackHorizontal": _1$1 } = Layout_module_default;
|
|
18114
18739
|
var Legend_module_default = {
|
|
18115
|
-
legendHorizontal: `legend-horizontal ${
|
|
18116
|
-
legendVertical: `legend-vertical ${
|
|
18740
|
+
legendHorizontal: `legend-horizontal ${_1$1}`,
|
|
18741
|
+
legendVertical: `legend-vertical ${_0$5}`,
|
|
18117
18742
|
legendItem: `legend-item`
|
|
18118
18743
|
};
|
|
18119
18744
|
//#endregion
|