@g1cloud/open-bluesea-core 1.0.0-alpha.5 → 1.0.0-alpha.6
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/BSAlertModal-ZEIUM0ut.js +4 -0
- package/dist/BSYesNoModal-Cs6mgXcP.js +4 -0
- package/dist/index.d.ts +1521 -44
- package/dist/open-bluesea-core.css +106 -2
- package/dist/open-bluesea-core.es.js +1059 -317
- package/dist/open-bluesea-core.umd.js +1066 -316
- package/package.json +2 -1
- package/dist/blueseaPlugin.d.ts +0 -43
- package/dist/component/basic/PageNavigation.model.d.ts +0 -5
- package/dist/component/input/DateInputLib.d.ts +0 -26
- package/dist/contextmenu/contextMenuPlugin.d.ts +0 -36
- package/dist/directive/vClickOutside.d.ts +0 -20
- package/dist/directive/vFocusOnLoad.d.ts +0 -3
- package/dist/directive/vTooltip.d.ts +0 -7
- package/dist/model/CommonTypes.d.ts +0 -29
- package/dist/model/DefaultImpl.d.ts +0 -7
- package/dist/model/FieldContext.d.ts +0 -14
- package/dist/notification/notificationPlugin.d.ts +0 -31
- package/dist/savepoint/SavePoint.d.ts +0 -46
- package/dist/util/componentUtil.d.ts +0 -11
- package/dist/util/debounceUtil.d.ts +0 -16
- package/dist/util/formatUtil.d.ts +0 -69
- package/dist/util/typeUtil.d.ts +0 -18
- package/dist/util/waitUtil.d.ts +0 -19
- package/dist/validator/FieldValidator.d.ts +0 -43
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { inject, ref, markRaw, reactive, defineComponent, withDirectives, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createElementVNode, toDisplayString, unref, computed, withModifiers, Fragment, renderList, onMounted, onBeforeUnmount, Teleport, createVNode, Transition, normalizeStyle, renderSlot, watch, nextTick, withKeys, provide, shallowRef, useTemplateRef, mergeProps, isRef, toHandlers, vModelDynamic, vModelText, useSlots, vShow, TransitionGroup, resolveComponent } from "vue";
|
|
1
|
+
import { inject, ref, markRaw, reactive, defineComponent, withDirectives, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, createElementBlock, createCommentVNode, createElementVNode, toDisplayString, unref, computed, withModifiers, Fragment, renderList, onMounted, onBeforeUnmount, Teleport, createVNode, Transition, normalizeStyle, renderSlot, watch, nextTick, withKeys, provide, shallowRef, useTemplateRef, mergeProps, isRef, toHandlers, vModelDynamic, vModelText, useSlots, vShow, defineAsyncComponent, TransitionGroup, resolveComponent } from "vue";
|
|
2
2
|
import dayjs from "dayjs";
|
|
3
3
|
const ContextMenuPluginKey = Symbol("BlueseaContextMenuPlugin");
|
|
4
4
|
class BSContextMenuPlugin {
|
|
@@ -24,17 +24,14 @@ class BSContextMenuPlugin {
|
|
|
24
24
|
// }
|
|
25
25
|
markComponentRaw(menus) {
|
|
26
26
|
menus.forEach((menu) => {
|
|
27
|
-
if (menu.component)
|
|
28
|
-
|
|
29
|
-
if (menu.children)
|
|
30
|
-
this.markComponentRaw(menu.children);
|
|
27
|
+
if (menu.component) menu.component = markRaw(menu.component);
|
|
28
|
+
if (menu.children) this.markComponentRaw(menu.children);
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
const useContextMenu = () => {
|
|
35
33
|
const contextMenu = inject(ContextMenuPluginKey);
|
|
36
|
-
if (!contextMenu)
|
|
37
|
-
throw new Error("BSContextMenuPlugin is not initialized.");
|
|
34
|
+
if (!contextMenu) throw new Error("BSContextMenuPlugin is not initialized.");
|
|
38
35
|
return contextMenu;
|
|
39
36
|
};
|
|
40
37
|
const useContextMenuOptional = () => {
|
|
@@ -59,8 +56,7 @@ class BlueseaConfig {
|
|
|
59
56
|
this.dateFormatSecond = config?.dateFormatSecond || this.dateFormatSecond;
|
|
60
57
|
this.minDateValue = config?.minDateValue || this.minDateValue;
|
|
61
58
|
this.maxDateValue = config?.maxDateValue || this.maxDateValue;
|
|
62
|
-
if (config?.timeZone)
|
|
63
|
-
this.timeZone = config.timeZone;
|
|
59
|
+
if (config?.timeZone) this.timeZone = config.timeZone;
|
|
64
60
|
this.componentConfig = {
|
|
65
61
|
popup: { hideOnScroll: false, ...config?.componentConfig?.popup },
|
|
66
62
|
calendar: { startYear: "-20", endYear: "+20", ...config?.componentConfig?.calendar }
|
|
@@ -68,14 +64,10 @@ class BlueseaConfig {
|
|
|
68
64
|
}
|
|
69
65
|
resolveDisplayDateFormat(format) {
|
|
70
66
|
const actualFormat = format || this.dateFormat;
|
|
71
|
-
if (actualFormat === "DAY")
|
|
72
|
-
|
|
73
|
-
else if (actualFormat === "
|
|
74
|
-
|
|
75
|
-
else if (actualFormat === "SECOND")
|
|
76
|
-
return this.dateFormatSecond;
|
|
77
|
-
else
|
|
78
|
-
return actualFormat;
|
|
67
|
+
if (actualFormat === "DAY") return this.dateFormatDay;
|
|
68
|
+
else if (actualFormat === "MINUTE") return this.dateFormatMinute;
|
|
69
|
+
else if (actualFormat === "SECOND") return this.dateFormatSecond;
|
|
70
|
+
else return actualFormat;
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
const BlueseaConfigKey = Symbol("BlueseaConfig");
|
|
@@ -156,10 +148,8 @@ const withLoading = async (func) => {
|
|
|
156
148
|
try {
|
|
157
149
|
return await func();
|
|
158
150
|
} finally {
|
|
159
|
-
if (shown)
|
|
160
|
-
|
|
161
|
-
if (timeoutId)
|
|
162
|
-
window.clearTimeout(timeoutId);
|
|
151
|
+
if (shown) hideLoading();
|
|
152
|
+
if (timeoutId) window.clearTimeout(timeoutId);
|
|
163
153
|
}
|
|
164
154
|
};
|
|
165
155
|
const DEFAULT_TOOLTIP_SHOW_DELAY = 800;
|
|
@@ -167,12 +157,10 @@ const DEFAULT_TOOLTIP_HIDE_DELAY = 0;
|
|
|
167
157
|
const setTooltipParam = (el, param) => {
|
|
168
158
|
if (param && param.content) {
|
|
169
159
|
el.setAttribute("data-bs-tooltip-data", JSON.stringify(param));
|
|
170
|
-
if (isTooltipDisplayed())
|
|
171
|
-
showTooltip(param.content, el);
|
|
160
|
+
if (isTooltipDisplayed()) showTooltip(param.content, el);
|
|
172
161
|
} else {
|
|
173
162
|
el.removeAttribute("data-bs-tooltip-data");
|
|
174
|
-
if (isTooltipDisplayed())
|
|
175
|
-
hideTooltip();
|
|
163
|
+
if (isTooltipDisplayed()) hideTooltip();
|
|
176
164
|
}
|
|
177
165
|
};
|
|
178
166
|
const vTooltip = {
|
|
@@ -206,8 +194,8 @@ const vTooltip = {
|
|
|
206
194
|
hideTooltip();
|
|
207
195
|
}
|
|
208
196
|
};
|
|
209
|
-
const _hoisted_1$
|
|
210
|
-
const _sfc_main$
|
|
197
|
+
const _hoisted_1$u = ["textContent"];
|
|
198
|
+
const _sfc_main$w = /* @__PURE__ */ defineComponent({
|
|
211
199
|
__name: "BSButton",
|
|
212
200
|
props: {
|
|
213
201
|
caption: {},
|
|
@@ -236,7 +224,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
236
224
|
}, toDisplayString(__props.leftIcon), 3)) : createCommentVNode("", true),
|
|
237
225
|
createElementVNode("span", {
|
|
238
226
|
textContent: toDisplayString(__props.caption)
|
|
239
|
-
}, null, 8, _hoisted_1$
|
|
227
|
+
}, null, 8, _hoisted_1$u),
|
|
240
228
|
__props.rightIcon ? (openBlock(), createElementBlock("span", {
|
|
241
229
|
key: 1,
|
|
242
230
|
class: normalizeClass([{ "ml-1": !!__props.caption }, "font-icon right"])
|
|
@@ -249,9 +237,9 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
|
249
237
|
};
|
|
250
238
|
}
|
|
251
239
|
});
|
|
252
|
-
const _hoisted_1$
|
|
253
|
-
const _hoisted_2$
|
|
254
|
-
const _sfc_main$
|
|
240
|
+
const _hoisted_1$t = { class: "page-navigation" };
|
|
241
|
+
const _hoisted_2$o = ["data-page", "onClick"];
|
|
242
|
+
const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
255
243
|
__name: "BSPageNavigation",
|
|
256
244
|
props: {
|
|
257
245
|
totalCount: { default: 0 },
|
|
@@ -311,7 +299,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
311
299
|
}
|
|
312
300
|
};
|
|
313
301
|
return (_ctx, _cache) => {
|
|
314
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
302
|
+
return openBlock(), createElementBlock("div", _hoisted_1$t, [
|
|
315
303
|
createElementVNode("span", {
|
|
316
304
|
class: normalizeClass([{ "disabled": isFirstSet.value }, "font-icon first"]),
|
|
317
305
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => !isFirstSet.value && goToPage(1), ["prevent"]))
|
|
@@ -326,7 +314,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
326
314
|
class: normalizeClass([{ on: page === currentPage.value }, "page"]),
|
|
327
315
|
"data-page": page,
|
|
328
316
|
onClick: withModifiers(($event) => goToPage(page), ["prevent"])
|
|
329
|
-
}, toDisplayString(page), 11, _hoisted_2$
|
|
317
|
+
}, toDisplayString(page), 11, _hoisted_2$o);
|
|
330
318
|
}), 128)),
|
|
331
319
|
createElementVNode("span", {
|
|
332
320
|
class: normalizeClass([{ "disabled": isLastSet.value }, "font-icon next"]),
|
|
@@ -347,14 +335,14 @@ const _export_sfc = (sfc, props) => {
|
|
|
347
335
|
}
|
|
348
336
|
return target;
|
|
349
337
|
};
|
|
350
|
-
const _sfc_main$
|
|
351
|
-
const _hoisted_1$
|
|
338
|
+
const _sfc_main$u = {};
|
|
339
|
+
const _hoisted_1$s = { class: "bs-loading-icon" };
|
|
352
340
|
function _sfc_render(_ctx, _cache) {
|
|
353
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
341
|
+
return openBlock(), createElementBlock("div", _hoisted_1$s, [..._cache[0] || (_cache[0] = [
|
|
354
342
|
createElementVNode("span", { class: "font-icon" }, "progress_activity", -1)
|
|
355
343
|
])]);
|
|
356
344
|
}
|
|
357
|
-
const BSLoadingIcon = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
345
|
+
const BSLoadingIcon = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render]]);
|
|
358
346
|
const waitUntil = async (condition, intervalMilliseconds = 200, maxTrial = 15) => {
|
|
359
347
|
return await new Promise((resolve) => {
|
|
360
348
|
let tried = 0;
|
|
@@ -377,9 +365,9 @@ const tryUntil = (until, tryCall, intervalMilliseconds = 200, maxTrial = 15) =>
|
|
|
377
365
|
tried++;
|
|
378
366
|
}, intervalMilliseconds);
|
|
379
367
|
};
|
|
380
|
-
const _hoisted_1$
|
|
368
|
+
const _hoisted_1$r = ["data-popup-id"];
|
|
381
369
|
const ADJUST_OFFSET = 8;
|
|
382
|
-
const _sfc_main$
|
|
370
|
+
const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
383
371
|
__name: "BSPopup",
|
|
384
372
|
props: {
|
|
385
373
|
popupId: {},
|
|
@@ -570,7 +558,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
570
558
|
onKeydown: _cache[1] || (_cache[1] = ($event) => emit("keydown", $event))
|
|
571
559
|
}, [
|
|
572
560
|
renderSlot(_ctx.$slots, "default")
|
|
573
|
-
], 46, _hoisted_1$
|
|
561
|
+
], 46, _hoisted_1$r)
|
|
574
562
|
]),
|
|
575
563
|
_: 3
|
|
576
564
|
})
|
|
@@ -578,8 +566,8 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
578
566
|
};
|
|
579
567
|
}
|
|
580
568
|
});
|
|
581
|
-
const _hoisted_1$
|
|
582
|
-
const _sfc_main$
|
|
569
|
+
const _hoisted_1$q = ["textContent"];
|
|
570
|
+
const _sfc_main$s = /* @__PURE__ */ defineComponent({
|
|
583
571
|
__name: "BSTooltip",
|
|
584
572
|
props: {
|
|
585
573
|
align: { default: "center" },
|
|
@@ -606,7 +594,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
606
594
|
}, [
|
|
607
595
|
createElementVNode("div", {
|
|
608
596
|
textContent: toDisplayString(__props.content)
|
|
609
|
-
}, null, 8, _hoisted_1$
|
|
597
|
+
}, null, 8, _hoisted_1$q)
|
|
610
598
|
], 6);
|
|
611
599
|
};
|
|
612
600
|
}
|
|
@@ -648,14 +636,14 @@ const debounce = (func, wait) => {
|
|
|
648
636
|
});
|
|
649
637
|
};
|
|
650
638
|
};
|
|
651
|
-
const _hoisted_1$
|
|
639
|
+
const _hoisted_1$p = {
|
|
652
640
|
key: 0,
|
|
653
641
|
class: "popup-search"
|
|
654
642
|
};
|
|
655
|
-
const _hoisted_2$
|
|
656
|
-
const _hoisted_3$
|
|
657
|
-
const _hoisted_4$
|
|
658
|
-
const _sfc_main$
|
|
643
|
+
const _hoisted_2$n = ["data-value", "onMouseover", "onClick"];
|
|
644
|
+
const _hoisted_3$h = ["textContent"];
|
|
645
|
+
const _hoisted_4$b = ["textContent"];
|
|
646
|
+
const _sfc_main$r = /* @__PURE__ */ defineComponent({
|
|
659
647
|
__name: "BSSelectPopup",
|
|
660
648
|
props: {
|
|
661
649
|
items: {},
|
|
@@ -797,7 +785,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
797
785
|
handleKeyboard
|
|
798
786
|
});
|
|
799
787
|
return (_ctx, _cache) => {
|
|
800
|
-
return openBlock(), createBlock(_sfc_main$
|
|
788
|
+
return openBlock(), createBlock(_sfc_main$t, {
|
|
801
789
|
"base-element": __props.baseElement,
|
|
802
790
|
"max-height": __props.maxHeight,
|
|
803
791
|
"offset-from-base-element": 4,
|
|
@@ -808,7 +796,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
808
796
|
onKeydown: withKeys(withModifiers(handleKeyboard, ["stop", "prevent"]), ["enter", "down", "up"])
|
|
809
797
|
}, {
|
|
810
798
|
default: withCtx(() => [
|
|
811
|
-
actualShowSearch.value ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
799
|
+
actualShowSearch.value ? (openBlock(), createElementBlock("div", _hoisted_1$p, [
|
|
812
800
|
withDirectives(createElementVNode("input", {
|
|
813
801
|
type: "text",
|
|
814
802
|
onInput: setSearchKeyword,
|
|
@@ -841,12 +829,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
841
829
|
key: 0,
|
|
842
830
|
textContent: toDisplayString(item?.label),
|
|
843
831
|
class: "label"
|
|
844
|
-
}, null, 8, _hoisted_3$
|
|
832
|
+
}, null, 8, _hoisted_3$h)) : (openBlock(), createElementBlock("label", {
|
|
845
833
|
key: 1,
|
|
846
834
|
textContent: toDisplayString(__props.nullLabel),
|
|
847
835
|
class: "label null-label"
|
|
848
|
-
}, null, 8, _hoisted_4$
|
|
849
|
-
], 42, _hoisted_2$
|
|
836
|
+
}, null, 8, _hoisted_4$b))
|
|
837
|
+
], 42, _hoisted_2$n);
|
|
850
838
|
}), 128))
|
|
851
839
|
], 512)
|
|
852
840
|
]),
|
|
@@ -863,13 +851,10 @@ const updateContext = (el, value) => {
|
|
|
863
851
|
};
|
|
864
852
|
};
|
|
865
853
|
const clickInsideElements = (target, elements) => {
|
|
866
|
-
if (!elements)
|
|
867
|
-
return false;
|
|
854
|
+
if (!elements) return false;
|
|
868
855
|
return elements.some((el) => {
|
|
869
|
-
if (el instanceof HTMLElement)
|
|
870
|
-
|
|
871
|
-
else if (typeof el === "string")
|
|
872
|
-
return document.querySelector(el)?.contains(target);
|
|
856
|
+
if (el instanceof HTMLElement) return el.contains(target);
|
|
857
|
+
else if (typeof el === "string") return document.querySelector(el)?.contains(target);
|
|
873
858
|
});
|
|
874
859
|
};
|
|
875
860
|
const vClickOutside = {
|
|
@@ -894,8 +879,7 @@ const vClickOutside = {
|
|
|
894
879
|
},
|
|
895
880
|
unmounted: (el) => {
|
|
896
881
|
const clickListener = el.vClickOutsideListener;
|
|
897
|
-
if (clickListener)
|
|
898
|
-
window.removeEventListener("click", clickListener);
|
|
882
|
+
if (clickListener) window.removeEventListener("click", clickListener);
|
|
899
883
|
delete el.vClickOutsideContext;
|
|
900
884
|
}
|
|
901
885
|
};
|
|
@@ -990,10 +974,12 @@ const fieldValidator = (option) => {
|
|
|
990
974
|
};
|
|
991
975
|
stringValue.value = convertFromValue(value.value);
|
|
992
976
|
if (option.field) {
|
|
993
|
-
watch(
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
977
|
+
watch(
|
|
978
|
+
option.field,
|
|
979
|
+
(field) => {
|
|
980
|
+
if (field) storeFieldValidator(field, validator);
|
|
981
|
+
}
|
|
982
|
+
);
|
|
997
983
|
}
|
|
998
984
|
return validator;
|
|
999
985
|
};
|
|
@@ -1002,8 +988,7 @@ const executeFieldValidationRule = async (value, rules, errors, phase, fieldCont
|
|
|
1002
988
|
if (rules) {
|
|
1003
989
|
for (const rule of rules) {
|
|
1004
990
|
const result = await rule(value, phase, fieldContext);
|
|
1005
|
-
if (result)
|
|
1006
|
-
result.forEach((error) => errs.push(error));
|
|
991
|
+
if (result) result.forEach((error) => errs.push(error));
|
|
1007
992
|
}
|
|
1008
993
|
errs.forEach((error) => errors.push(error));
|
|
1009
994
|
}
|
|
@@ -1113,26 +1098,25 @@ class SavePointImpl {
|
|
|
1113
1098
|
setCurrentValue: option.setCurrentValue,
|
|
1114
1099
|
compare: option.compare
|
|
1115
1100
|
});
|
|
1116
|
-
watch(
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1101
|
+
watch(
|
|
1102
|
+
option.field,
|
|
1103
|
+
(field) => {
|
|
1104
|
+
if (field) this.fields.set(field, handler);
|
|
1105
|
+
}
|
|
1106
|
+
);
|
|
1120
1107
|
return handler;
|
|
1121
1108
|
}
|
|
1122
1109
|
unregisterField(field) {
|
|
1123
|
-
if (field.value)
|
|
1124
|
-
this.fields.delete(field.value);
|
|
1110
|
+
if (field.value) this.fields.delete(field.value);
|
|
1125
1111
|
}
|
|
1126
1112
|
addChild(child) {
|
|
1127
|
-
if (!this.children)
|
|
1128
|
-
this.children = [];
|
|
1113
|
+
if (!this.children) this.children = [];
|
|
1129
1114
|
this.children.push(child);
|
|
1130
1115
|
}
|
|
1131
1116
|
removeChild(child) {
|
|
1132
1117
|
if (this.children) {
|
|
1133
1118
|
const index = this.children.findIndex((ch) => ch === child);
|
|
1134
|
-
if (index >= 0)
|
|
1135
|
-
this.children.splice(index, 1);
|
|
1119
|
+
if (index >= 0) this.children.splice(index, 1);
|
|
1136
1120
|
}
|
|
1137
1121
|
}
|
|
1138
1122
|
set() {
|
|
@@ -1185,8 +1169,7 @@ class SavePointHandlerImpl {
|
|
|
1185
1169
|
return this.savedValue.value;
|
|
1186
1170
|
}
|
|
1187
1171
|
rollbackValue() {
|
|
1188
|
-
if (this.saved)
|
|
1189
|
-
this.valueProvider.setCurrentValue(this.savedValue.value);
|
|
1172
|
+
if (this.saved) this.valueProvider.setCurrentValue(this.savedValue.value);
|
|
1190
1173
|
}
|
|
1191
1174
|
isModified(currentValue) {
|
|
1192
1175
|
return this.saved && (this.valueProvider.compare ? !this.valueProvider.compare(this.savedValue.value, currentValue) : this.savedValue?.value !== currentValue);
|
|
@@ -1195,9 +1178,9 @@ class SavePointHandlerImpl {
|
|
|
1195
1178
|
return this.isModified(this.valueProvider.getCurrentValue());
|
|
1196
1179
|
}
|
|
1197
1180
|
}
|
|
1198
|
-
const _hoisted_1$
|
|
1199
|
-
const _hoisted_2$
|
|
1200
|
-
const _sfc_main$
|
|
1181
|
+
const _hoisted_1$o = { key: 0 };
|
|
1182
|
+
const _hoisted_2$m = ["textContent"];
|
|
1183
|
+
const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
1201
1184
|
__name: "ValidationErrors",
|
|
1202
1185
|
props: {
|
|
1203
1186
|
errors: {},
|
|
@@ -1205,13 +1188,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
1205
1188
|
},
|
|
1206
1189
|
setup(__props) {
|
|
1207
1190
|
return (_ctx, _cache) => {
|
|
1208
|
-
return !__props.hideErrorMessage && __props.errors && __props.errors.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
1191
|
+
return !__props.hideErrorMessage && __props.errors && __props.errors.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$o, [
|
|
1209
1192
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.errors, (error) => {
|
|
1210
1193
|
return openBlock(), createElementBlock("div", {
|
|
1211
1194
|
key: error.code,
|
|
1212
1195
|
textContent: toDisplayString(error.message),
|
|
1213
1196
|
class: "bs-field-error"
|
|
1214
|
-
}, null, 8, _hoisted_2$
|
|
1197
|
+
}, null, 8, _hoisted_2$m);
|
|
1215
1198
|
}), 128))
|
|
1216
1199
|
])) : createCommentVNode("", true);
|
|
1217
1200
|
};
|
|
@@ -1227,39 +1210,43 @@ const useFieldContext = () => {
|
|
|
1227
1210
|
return result === dummyFieldContext ? void 0 : result;
|
|
1228
1211
|
};
|
|
1229
1212
|
const defaultLabelProvider = (item) => {
|
|
1230
|
-
if (!item)
|
|
1231
|
-
|
|
1232
|
-
else
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1213
|
+
if (!item) return "";
|
|
1214
|
+
else if (typeof item === "string") return item;
|
|
1215
|
+
else return String(item);
|
|
1216
|
+
};
|
|
1217
|
+
const emptyLabelProvider = (_item) => {
|
|
1218
|
+
return void 0;
|
|
1236
1219
|
};
|
|
1237
1220
|
const executeLabelProviderOrDefault = (item, labelProvider, defaultLabel) => {
|
|
1238
1221
|
if (labelProvider) {
|
|
1239
1222
|
const label = labelProvider(item);
|
|
1240
|
-
if (label !== void 0)
|
|
1241
|
-
return label;
|
|
1223
|
+
if (label !== void 0) return label;
|
|
1242
1224
|
}
|
|
1243
1225
|
return defaultLabel(item);
|
|
1244
1226
|
};
|
|
1227
|
+
const defaultKeyProvider = (item) => {
|
|
1228
|
+
return JSON.stringify(item);
|
|
1229
|
+
};
|
|
1230
|
+
const emptyKeyProvider = (_item) => {
|
|
1231
|
+
return void 0;
|
|
1232
|
+
};
|
|
1245
1233
|
const executeKeyProviderOrDefault = (item, keyProvider, defaultKey) => {
|
|
1246
1234
|
if (keyProvider) {
|
|
1247
1235
|
const key = keyProvider(item);
|
|
1248
|
-
if (key)
|
|
1249
|
-
return key;
|
|
1236
|
+
if (key) return key;
|
|
1250
1237
|
}
|
|
1251
1238
|
return defaultKey(item);
|
|
1252
1239
|
};
|
|
1253
|
-
const _hoisted_1$
|
|
1254
|
-
const _hoisted_2$
|
|
1255
|
-
const _hoisted_3$
|
|
1256
|
-
const _hoisted_4$
|
|
1257
|
-
const _hoisted_5$
|
|
1240
|
+
const _hoisted_1$n = ["tabindex", "onKeydown"];
|
|
1241
|
+
const _hoisted_2$l = ["textContent"];
|
|
1242
|
+
const _hoisted_3$g = ["data-field-name"];
|
|
1243
|
+
const _hoisted_4$a = ["textContent"];
|
|
1244
|
+
const _hoisted_5$5 = ["textContent"];
|
|
1258
1245
|
const _hoisted_6$2 = {
|
|
1259
1246
|
key: 2,
|
|
1260
1247
|
class: "small-progress"
|
|
1261
1248
|
};
|
|
1262
|
-
const _sfc_main$
|
|
1249
|
+
const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
1263
1250
|
__name: "BSSelect",
|
|
1264
1251
|
props: {
|
|
1265
1252
|
modelValue: {},
|
|
@@ -1394,7 +1381,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
1394
1381
|
__props.viewMode ? (openBlock(), createElementBlock("div", {
|
|
1395
1382
|
key: 0,
|
|
1396
1383
|
textContent: toDisplayString(selectedItemLabel.value)
|
|
1397
|
-
}, null, 8, _hoisted_2$
|
|
1384
|
+
}, null, 8, _hoisted_2$l)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
1398
1385
|
createElementVNode("div", {
|
|
1399
1386
|
ref_key: "field",
|
|
1400
1387
|
ref: field,
|
|
@@ -1406,15 +1393,15 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
1406
1393
|
key: 0,
|
|
1407
1394
|
textContent: toDisplayString(__props.placeholder),
|
|
1408
1395
|
class: "placeholder grow"
|
|
1409
|
-
}, null, 8, _hoisted_4$
|
|
1396
|
+
}, null, 8, _hoisted_4$a)) : (openBlock(), createElementBlock("span", {
|
|
1410
1397
|
key: 1,
|
|
1411
1398
|
textContent: toDisplayString(selectedItemLabel.value),
|
|
1412
1399
|
class: "label"
|
|
1413
|
-
}, null, 8, _hoisted_5$
|
|
1400
|
+
}, null, 8, _hoisted_5$5)),
|
|
1414
1401
|
_cache[4] || (_cache[4] = createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1)),
|
|
1415
1402
|
loadingItems.value ? (openBlock(), createElementBlock("span", _hoisted_6$2, "progress_activity")) : createCommentVNode("", true)
|
|
1416
|
-
], 8, _hoisted_3$
|
|
1417
|
-
!__props.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$
|
|
1403
|
+
], 8, _hoisted_3$g),
|
|
1404
|
+
!__props.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$r, {
|
|
1418
1405
|
key: 0,
|
|
1419
1406
|
ref_key: "selectPopup",
|
|
1420
1407
|
ref: selectPopup,
|
|
@@ -1436,26 +1423,26 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
1436
1423
|
focusToRoot();
|
|
1437
1424
|
})
|
|
1438
1425
|
}, null, 8, ["allow-null", "base-element", "initial-item", "items", "label-provider", "max-height", "null-label", "popup-align", "popup-direction", "selected-items", "show-search", "value-provider"])) : createCommentVNode("", true),
|
|
1439
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
1426
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
1440
1427
|
key: 1,
|
|
1441
1428
|
errors: unref(errors),
|
|
1442
1429
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
1443
1430
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
|
|
1444
1431
|
], 64))
|
|
1445
|
-
], 42, _hoisted_1$
|
|
1432
|
+
], 42, _hoisted_1$n)), [
|
|
1446
1433
|
[unref(vClickOutside), () => togglePopup(false)]
|
|
1447
1434
|
]);
|
|
1448
1435
|
};
|
|
1449
1436
|
}
|
|
1450
1437
|
});
|
|
1451
|
-
const _hoisted_1$
|
|
1452
|
-
const _hoisted_2$
|
|
1453
|
-
const _hoisted_3$
|
|
1454
|
-
const _hoisted_4$
|
|
1438
|
+
const _hoisted_1$m = { class: "bs-calendar" };
|
|
1439
|
+
const _hoisted_2$k = { class: "bs-calendar-head" };
|
|
1440
|
+
const _hoisted_3$f = { class: "year-month" };
|
|
1441
|
+
const _hoisted_4$9 = {
|
|
1455
1442
|
key: 0,
|
|
1456
1443
|
class: "timezone"
|
|
1457
1444
|
};
|
|
1458
|
-
const _hoisted_5$
|
|
1445
|
+
const _hoisted_5$4 = { class: "weekdays" };
|
|
1459
1446
|
const _hoisted_6$1 = ["textContent"];
|
|
1460
1447
|
const _hoisted_7$1 = ["onClick"];
|
|
1461
1448
|
const _hoisted_8$1 = {
|
|
@@ -1463,7 +1450,7 @@ const _hoisted_8$1 = {
|
|
|
1463
1450
|
class: "bs-calendar-time"
|
|
1464
1451
|
};
|
|
1465
1452
|
const _hoisted_9$1 = { class: "select-wrap" };
|
|
1466
|
-
const _sfc_main$
|
|
1453
|
+
const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
1467
1454
|
__name: "BSCalendar",
|
|
1468
1455
|
props: {
|
|
1469
1456
|
modelValue: {},
|
|
@@ -1652,39 +1639,39 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1652
1639
|
}
|
|
1653
1640
|
};
|
|
1654
1641
|
return (_ctx, _cache) => {
|
|
1655
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1656
|
-
createElementVNode("div", _hoisted_2$
|
|
1657
|
-
createElementVNode("div", _hoisted_3$
|
|
1658
|
-
createVNode(_sfc_main$
|
|
1642
|
+
return openBlock(), createElementBlock("div", _hoisted_1$m, [
|
|
1643
|
+
createElementVNode("div", _hoisted_2$k, [
|
|
1644
|
+
createElementVNode("div", _hoisted_3$f, [
|
|
1645
|
+
createVNode(_sfc_main$w, {
|
|
1659
1646
|
class: "",
|
|
1660
1647
|
"left-icon": "chevron_left",
|
|
1661
1648
|
onClick: prevMonth
|
|
1662
1649
|
}),
|
|
1663
|
-
createVNode(_sfc_main$
|
|
1650
|
+
createVNode(_sfc_main$p, {
|
|
1664
1651
|
modelValue: year.value,
|
|
1665
1652
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => year.value = $event),
|
|
1666
1653
|
disabled: __props.disabled,
|
|
1667
1654
|
items: years.value
|
|
1668
1655
|
}, null, 8, ["modelValue", "disabled", "items"]),
|
|
1669
|
-
createVNode(_sfc_main$
|
|
1656
|
+
createVNode(_sfc_main$p, {
|
|
1670
1657
|
modelValue: month.value,
|
|
1671
1658
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => month.value = $event),
|
|
1672
1659
|
disabled: __props.disabled,
|
|
1673
1660
|
items: unref(months)
|
|
1674
1661
|
}, null, 8, ["modelValue", "disabled", "items"]),
|
|
1675
|
-
createVNode(_sfc_main$
|
|
1662
|
+
createVNode(_sfc_main$w, {
|
|
1676
1663
|
class: "",
|
|
1677
1664
|
"left-icon": "chevron_right",
|
|
1678
1665
|
onClick: nextMonth
|
|
1679
1666
|
})
|
|
1680
1667
|
]),
|
|
1681
|
-
__props.showTimeZone ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
1668
|
+
__props.showTimeZone ? (openBlock(), createElementBlock("div", _hoisted_4$9, "(" + toDisplayString(actualTimeZone.value) + ")", 1)) : createCommentVNode("", true)
|
|
1682
1669
|
]),
|
|
1683
1670
|
createElementVNode("table", {
|
|
1684
1671
|
class: normalizeClass([{ disabled: __props.disabled }, "align-self-center"])
|
|
1685
1672
|
}, [
|
|
1686
1673
|
createElementVNode("tbody", null, [
|
|
1687
|
-
createElementVNode("tr", _hoisted_5$
|
|
1674
|
+
createElementVNode("tr", _hoisted_5$4, [
|
|
1688
1675
|
(openBlock(true), createElementBlock(Fragment, null, renderList(weekdays.value, (day) => {
|
|
1689
1676
|
return openBlock(), createElementBlock("th", {
|
|
1690
1677
|
key: day,
|
|
@@ -1714,7 +1701,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1714
1701
|
__props.resolution
|
|
1715
1702
|
) ? (openBlock(), createElementBlock("div", _hoisted_8$1, [
|
|
1716
1703
|
createElementVNode("div", _hoisted_9$1, [
|
|
1717
|
-
createVNode(_sfc_main$
|
|
1704
|
+
createVNode(_sfc_main$p, {
|
|
1718
1705
|
disabled: __props.disabled,
|
|
1719
1706
|
items: hours,
|
|
1720
1707
|
"label-provider": (item) => item < 10 ? "0" + item : item.toString(),
|
|
@@ -1723,7 +1710,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1723
1710
|
"onUpdate:modelValue": updateHour
|
|
1724
1711
|
}, null, 8, ["disabled", "label-provider", "model-value"]),
|
|
1725
1712
|
_cache[2] || (_cache[2] = createElementVNode("span", { class: "" }, ":", -1)),
|
|
1726
|
-
createVNode(_sfc_main$
|
|
1713
|
+
createVNode(_sfc_main$p, {
|
|
1727
1714
|
disabled: __props.disabled || __props.resolution === "HOUR",
|
|
1728
1715
|
items: minutes.value,
|
|
1729
1716
|
"label-provider": (item) => item < 10 ? "0" + item : item.toString(),
|
|
@@ -1737,10 +1724,10 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
1737
1724
|
};
|
|
1738
1725
|
}
|
|
1739
1726
|
});
|
|
1740
|
-
const _hoisted_1$
|
|
1741
|
-
const _hoisted_2$
|
|
1742
|
-
const _hoisted_3$
|
|
1743
|
-
const _sfc_main$
|
|
1727
|
+
const _hoisted_1$l = { class: "bs-calendar-range flex flex-row" };
|
|
1728
|
+
const _hoisted_2$j = { class: "flex flex-col" };
|
|
1729
|
+
const _hoisted_3$e = { class: "flex flex-row items-center" };
|
|
1730
|
+
const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
1744
1731
|
__name: "BSCalendarRange",
|
|
1745
1732
|
props: {
|
|
1746
1733
|
from: {},
|
|
@@ -1778,10 +1765,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1778
1765
|
emit("update:to", value);
|
|
1779
1766
|
};
|
|
1780
1767
|
return (_ctx, _cache) => {
|
|
1781
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1782
|
-
createElementVNode("div", _hoisted_2$
|
|
1783
|
-
createElementVNode("div", _hoisted_3$
|
|
1784
|
-
createVNode(_sfc_main$
|
|
1768
|
+
return openBlock(), createElementBlock("div", _hoisted_1$l, [
|
|
1769
|
+
createElementVNode("div", _hoisted_2$j, [
|
|
1770
|
+
createElementVNode("div", _hoisted_3$e, [
|
|
1771
|
+
createVNode(_sfc_main$o, {
|
|
1785
1772
|
modelValue: fromValue.value,
|
|
1786
1773
|
"onUpdate:modelValue": [
|
|
1787
1774
|
_cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
|
|
@@ -1799,7 +1786,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
1799
1786
|
"range-type": "from"
|
|
1800
1787
|
}, null, 8, ["modelValue", "disabled", "display-format", "end-year", "first-day", "range-value", "resolution", "start-year", "time-zone"]),
|
|
1801
1788
|
_cache[2] || (_cache[2] = createElementVNode("span", { class: "tilde" }, "~", -1)),
|
|
1802
|
-
createVNode(_sfc_main$
|
|
1789
|
+
createVNode(_sfc_main$o, {
|
|
1803
1790
|
modelValue: toValue.value,
|
|
1804
1791
|
"onUpdate:modelValue": [
|
|
1805
1792
|
_cache[1] || (_cache[1] = ($event) => toValue.value = $event),
|
|
@@ -1860,13 +1847,11 @@ const componentUtil = {
|
|
|
1860
1847
|
return trim ? value?.trim() : value;
|
|
1861
1848
|
},
|
|
1862
1849
|
getPrefixSuffixList(param) {
|
|
1863
|
-
if (!param)
|
|
1864
|
-
return [];
|
|
1850
|
+
if (!param) return [];
|
|
1865
1851
|
const params = Array.isArray(param) ? param : [param];
|
|
1866
1852
|
const list = [];
|
|
1867
1853
|
for (let item of params) {
|
|
1868
|
-
if (!item)
|
|
1869
|
-
continue;
|
|
1854
|
+
if (!item) continue;
|
|
1870
1855
|
if (typeof item === "object" && item.hasOwnProperty("type") && item.hasOwnProperty("value")) {
|
|
1871
1856
|
list.push(item);
|
|
1872
1857
|
} else {
|
|
@@ -1874,12 +1859,16 @@ const componentUtil = {
|
|
|
1874
1859
|
}
|
|
1875
1860
|
}
|
|
1876
1861
|
return list;
|
|
1862
|
+
},
|
|
1863
|
+
isCursorInElement(event, element) {
|
|
1864
|
+
const rect = element.getBoundingClientRect();
|
|
1865
|
+
return event.clientX >= rect.left && event.clientX <= rect.right && event.clientY >= rect.top && event.clientY <= rect.bottom;
|
|
1877
1866
|
}
|
|
1878
1867
|
};
|
|
1879
|
-
const _hoisted_1$
|
|
1880
|
-
const _hoisted_2$
|
|
1881
|
-
const _hoisted_3$
|
|
1882
|
-
const _sfc_main$
|
|
1868
|
+
const _hoisted_1$k = ["textContent"];
|
|
1869
|
+
const _hoisted_2$i = { class: "font-icon" };
|
|
1870
|
+
const _hoisted_3$d = ["src", "alt"];
|
|
1871
|
+
const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
1883
1872
|
__name: "BSPrefixSuffix",
|
|
1884
1873
|
props: {
|
|
1885
1874
|
value: {},
|
|
@@ -1895,11 +1884,11 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1895
1884
|
textContent: toDisplayString(item.value),
|
|
1896
1885
|
key: JSON.stringify(item.value),
|
|
1897
1886
|
class: normalizeClass(__props.type)
|
|
1898
|
-
}, null, 10, _hoisted_1$
|
|
1887
|
+
}, null, 10, _hoisted_1$k)) : item.type === "font-icon" ? (openBlock(), createElementBlock("span", {
|
|
1899
1888
|
key: 1,
|
|
1900
1889
|
class: normalizeClass(__props.type)
|
|
1901
1890
|
}, [
|
|
1902
|
-
createElementVNode("span", _hoisted_2$
|
|
1891
|
+
createElementVNode("span", _hoisted_2$i, toDisplayString(item.value), 1)
|
|
1903
1892
|
], 2)) : item.type === "image-url" ? (openBlock(), createElementBlock("span", {
|
|
1904
1893
|
key: 2,
|
|
1905
1894
|
class: normalizeClass(__props.type)
|
|
@@ -1907,24 +1896,24 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
|
1907
1896
|
createElementVNode("img", {
|
|
1908
1897
|
src: item.value,
|
|
1909
1898
|
alt: __props.type
|
|
1910
|
-
}, null, 8, _hoisted_3$
|
|
1899
|
+
}, null, 8, _hoisted_3$d)
|
|
1911
1900
|
], 2)) : createCommentVNode("", true)
|
|
1912
1901
|
], 64);
|
|
1913
1902
|
}), 256);
|
|
1914
1903
|
};
|
|
1915
1904
|
}
|
|
1916
1905
|
});
|
|
1917
|
-
const _hoisted_1$
|
|
1906
|
+
const _hoisted_1$j = {
|
|
1918
1907
|
key: 0,
|
|
1919
1908
|
class: "view-mode"
|
|
1920
1909
|
};
|
|
1921
|
-
const _hoisted_2$
|
|
1922
|
-
const _hoisted_3$
|
|
1910
|
+
const _hoisted_2$h = ["textContent"];
|
|
1911
|
+
const _hoisted_3$c = {
|
|
1923
1912
|
key: 1,
|
|
1924
1913
|
class: "input-area"
|
|
1925
1914
|
};
|
|
1926
|
-
const _hoisted_4$
|
|
1927
|
-
const _sfc_main$
|
|
1915
|
+
const _hoisted_4$8 = ["id", "placeholder", "autocomplete", "disabled", "maxlength", "name", "tabindex", "type"];
|
|
1916
|
+
const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
1928
1917
|
__name: "BSTextInput",
|
|
1929
1918
|
props: {
|
|
1930
1919
|
id: {},
|
|
@@ -2048,20 +2037,20 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
2048
2037
|
class: normalizeClass([{ required: __props.required, disabled: __props.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-text-input bs-input-wrap"]),
|
|
2049
2038
|
style: normalizeStyle({ width: __props.width })
|
|
2050
2039
|
}, [
|
|
2051
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
2052
|
-
createVNode(_sfc_main$
|
|
2040
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$j, [
|
|
2041
|
+
createVNode(_sfc_main$m, {
|
|
2053
2042
|
value: __props.prefix,
|
|
2054
2043
|
type: "prefix"
|
|
2055
2044
|
}, null, 8, ["value"]),
|
|
2056
2045
|
createElementVNode("span", {
|
|
2057
2046
|
textContent: toDisplayString(unref(stringValue))
|
|
2058
|
-
}, null, 8, _hoisted_2$
|
|
2059
|
-
createVNode(_sfc_main$
|
|
2047
|
+
}, null, 8, _hoisted_2$h),
|
|
2048
|
+
createVNode(_sfc_main$m, {
|
|
2060
2049
|
value: __props.suffix,
|
|
2061
2050
|
type: "suffix"
|
|
2062
2051
|
}, null, 8, ["value"])
|
|
2063
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_3$
|
|
2064
|
-
createVNode(_sfc_main$
|
|
2052
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_3$c, [
|
|
2053
|
+
createVNode(_sfc_main$m, {
|
|
2065
2054
|
value: __props.prefix,
|
|
2066
2055
|
type: "prefix"
|
|
2067
2056
|
}, null, 8, ["value"]),
|
|
@@ -2077,15 +2066,15 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
2077
2066
|
name: __props.name,
|
|
2078
2067
|
tabindex: __props.tabindex,
|
|
2079
2068
|
type: __props.inputType
|
|
2080
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_4$
|
|
2069
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_4$8), [
|
|
2081
2070
|
[vModelDynamic, unref(stringValue)]
|
|
2082
2071
|
]),
|
|
2083
|
-
createVNode(_sfc_main$
|
|
2072
|
+
createVNode(_sfc_main$m, {
|
|
2084
2073
|
value: __props.suffix,
|
|
2085
2074
|
type: "suffix"
|
|
2086
2075
|
}, null, 8, ["value"])
|
|
2087
2076
|
])),
|
|
2088
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
2077
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
2089
2078
|
key: 2,
|
|
2090
2079
|
errors: unref(errors),
|
|
2091
2080
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
@@ -2288,8 +2277,7 @@ const formatUtil = {
|
|
|
2288
2277
|
formatDateString(utcDate, format, displayTimeZone) {
|
|
2289
2278
|
if (utcDate) {
|
|
2290
2279
|
let date = dayjs(utcDate);
|
|
2291
|
-
if (displayTimeZone)
|
|
2292
|
-
date = date.tz(displayTimeZone);
|
|
2280
|
+
if (displayTimeZone) date = date.tz(displayTimeZone);
|
|
2293
2281
|
return date.format(format || "YYYY-MM-DD HH:mm Z");
|
|
2294
2282
|
}
|
|
2295
2283
|
return "";
|
|
@@ -2368,17 +2356,17 @@ const formatUtil = {
|
|
|
2368
2356
|
return tmp.textContent || tmp.innerText;
|
|
2369
2357
|
}
|
|
2370
2358
|
};
|
|
2371
|
-
const _hoisted_1$
|
|
2359
|
+
const _hoisted_1$i = {
|
|
2372
2360
|
key: 0,
|
|
2373
2361
|
class: "view-mode"
|
|
2374
2362
|
};
|
|
2375
|
-
const _hoisted_2$
|
|
2376
|
-
const _hoisted_3$
|
|
2363
|
+
const _hoisted_2$g = ["textContent"];
|
|
2364
|
+
const _hoisted_3$b = {
|
|
2377
2365
|
key: 1,
|
|
2378
2366
|
class: "input-area"
|
|
2379
2367
|
};
|
|
2380
|
-
const _hoisted_4$
|
|
2381
|
-
const _sfc_main$
|
|
2368
|
+
const _hoisted_4$7 = ["id", "placeholder", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
|
|
2369
|
+
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
2382
2370
|
__name: "BSNumberInput",
|
|
2383
2371
|
props: {
|
|
2384
2372
|
id: {},
|
|
@@ -2510,20 +2498,20 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
2510
2498
|
class: normalizeClass([{ required: __props.required, disabled: __props.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-number-input bs-input-wrap"]),
|
|
2511
2499
|
style: normalizeStyle({ width: __props.width })
|
|
2512
2500
|
}, [
|
|
2513
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
2514
|
-
createVNode(_sfc_main$
|
|
2501
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$i, [
|
|
2502
|
+
createVNode(_sfc_main$m, {
|
|
2515
2503
|
value: __props.prefix,
|
|
2516
2504
|
type: "prefix"
|
|
2517
2505
|
}, null, 8, ["value"]),
|
|
2518
2506
|
createElementVNode("span", {
|
|
2519
2507
|
textContent: toDisplayString(__props.formatInViewMode ? formattedStringValue.value : unref(stringValue))
|
|
2520
|
-
}, null, 8, _hoisted_2$
|
|
2521
|
-
createVNode(_sfc_main$
|
|
2508
|
+
}, null, 8, _hoisted_2$g),
|
|
2509
|
+
createVNode(_sfc_main$m, {
|
|
2522
2510
|
value: __props.suffix,
|
|
2523
2511
|
type: "suffix"
|
|
2524
2512
|
}, null, 8, ["value"])
|
|
2525
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_3$
|
|
2526
|
-
createVNode(_sfc_main$
|
|
2513
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_3$b, [
|
|
2514
|
+
createVNode(_sfc_main$m, {
|
|
2527
2515
|
value: __props.prefix,
|
|
2528
2516
|
type: "prefix"
|
|
2529
2517
|
}, null, 8, ["value"]),
|
|
@@ -2539,13 +2527,13 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
2539
2527
|
tabindex: __props.tabindex,
|
|
2540
2528
|
value: focused.value || !__props.formatOnBlur ? unref(stringValue) : formattedStringValue.value,
|
|
2541
2529
|
type: "text"
|
|
2542
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_4$
|
|
2543
|
-
createVNode(_sfc_main$
|
|
2530
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_4$7),
|
|
2531
|
+
createVNode(_sfc_main$m, {
|
|
2544
2532
|
value: __props.suffix,
|
|
2545
2533
|
type: "suffix"
|
|
2546
2534
|
}, null, 8, ["value"])
|
|
2547
2535
|
])),
|
|
2548
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
2536
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
2549
2537
|
key: 2,
|
|
2550
2538
|
errors: unref(errors),
|
|
2551
2539
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
@@ -2554,17 +2542,17 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
2554
2542
|
};
|
|
2555
2543
|
}
|
|
2556
2544
|
});
|
|
2557
|
-
const _hoisted_1$
|
|
2545
|
+
const _hoisted_1$h = {
|
|
2558
2546
|
key: 0,
|
|
2559
2547
|
class: "view-mode flex flex-row gap-2 items-start"
|
|
2560
2548
|
};
|
|
2561
|
-
const _hoisted_2$
|
|
2562
|
-
const _hoisted_3$
|
|
2549
|
+
const _hoisted_2$f = ["textContent"];
|
|
2550
|
+
const _hoisted_3$a = {
|
|
2563
2551
|
key: 1,
|
|
2564
2552
|
class: "input-area flex flex-row items-start"
|
|
2565
2553
|
};
|
|
2566
|
-
const _hoisted_4$
|
|
2567
|
-
const _sfc_main$
|
|
2554
|
+
const _hoisted_4$6 = ["placeholder", "disabled", "maxlength", "name", "tabindex"];
|
|
2555
|
+
const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
2568
2556
|
__name: "BSTextArea",
|
|
2569
2557
|
props: {
|
|
2570
2558
|
id: {},
|
|
@@ -2679,20 +2667,20 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
2679
2667
|
class: normalizeClass([{ disabled: __props.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-text-area bs-input-wrap"]),
|
|
2680
2668
|
style: normalizeStyle({ width: outerWidth.value, height: outerHeight.value })
|
|
2681
2669
|
}, [
|
|
2682
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
2683
|
-
createVNode(_sfc_main$
|
|
2670
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$h, [
|
|
2671
|
+
createVNode(_sfc_main$m, {
|
|
2684
2672
|
value: __props.prefix,
|
|
2685
2673
|
type: "prefix"
|
|
2686
2674
|
}, null, 8, ["value"]),
|
|
2687
2675
|
createElementVNode("div", {
|
|
2688
2676
|
textContent: toDisplayString(unref(stringValue))
|
|
2689
|
-
}, null, 8, _hoisted_2$
|
|
2690
|
-
createVNode(_sfc_main$
|
|
2677
|
+
}, null, 8, _hoisted_2$f),
|
|
2678
|
+
createVNode(_sfc_main$m, {
|
|
2691
2679
|
value: __props.suffix,
|
|
2692
2680
|
type: "suffix"
|
|
2693
2681
|
}, null, 8, ["value"])
|
|
2694
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_3$
|
|
2695
|
-
createVNode(_sfc_main$
|
|
2682
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_3$a, [
|
|
2683
|
+
createVNode(_sfc_main$m, {
|
|
2696
2684
|
value: __props.prefix,
|
|
2697
2685
|
type: "prefix"
|
|
2698
2686
|
}, null, 8, ["value"]),
|
|
@@ -2709,15 +2697,15 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
2709
2697
|
class: "grow",
|
|
2710
2698
|
onPointerdown: capturePointer,
|
|
2711
2699
|
onPointerup: preserveResizedHeight
|
|
2712
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_4$
|
|
2700
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_4$6), [
|
|
2713
2701
|
[vModelText, unref(stringValue)]
|
|
2714
2702
|
]),
|
|
2715
|
-
createVNode(_sfc_main$
|
|
2703
|
+
createVNode(_sfc_main$m, {
|
|
2716
2704
|
value: __props.suffix,
|
|
2717
2705
|
type: "suffix"
|
|
2718
2706
|
}, null, 8, ["value"])
|
|
2719
2707
|
])),
|
|
2720
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
2708
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
2721
2709
|
key: 2,
|
|
2722
2710
|
errors: unref(errors),
|
|
2723
2711
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
@@ -2726,10 +2714,10 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
2726
2714
|
};
|
|
2727
2715
|
}
|
|
2728
2716
|
});
|
|
2729
|
-
const _hoisted_1$
|
|
2730
|
-
const _hoisted_2$
|
|
2731
|
-
const _hoisted_3$
|
|
2732
|
-
const _sfc_main$
|
|
2717
|
+
const _hoisted_1$g = ["id", "checked", "disabled", "name", "tabindex"];
|
|
2718
|
+
const _hoisted_2$e = ["textContent", "for"];
|
|
2719
|
+
const _hoisted_3$9 = ["for"];
|
|
2720
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
2733
2721
|
__name: "BSCheckbox",
|
|
2734
2722
|
props: {
|
|
2735
2723
|
id: { default: () => componentUtil.generateNextId("checkbox") },
|
|
@@ -2785,28 +2773,28 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
2785
2773
|
tabindex: __props.tabindex,
|
|
2786
2774
|
class: "",
|
|
2787
2775
|
type: "checkbox"
|
|
2788
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_1$
|
|
2776
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_1$g),
|
|
2789
2777
|
__props.label ? (openBlock(), createElementBlock("label", {
|
|
2790
2778
|
key: 0,
|
|
2791
2779
|
textContent: toDisplayString(__props.label),
|
|
2792
2780
|
for: __props.id,
|
|
2793
2781
|
class: "text-label"
|
|
2794
|
-
}, null, 8, _hoisted_2$
|
|
2782
|
+
}, null, 8, _hoisted_2$e)) : createCommentVNode("", true),
|
|
2795
2783
|
hasLabelSlot.value ? (openBlock(), createElementBlock("label", {
|
|
2796
2784
|
key: 1,
|
|
2797
2785
|
for: __props.id,
|
|
2798
2786
|
class: "slot-label cursor-pointer"
|
|
2799
2787
|
}, [
|
|
2800
2788
|
renderSlot(_ctx.$slots, "default", { disabled: __props.disabled })
|
|
2801
|
-
], 8, _hoisted_3$
|
|
2789
|
+
], 8, _hoisted_3$9)) : createCommentVNode("", true)
|
|
2802
2790
|
], 2);
|
|
2803
2791
|
};
|
|
2804
2792
|
}
|
|
2805
2793
|
});
|
|
2806
|
-
const _hoisted_1$
|
|
2807
|
-
const _hoisted_2$
|
|
2808
|
-
const _hoisted_3$
|
|
2809
|
-
const _sfc_main$
|
|
2794
|
+
const _hoisted_1$f = ["data-field-name"];
|
|
2795
|
+
const _hoisted_2$d = { class: "items" };
|
|
2796
|
+
const _hoisted_3$8 = ["textContent"];
|
|
2797
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
2810
2798
|
__name: "BSCheckboxGroup",
|
|
2811
2799
|
props: {
|
|
2812
2800
|
name: {},
|
|
@@ -2912,13 +2900,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2912
2900
|
"data-field-name": __props.name,
|
|
2913
2901
|
role: "group"
|
|
2914
2902
|
}, [
|
|
2915
|
-
createElementVNode("div", _hoisted_2$
|
|
2903
|
+
createElementVNode("div", _hoisted_2$d, [
|
|
2916
2904
|
__props.viewMode ? (openBlock(), createElementBlock("div", {
|
|
2917
2905
|
key: 0,
|
|
2918
2906
|
class: "view-mode",
|
|
2919
2907
|
textContent: toDisplayString(modelValueLabels.value)
|
|
2920
|
-
}, null, 8, _hoisted_3$
|
|
2921
|
-
return openBlock(), createBlock(_sfc_main$
|
|
2908
|
+
}, null, 8, _hoisted_3$8)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(__props.items, (item) => {
|
|
2909
|
+
return openBlock(), createBlock(_sfc_main$i, {
|
|
2922
2910
|
key: itemKey(item),
|
|
2923
2911
|
disabled: __props.disabled || isDisabledItem(item),
|
|
2924
2912
|
label: itemLabel(item),
|
|
@@ -2930,24 +2918,24 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2930
2918
|
}, null, 8, ["disabled", "label", "model-value", "name", "tabindex", "onUpdate:modelValue"]);
|
|
2931
2919
|
}), 128))
|
|
2932
2920
|
]),
|
|
2933
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
2921
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
2934
2922
|
key: 0,
|
|
2935
2923
|
errors: unref(errors),
|
|
2936
2924
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
2937
2925
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
|
|
2938
|
-
], 10, _hoisted_1$
|
|
2926
|
+
], 10, _hoisted_1$f);
|
|
2939
2927
|
};
|
|
2940
2928
|
}
|
|
2941
2929
|
});
|
|
2942
|
-
const _hoisted_1$
|
|
2943
|
-
const _hoisted_2$
|
|
2944
|
-
const _hoisted_3$
|
|
2930
|
+
const _hoisted_1$e = ["id", "checked", "disabled", "name", "tabindex"];
|
|
2931
|
+
const _hoisted_2$c = ["for"];
|
|
2932
|
+
const _hoisted_3$7 = {
|
|
2945
2933
|
key: 0,
|
|
2946
2934
|
class: "font-icon"
|
|
2947
2935
|
};
|
|
2948
|
-
const _hoisted_4$
|
|
2949
|
-
const _hoisted_5$
|
|
2950
|
-
const _sfc_main$
|
|
2936
|
+
const _hoisted_4$5 = ["textContent"];
|
|
2937
|
+
const _hoisted_5$3 = ["for"];
|
|
2938
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
2951
2939
|
__name: "BSRadioButton",
|
|
2952
2940
|
props: {
|
|
2953
2941
|
id: { default: () => componentUtil.generateNextId("radio") },
|
|
@@ -2990,34 +2978,34 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
2990
2978
|
class: "",
|
|
2991
2979
|
role: "radio",
|
|
2992
2980
|
type: "radio"
|
|
2993
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_1$
|
|
2981
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_1$e),
|
|
2994
2982
|
createElementVNode("label", { for: __props.id }, [
|
|
2995
|
-
__props.icon ? (openBlock(), createElementBlock("span", _hoisted_3$
|
|
2983
|
+
__props.icon ? (openBlock(), createElementBlock("span", _hoisted_3$7, toDisplayString(__props.icon), 1)) : createCommentVNode("", true),
|
|
2996
2984
|
__props.label ? (openBlock(), createElementBlock("span", {
|
|
2997
2985
|
key: 1,
|
|
2998
2986
|
textContent: toDisplayString(__props.label),
|
|
2999
2987
|
class: "text-label"
|
|
3000
|
-
}, null, 8, _hoisted_4$
|
|
3001
|
-
], 8, _hoisted_2$
|
|
2988
|
+
}, null, 8, _hoisted_4$5)) : createCommentVNode("", true)
|
|
2989
|
+
], 8, _hoisted_2$c),
|
|
3002
2990
|
hasLabelSlot.value ? (openBlock(), createElementBlock("label", {
|
|
3003
2991
|
key: 0,
|
|
3004
2992
|
for: __props.id,
|
|
3005
2993
|
class: "slot-label cursor-pointer"
|
|
3006
2994
|
}, [
|
|
3007
2995
|
renderSlot(_ctx.$slots, "default", { disabled: __props.disabled })
|
|
3008
|
-
], 8, _hoisted_5$
|
|
2996
|
+
], 8, _hoisted_5$3)) : createCommentVNode("", true)
|
|
3009
2997
|
], 2);
|
|
3010
2998
|
};
|
|
3011
2999
|
}
|
|
3012
3000
|
});
|
|
3013
|
-
const _hoisted_1$
|
|
3014
|
-
const _hoisted_2$
|
|
3015
|
-
const _hoisted_3$
|
|
3001
|
+
const _hoisted_1$d = ["data-field-name"];
|
|
3002
|
+
const _hoisted_2$b = ["textContent"];
|
|
3003
|
+
const _hoisted_3$6 = {
|
|
3016
3004
|
key: 1,
|
|
3017
3005
|
class: "radio-button-group",
|
|
3018
3006
|
role: "radiogroup"
|
|
3019
3007
|
};
|
|
3020
|
-
const _sfc_main$
|
|
3008
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
3021
3009
|
__name: "BSRadioButtonGroup",
|
|
3022
3010
|
props: {
|
|
3023
3011
|
name: { default: () => componentUtil.generateNextName("radioGroup") },
|
|
@@ -3100,9 +3088,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
3100
3088
|
__props.viewMode ? (openBlock(), createElementBlock("div", {
|
|
3101
3089
|
key: 0,
|
|
3102
3090
|
textContent: toDisplayString(modelValueLabel.value)
|
|
3103
|
-
}, null, 8, _hoisted_2$
|
|
3091
|
+
}, null, 8, _hoisted_2$b)) : (openBlock(), createElementBlock("div", _hoisted_3$6, [
|
|
3104
3092
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
3105
|
-
return withDirectives((openBlock(), createBlock(_sfc_main$
|
|
3093
|
+
return withDirectives((openBlock(), createBlock(_sfc_main$g, {
|
|
3106
3094
|
key: itemKey(item),
|
|
3107
3095
|
disabled: __props.disabled || isDisabledItem(item),
|
|
3108
3096
|
icon: __props.iconProvider?.(item),
|
|
@@ -3117,20 +3105,20 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
3117
3105
|
]);
|
|
3118
3106
|
}), 128))
|
|
3119
3107
|
])),
|
|
3120
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
3108
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
3121
3109
|
key: 2,
|
|
3122
3110
|
errors: unref(errors),
|
|
3123
3111
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
3124
3112
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
|
|
3125
|
-
], 10, _hoisted_1$
|
|
3113
|
+
], 10, _hoisted_1$d);
|
|
3126
3114
|
};
|
|
3127
3115
|
}
|
|
3128
3116
|
});
|
|
3129
|
-
const _hoisted_1$
|
|
3130
|
-
const _hoisted_2$
|
|
3131
|
-
const _hoisted_3$
|
|
3132
|
-
const _hoisted_4$
|
|
3133
|
-
const _hoisted_5$
|
|
3117
|
+
const _hoisted_1$c = ["tabindex", "onKeydown"];
|
|
3118
|
+
const _hoisted_2$a = { key: 0 };
|
|
3119
|
+
const _hoisted_3$5 = ["textContent"];
|
|
3120
|
+
const _hoisted_4$4 = ["textContent"];
|
|
3121
|
+
const _hoisted_5$2 = ["data-field-name"];
|
|
3134
3122
|
const _hoisted_6 = ["textContent"];
|
|
3135
3123
|
const _hoisted_7 = {
|
|
3136
3124
|
key: 1,
|
|
@@ -3142,7 +3130,7 @@ const _hoisted_10 = {
|
|
|
3142
3130
|
key: 2,
|
|
3143
3131
|
class: "small-progress"
|
|
3144
3132
|
};
|
|
3145
|
-
const _sfc_main$
|
|
3133
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
3146
3134
|
__name: "BSMultiSelect",
|
|
3147
3135
|
props: {
|
|
3148
3136
|
modelValue: { default: () => [] },
|
|
@@ -3265,17 +3253,17 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3265
3253
|
_cache[4] || (_cache[4] = withKeys(($event) => togglePopup(false), ["tab"]))
|
|
3266
3254
|
]
|
|
3267
3255
|
}, [
|
|
3268
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
3256
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_2$a, [
|
|
3269
3257
|
__props.selectedLabelProvider ? (openBlock(), createElementBlock("span", {
|
|
3270
3258
|
key: 0,
|
|
3271
3259
|
textContent: toDisplayString(__props.selectedLabelProvider(selectedItems.value)),
|
|
3272
3260
|
class: "label"
|
|
3273
|
-
}, null, 8, _hoisted_3$
|
|
3261
|
+
}, null, 8, _hoisted_3$5)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(selectedItems.value, (item) => {
|
|
3274
3262
|
return openBlock(), createElementBlock("span", {
|
|
3275
3263
|
key: itemKey(item),
|
|
3276
3264
|
textContent: toDisplayString(itemLabel(item)),
|
|
3277
3265
|
class: "label"
|
|
3278
|
-
}, null, 8, _hoisted_4$
|
|
3266
|
+
}, null, 8, _hoisted_4$4);
|
|
3279
3267
|
}), 128))
|
|
3280
3268
|
])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
3281
3269
|
createElementVNode("div", {
|
|
@@ -3304,8 +3292,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3304
3292
|
])),
|
|
3305
3293
|
_cache[5] || (_cache[5] = createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1)),
|
|
3306
3294
|
loadingItems.value ? (openBlock(), createElementBlock("span", _hoisted_10, "progress_activity")) : createCommentVNode("", true)
|
|
3307
|
-
], 8, _hoisted_5$
|
|
3308
|
-
!__props.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$
|
|
3295
|
+
], 8, _hoisted_5$2),
|
|
3296
|
+
!__props.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$r, {
|
|
3309
3297
|
key: 0,
|
|
3310
3298
|
ref_key: "selectPopup",
|
|
3311
3299
|
ref: selectPopup,
|
|
@@ -3323,12 +3311,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3323
3311
|
onRequestClose: _cache[0] || (_cache[0] = ($event) => togglePopup(false))
|
|
3324
3312
|
}, null, 8, ["base-element", "initial-item", "items", "label-provider", "max-height", "popup-align", "popup-direction", "selected-items", "show-search", "value-provider"])) : createCommentVNode("", true)
|
|
3325
3313
|
], 64)),
|
|
3326
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
3314
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
3327
3315
|
key: 2,
|
|
3328
3316
|
errors: unref(errors),
|
|
3329
3317
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
3330
3318
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
|
|
3331
|
-
], 42, _hoisted_1$
|
|
3319
|
+
], 42, _hoisted_1$c)), [
|
|
3332
3320
|
[unref(vClickOutside), () => togglePopup(false)]
|
|
3333
3321
|
]);
|
|
3334
3322
|
};
|
|
@@ -3337,14 +3325,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3337
3325
|
dayjs.extend(utc);
|
|
3338
3326
|
dayjs.extend(timezone);
|
|
3339
3327
|
const dateInputFormatByResolution = (resolution) => {
|
|
3340
|
-
if (resolution === "DAY")
|
|
3341
|
-
|
|
3342
|
-
else if (resolution === "
|
|
3343
|
-
|
|
3344
|
-
else if (resolution === "SECOND")
|
|
3345
|
-
return "YYYYMMDDHHmmss";
|
|
3346
|
-
else
|
|
3347
|
-
return "YYYYMMDDHHmm";
|
|
3328
|
+
if (resolution === "DAY") return "YYYYMMDD";
|
|
3329
|
+
else if (resolution === "HOUR") return "YYYYMMDDHH";
|
|
3330
|
+
else if (resolution === "SECOND") return "YYYYMMDDHHmmss";
|
|
3331
|
+
else return "YYYYMMDDHHmm";
|
|
3348
3332
|
};
|
|
3349
3333
|
const convertInputToDateString = (str, inputFormat, endTime, resolution, inputTimeZone, minDateValue, maxDateValue) => {
|
|
3350
3334
|
if (str) {
|
|
@@ -3357,19 +3341,16 @@ const convertInputToDateString = (str, inputFormat, endTime, resolution, inputTi
|
|
|
3357
3341
|
}
|
|
3358
3342
|
}
|
|
3359
3343
|
let value = dayjs.tz(str, inputFormat, inputTimeZone);
|
|
3360
|
-
if (endTime)
|
|
3361
|
-
value = value.endOf(resolution.toLowerCase());
|
|
3344
|
+
if (endTime) value = value.endOf(resolution.toLowerCase());
|
|
3362
3345
|
const minValue = minDateValue;
|
|
3363
3346
|
if (minValue) {
|
|
3364
3347
|
let minDate = dayjs(minValue).tz(inputTimeZone);
|
|
3365
|
-
if (value.isBefore(minDate))
|
|
3366
|
-
value = minDate;
|
|
3348
|
+
if (value.isBefore(minDate)) value = minDate;
|
|
3367
3349
|
}
|
|
3368
3350
|
const maxValue = maxDateValue;
|
|
3369
3351
|
if (maxValue) {
|
|
3370
3352
|
let maxDate = dayjs(maxValue).tz(inputTimeZone);
|
|
3371
|
-
if (maxDate.isBefore(value))
|
|
3372
|
-
value = maxDate;
|
|
3353
|
+
if (maxDate.isBefore(value)) value = maxDate;
|
|
3373
3354
|
}
|
|
3374
3355
|
if (resolution === "MINUTE_10" || resolution === "MINUTE_30") {
|
|
3375
3356
|
const truncateUnit = resolution === "MINUTE_10" ? 10 : 30;
|
|
@@ -3399,9 +3380,9 @@ const checkDateMinMaxValue = (value, inputFormat, endTime, resolution, inputTime
|
|
|
3399
3380
|
const normalizeDateInput = (value) => {
|
|
3400
3381
|
return value.replace(/[^\d-]/g, "");
|
|
3401
3382
|
};
|
|
3402
|
-
const _hoisted_1$
|
|
3403
|
-
const _hoisted_2$
|
|
3404
|
-
const _sfc_main$
|
|
3383
|
+
const _hoisted_1$b = { class: "bs-date-input-popup" };
|
|
3384
|
+
const _hoisted_2$9 = { class: "buttons" };
|
|
3385
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
3405
3386
|
__name: "BSDateInputPopup",
|
|
3406
3387
|
props: {
|
|
3407
3388
|
modelValue: {},
|
|
@@ -3429,7 +3410,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
3429
3410
|
emit("close");
|
|
3430
3411
|
};
|
|
3431
3412
|
return (_ctx, _cache) => {
|
|
3432
|
-
return openBlock(), createBlock(_sfc_main$
|
|
3413
|
+
return openBlock(), createBlock(_sfc_main$t, {
|
|
3433
3414
|
"base-element": __props.baseElement,
|
|
3434
3415
|
"popup-align": __props.popupAlign,
|
|
3435
3416
|
"offset-from-base-element": 4,
|
|
@@ -3440,8 +3421,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
3440
3421
|
}, ["stop"]))
|
|
3441
3422
|
}, {
|
|
3442
3423
|
default: withCtx(() => [
|
|
3443
|
-
createElementVNode("div", _hoisted_1$
|
|
3444
|
-
createVNode(_sfc_main$
|
|
3424
|
+
createElementVNode("div", _hoisted_1$b, [
|
|
3425
|
+
createVNode(_sfc_main$o, {
|
|
3445
3426
|
modelValue: date.value,
|
|
3446
3427
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => date.value = $event),
|
|
3447
3428
|
"display-format": __props.displayFormat,
|
|
@@ -3450,14 +3431,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
3450
3431
|
"start-year": __props.selectStartYear,
|
|
3451
3432
|
"time-zone": __props.timeZone
|
|
3452
3433
|
}, null, 8, ["modelValue", "display-format", "end-year", "resolution", "start-year", "time-zone"]),
|
|
3453
|
-
createElementVNode("div", _hoisted_2$
|
|
3454
|
-
createVNode(_sfc_main$
|
|
3434
|
+
createElementVNode("div", _hoisted_2$9, [
|
|
3435
|
+
createVNode(_sfc_main$w, {
|
|
3455
3436
|
caption: __props.okButtonCaption,
|
|
3456
3437
|
"button-color": "blue",
|
|
3457
3438
|
class: "min-w-80",
|
|
3458
3439
|
onClick: emitValue
|
|
3459
3440
|
}, null, 8, ["caption"]),
|
|
3460
|
-
createVNode(_sfc_main$
|
|
3441
|
+
createVNode(_sfc_main$w, {
|
|
3461
3442
|
caption: __props.cancelButtonCaption,
|
|
3462
3443
|
class: "min-w-80",
|
|
3463
3444
|
onClick: close
|
|
@@ -3470,16 +3451,16 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
3470
3451
|
};
|
|
3471
3452
|
}
|
|
3472
3453
|
});
|
|
3473
|
-
const _hoisted_1$
|
|
3454
|
+
const _hoisted_1$a = {
|
|
3474
3455
|
key: 0,
|
|
3475
3456
|
class: "view-mode"
|
|
3476
3457
|
};
|
|
3477
|
-
const _hoisted_2$
|
|
3458
|
+
const _hoisted_2$8 = {
|
|
3478
3459
|
key: 1,
|
|
3479
3460
|
class: "input-area"
|
|
3480
3461
|
};
|
|
3481
|
-
const _hoisted_3$
|
|
3482
|
-
const _sfc_main$
|
|
3462
|
+
const _hoisted_3$4 = ["id", "placeholder", "disabled", "maxlength", "name", "tabindex", "value"];
|
|
3463
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
3483
3464
|
__name: "BSDateInput",
|
|
3484
3465
|
props: {
|
|
3485
3466
|
id: {},
|
|
@@ -3686,9 +3667,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
3686
3667
|
style: normalizeStyle({ width: __props.width }),
|
|
3687
3668
|
onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers(() => togglePopup(false), ["stop", "prevent"]), ["esc"]))
|
|
3688
3669
|
}, [
|
|
3689
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
3670
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
3690
3671
|
createElementVNode("span", null, toDisplayString(viewModeValue.value), 1)
|
|
3691
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_2$
|
|
3672
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_2$8, [
|
|
3692
3673
|
createElementVNode("span", {
|
|
3693
3674
|
class: normalizeClass([{ "bs-clickable": !__props.disabled }, "font-icon"]),
|
|
3694
3675
|
onClick: _cache[0] || (_cache[0] = ($event) => togglePopup())
|
|
@@ -3704,14 +3685,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
3704
3685
|
tabindex: __props.tabindex,
|
|
3705
3686
|
value: focused.value ? unref(stringValue) : formattedValue.value,
|
|
3706
3687
|
type: "text"
|
|
3707
|
-
}, toHandlers(handlers, true)), null, 16, _hoisted_3$
|
|
3688
|
+
}, toHandlers(handlers, true)), null, 16, _hoisted_3$4)
|
|
3708
3689
|
])),
|
|
3709
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
3690
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
3710
3691
|
key: 2,
|
|
3711
3692
|
errors: unref(errors),
|
|
3712
3693
|
"hide-error-message": __props.hideErrorMessage || __props.disabled && !__props.showErrorMessageOnDisabled
|
|
3713
3694
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true),
|
|
3714
|
-
showPopup.value ? (openBlock(), createBlock(_sfc_main$
|
|
3695
|
+
showPopup.value ? (openBlock(), createBlock(_sfc_main$d, {
|
|
3715
3696
|
key: 3,
|
|
3716
3697
|
"base-element": rootRef.value,
|
|
3717
3698
|
"display-format": actualDisplayFormat.value,
|
|
@@ -3732,9 +3713,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
3732
3713
|
};
|
|
3733
3714
|
}
|
|
3734
3715
|
});
|
|
3735
|
-
const _hoisted_1$
|
|
3736
|
-
const _hoisted_2$
|
|
3737
|
-
const _sfc_main$
|
|
3716
|
+
const _hoisted_1$9 = { class: "bs-date-range-popup flex flex-col px-16 py-8" };
|
|
3717
|
+
const _hoisted_2$7 = { class: "buttons" };
|
|
3718
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
3738
3719
|
__name: "BSDateRangeInputPopup",
|
|
3739
3720
|
props: {
|
|
3740
3721
|
from: {},
|
|
@@ -3765,7 +3746,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3765
3746
|
emit("close");
|
|
3766
3747
|
};
|
|
3767
3748
|
return (_ctx, _cache) => {
|
|
3768
|
-
return openBlock(), createBlock(_sfc_main$
|
|
3749
|
+
return openBlock(), createBlock(_sfc_main$t, {
|
|
3769
3750
|
"base-element": __props.baseElement,
|
|
3770
3751
|
"offset-from-base-element": 4,
|
|
3771
3752
|
"max-height": "auto",
|
|
@@ -3774,8 +3755,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3774
3755
|
}, ["stop"]))
|
|
3775
3756
|
}, {
|
|
3776
3757
|
default: withCtx(() => [
|
|
3777
|
-
createElementVNode("div", _hoisted_1$
|
|
3778
|
-
createVNode(_sfc_main$
|
|
3758
|
+
createElementVNode("div", _hoisted_1$9, [
|
|
3759
|
+
createVNode(_sfc_main$n, {
|
|
3779
3760
|
from: fromValue.value,
|
|
3780
3761
|
"onUpdate:from": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
|
|
3781
3762
|
to: toValue.value,
|
|
@@ -3788,14 +3769,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3788
3769
|
"start-year": __props.selectStartYear,
|
|
3789
3770
|
"time-zone": __props.timeZone
|
|
3790
3771
|
}, null, 8, ["from", "to", "disabled-from", "disabled-to", "display-format", "end-year", "resolution", "start-year", "time-zone"]),
|
|
3791
|
-
createElementVNode("div", _hoisted_2$
|
|
3792
|
-
createVNode(_sfc_main$
|
|
3772
|
+
createElementVNode("div", _hoisted_2$7, [
|
|
3773
|
+
createVNode(_sfc_main$w, {
|
|
3793
3774
|
caption: __props.okButtonCaption,
|
|
3794
3775
|
"button-color": "blue",
|
|
3795
3776
|
class: "min-w-80",
|
|
3796
3777
|
onClick: emitValue
|
|
3797
3778
|
}, null, 8, ["caption"]),
|
|
3798
|
-
createVNode(_sfc_main$
|
|
3779
|
+
createVNode(_sfc_main$w, {
|
|
3799
3780
|
caption: __props.cancelButtonCaption,
|
|
3800
3781
|
class: "min-w-80",
|
|
3801
3782
|
onClick: close
|
|
@@ -3808,17 +3789,17 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3808
3789
|
};
|
|
3809
3790
|
}
|
|
3810
3791
|
});
|
|
3811
|
-
const _hoisted_1$
|
|
3792
|
+
const _hoisted_1$8 = {
|
|
3812
3793
|
key: 0,
|
|
3813
3794
|
class: "view-mode"
|
|
3814
3795
|
};
|
|
3815
|
-
const _hoisted_2$
|
|
3796
|
+
const _hoisted_2$6 = {
|
|
3816
3797
|
key: 1,
|
|
3817
3798
|
class: "input-area"
|
|
3818
3799
|
};
|
|
3819
|
-
const _hoisted_3$
|
|
3820
|
-
const _hoisted_4$
|
|
3821
|
-
const _sfc_main$
|
|
3800
|
+
const _hoisted_3$3 = ["id", "placeholder", "disabled", "maxlength", "name", "tabindex", "value"];
|
|
3801
|
+
const _hoisted_4$3 = ["id", "placeholder", "disabled", "maxlength", "name", "tabindex", "value"];
|
|
3802
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
3822
3803
|
__name: "BSDateRange",
|
|
3823
3804
|
props: {
|
|
3824
3805
|
idFrom: {},
|
|
@@ -4196,9 +4177,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
4196
4177
|
style: normalizeStyle({ width: __props.width }),
|
|
4197
4178
|
onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers(() => togglePopup(false), ["stop", "prevent"]), ["esc"]))
|
|
4198
4179
|
}, [
|
|
4199
|
-
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
4180
|
+
__props.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
|
|
4200
4181
|
createElementVNode("span", null, toDisplayString(formattedDateRange.value), 1)
|
|
4201
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_2$
|
|
4182
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_2$6, [
|
|
4202
4183
|
createElementVNode("span", {
|
|
4203
4184
|
class: normalizeClass([{ "bs-clickable": !disabled.value }, "font-icon"]),
|
|
4204
4185
|
onClick: _cache[0] || (_cache[0] = () => togglePopup())
|
|
@@ -4214,7 +4195,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
4214
4195
|
tabindex: __props.tabindex,
|
|
4215
4196
|
value: focusedFrom.value ? unref(stringValueFrom) : formattedFrom.value,
|
|
4216
4197
|
type: "text"
|
|
4217
|
-
}, toHandlers(handlersFrom, true)), null, 16, _hoisted_3$
|
|
4198
|
+
}, toHandlers(handlersFrom, true)), null, 16, _hoisted_3$3),
|
|
4218
4199
|
_cache[3] || (_cache[3] = createElementVNode("span", { class: "px-4" }, "~", -1)),
|
|
4219
4200
|
createElementVNode("input", mergeProps({
|
|
4220
4201
|
id: __props.idTo,
|
|
@@ -4227,14 +4208,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
4227
4208
|
tabindex: __props.tabindex,
|
|
4228
4209
|
value: focusedTo.value ? unref(stringValueTo) : formattedTo.value,
|
|
4229
4210
|
type: "text"
|
|
4230
|
-
}, toHandlers(handlersTo, true)), null, 16, _hoisted_4$
|
|
4211
|
+
}, toHandlers(handlersTo, true)), null, 16, _hoisted_4$3)
|
|
4231
4212
|
])),
|
|
4232
|
-
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$
|
|
4213
|
+
!__props.viewMode ? (openBlock(), createBlock(_sfc_main$q, {
|
|
4233
4214
|
key: 2,
|
|
4234
4215
|
errors: errors.value,
|
|
4235
4216
|
"hide-error-message": __props.hideErrorMessage || disabled.value && !__props.showErrorMessageOnDisabled
|
|
4236
4217
|
}, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true),
|
|
4237
|
-
showPopup.value ? (openBlock(), createBlock(_sfc_main$
|
|
4218
|
+
showPopup.value ? (openBlock(), createBlock(_sfc_main$b, {
|
|
4238
4219
|
key: 3,
|
|
4239
4220
|
"base-element": rootRef.value,
|
|
4240
4221
|
"disabled-from": __props.disabledFrom,
|
|
@@ -4259,7 +4240,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
4259
4240
|
};
|
|
4260
4241
|
}
|
|
4261
4242
|
});
|
|
4262
|
-
const _sfc_main$
|
|
4243
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
4263
4244
|
__name: "SlideDownTransition",
|
|
4264
4245
|
setup(__props) {
|
|
4265
4246
|
const beforeEnter = (el) => {
|
|
@@ -4322,12 +4303,12 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
4322
4303
|
};
|
|
4323
4304
|
}
|
|
4324
4305
|
});
|
|
4325
|
-
const _hoisted_1$
|
|
4306
|
+
const _hoisted_1$7 = {
|
|
4326
4307
|
key: 0,
|
|
4327
4308
|
class: "card-layout-header flex flex-row items-center"
|
|
4328
4309
|
};
|
|
4329
|
-
const _hoisted_2$
|
|
4330
|
-
const _sfc_main$
|
|
4310
|
+
const _hoisted_2$5 = ["textContent"];
|
|
4311
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
4331
4312
|
__name: "BSCardLayout",
|
|
4332
4313
|
props: {
|
|
4333
4314
|
title: {},
|
|
@@ -4341,7 +4322,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
4341
4322
|
return openBlock(), createElementBlock("div", {
|
|
4342
4323
|
class: normalizeClass([{ expanded: expanded.value }, "bs-card-layout"])
|
|
4343
4324
|
}, [
|
|
4344
|
-
!__props.hideTitle ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
4325
|
+
!__props.hideTitle ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
|
|
4345
4326
|
createElementVNode("span", {
|
|
4346
4327
|
class: "expand-btn font-icon bs-clickable",
|
|
4347
4328
|
onClick: toggleExpand
|
|
@@ -4349,13 +4330,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
4349
4330
|
createElementVNode("div", {
|
|
4350
4331
|
textContent: toDisplayString(__props.title),
|
|
4351
4332
|
class: "card-layout-title"
|
|
4352
|
-
}, null, 8, _hoisted_2$
|
|
4333
|
+
}, null, 8, _hoisted_2$5),
|
|
4353
4334
|
_cache[0] || (_cache[0] = createElementVNode("div", { class: "grow" }, null, -1)),
|
|
4354
4335
|
createElementVNode("div", null, [
|
|
4355
4336
|
renderSlot(_ctx.$slots, "title-right")
|
|
4356
4337
|
])
|
|
4357
4338
|
])) : createCommentVNode("", true),
|
|
4358
|
-
createVNode(_sfc_main$
|
|
4339
|
+
createVNode(_sfc_main$9, null, {
|
|
4359
4340
|
default: withCtx(() => [
|
|
4360
4341
|
withDirectives(createElementVNode("div", {
|
|
4361
4342
|
class: normalizeClass(__props.cardBodyClass)
|
|
@@ -4371,6 +4352,734 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
4371
4352
|
};
|
|
4372
4353
|
}
|
|
4373
4354
|
});
|
|
4355
|
+
const modalPluginKey = "BlueseaModalPlugin";
|
|
4356
|
+
const modalHandleKey = "BlueseaModalHandle";
|
|
4357
|
+
class ModalHandleImpl {
|
|
4358
|
+
constructor(modal, modalId) {
|
|
4359
|
+
this.modal = modal;
|
|
4360
|
+
this.modalId = modalId;
|
|
4361
|
+
}
|
|
4362
|
+
maximized = false;
|
|
4363
|
+
defaultStyleListener;
|
|
4364
|
+
defaultPositionListener;
|
|
4365
|
+
close() {
|
|
4366
|
+
this.modal.closeModal(this.modalId);
|
|
4367
|
+
}
|
|
4368
|
+
setDefaultStyle(modalStyle) {
|
|
4369
|
+
this.defaultStyleListener?.(modalStyle);
|
|
4370
|
+
}
|
|
4371
|
+
setDefaultPosition(modalPosition) {
|
|
4372
|
+
this.defaultPositionListener?.(modalPosition);
|
|
4373
|
+
}
|
|
4374
|
+
setDefaultStyleListener(listener) {
|
|
4375
|
+
this.defaultStyleListener = listener;
|
|
4376
|
+
}
|
|
4377
|
+
setDefaultPositionListener(listener) {
|
|
4378
|
+
this.defaultPositionListener = listener;
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4381
|
+
class BSModal {
|
|
4382
|
+
modalItems = reactive([]);
|
|
4383
|
+
openModal(modalItem) {
|
|
4384
|
+
const modalId = Math.random().toString(36);
|
|
4385
|
+
const handle = new ModalHandleImpl(this, modalId);
|
|
4386
|
+
const registered = {
|
|
4387
|
+
modalId,
|
|
4388
|
+
pageId: modalItem.pageId,
|
|
4389
|
+
component: markRaw(modalItem.component),
|
|
4390
|
+
style: modalItem.style,
|
|
4391
|
+
position: modalItem.position,
|
|
4392
|
+
bind: modalItem.bind,
|
|
4393
|
+
on: modalItem.on,
|
|
4394
|
+
slots: modalItem.slots,
|
|
4395
|
+
modalHandle: handle
|
|
4396
|
+
};
|
|
4397
|
+
this.modalItems.push(registered);
|
|
4398
|
+
return registered;
|
|
4399
|
+
}
|
|
4400
|
+
closeModal(modalItem) {
|
|
4401
|
+
let index = -1;
|
|
4402
|
+
if (typeof modalItem === "string") {
|
|
4403
|
+
index = this.modalItems.findIndex((item) => item.modalId === modalItem);
|
|
4404
|
+
} else {
|
|
4405
|
+
index = this.modalItems.findIndex((item) => item === modalItem);
|
|
4406
|
+
}
|
|
4407
|
+
if (index >= 0) this.modalItems.splice(index, 1);
|
|
4408
|
+
}
|
|
4409
|
+
closeAllModals() {
|
|
4410
|
+
this.modalItems.splice(0, this.modalItems.length);
|
|
4411
|
+
}
|
|
4412
|
+
openAlert(title, message, clickHandler) {
|
|
4413
|
+
const option = {
|
|
4414
|
+
component: defineAsyncComponent(() => import("./BSAlertModal-ZEIUM0ut.js")),
|
|
4415
|
+
bind: {
|
|
4416
|
+
title,
|
|
4417
|
+
message
|
|
4418
|
+
},
|
|
4419
|
+
on: {
|
|
4420
|
+
click: async () => await clickHandler?.()
|
|
4421
|
+
}
|
|
4422
|
+
};
|
|
4423
|
+
return this.openModal(option);
|
|
4424
|
+
}
|
|
4425
|
+
openYesNo(title, message, yesHandler, noHandler) {
|
|
4426
|
+
const option = {
|
|
4427
|
+
component: defineAsyncComponent(() => import("./BSYesNoModal-Cs6mgXcP.js")),
|
|
4428
|
+
bind: {
|
|
4429
|
+
title,
|
|
4430
|
+
message
|
|
4431
|
+
},
|
|
4432
|
+
on: {
|
|
4433
|
+
clickYes: async () => await yesHandler?.(),
|
|
4434
|
+
clickNo: async () => await noHandler?.()
|
|
4435
|
+
}
|
|
4436
|
+
};
|
|
4437
|
+
return this.openModal(option);
|
|
4438
|
+
}
|
|
4439
|
+
install(app) {
|
|
4440
|
+
app.provide(modalPluginKey, this);
|
|
4441
|
+
}
|
|
4442
|
+
}
|
|
4443
|
+
const useModal = () => {
|
|
4444
|
+
const modal = inject(modalPluginKey);
|
|
4445
|
+
if (!modal) throw new Error("BSModal is not initialized.");
|
|
4446
|
+
return modal;
|
|
4447
|
+
};
|
|
4448
|
+
const provideModalHandle = (modalHandle) => {
|
|
4449
|
+
provide(modalHandleKey, modalHandle);
|
|
4450
|
+
};
|
|
4451
|
+
const useModalHandle = () => {
|
|
4452
|
+
const modalHandle = inject(modalHandleKey);
|
|
4453
|
+
if (!modalHandle) throw new Error("ModalHandle not found. Maybe not inside modal component.");
|
|
4454
|
+
return modalHandle;
|
|
4455
|
+
};
|
|
4456
|
+
const createModalPlugin = () => {
|
|
4457
|
+
return new BSModal();
|
|
4458
|
+
};
|
|
4459
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
4460
|
+
__name: "BSModalWrapper",
|
|
4461
|
+
props: {
|
|
4462
|
+
modalItem: {}
|
|
4463
|
+
},
|
|
4464
|
+
setup(__props) {
|
|
4465
|
+
const props = __props;
|
|
4466
|
+
const defaultModalPosition = ref();
|
|
4467
|
+
props.modalItem.modalHandle.setDefaultPositionListener(
|
|
4468
|
+
(position) => {
|
|
4469
|
+
defaultModalPosition.value = position;
|
|
4470
|
+
initializeOffset(position);
|
|
4471
|
+
}
|
|
4472
|
+
);
|
|
4473
|
+
const modalPositionStyle = computed(() => {
|
|
4474
|
+
const pos = {
|
|
4475
|
+
...defaultModalPosition.value,
|
|
4476
|
+
...props.modalItem.position
|
|
4477
|
+
};
|
|
4478
|
+
const result = [];
|
|
4479
|
+
if (pos.horizontal === "left") result.push("items-start");
|
|
4480
|
+
else if (pos.horizontal === "right") result.push("items-end");
|
|
4481
|
+
else result.push("items-center");
|
|
4482
|
+
if (pos.vertical === "top") result.push("justify-start");
|
|
4483
|
+
else if (pos.vertical === "bottom") result.push("justify-end");
|
|
4484
|
+
else result.push("justify-center");
|
|
4485
|
+
return result;
|
|
4486
|
+
});
|
|
4487
|
+
const defaultModalStyle = ref();
|
|
4488
|
+
props.modalItem.modalHandle.setDefaultStyleListener((style) => {
|
|
4489
|
+
defaultModalStyle.value = style;
|
|
4490
|
+
props.modalItem.escToClose = style.escToClose;
|
|
4491
|
+
});
|
|
4492
|
+
const mergedStyle = computed(() => {
|
|
4493
|
+
const result = {
|
|
4494
|
+
...defaultModalStyle.value,
|
|
4495
|
+
...props.modalItem.style,
|
|
4496
|
+
transform: ""
|
|
4497
|
+
};
|
|
4498
|
+
if (props.modalItem.modalHandle.maximized) {
|
|
4499
|
+
delete result.maxWidth;
|
|
4500
|
+
delete result.maxHeight;
|
|
4501
|
+
} else {
|
|
4502
|
+
result.transform = `translate(${offset.value.x}px, ${offset.value.y}px)`;
|
|
4503
|
+
}
|
|
4504
|
+
return result;
|
|
4505
|
+
});
|
|
4506
|
+
provideModalHandle(props.modalItem.modalHandle);
|
|
4507
|
+
const modalComponent = ref();
|
|
4508
|
+
const modalPanel = ref();
|
|
4509
|
+
const offset = ref({ x: 0, y: 0 });
|
|
4510
|
+
const initializeOffset = (defaultPosition) => {
|
|
4511
|
+
if (offset.value.x === 0) {
|
|
4512
|
+
offset.value.x = props.modalItem.position?.offsetX ?? defaultPosition?.offsetX ?? 0;
|
|
4513
|
+
}
|
|
4514
|
+
if (offset.value.y === 0) {
|
|
4515
|
+
offset.value.y = props.modalItem.position?.offsetY ?? defaultPosition?.offsetY ?? 0;
|
|
4516
|
+
}
|
|
4517
|
+
};
|
|
4518
|
+
initializeOffset();
|
|
4519
|
+
let initialPosition = void 0;
|
|
4520
|
+
const startMoveModal = (event) => {
|
|
4521
|
+
if (!props.modalItem.modalHandle.maximized && modalPanel.value === event.target && event.button === 0) {
|
|
4522
|
+
initialPosition = {
|
|
4523
|
+
x: event.clientX - offset.value.x,
|
|
4524
|
+
y: event.clientY - offset.value.y
|
|
4525
|
+
};
|
|
4526
|
+
modalPanel.value.setPointerCapture(event.pointerId);
|
|
4527
|
+
}
|
|
4528
|
+
};
|
|
4529
|
+
const moveModal = (event) => {
|
|
4530
|
+
if (!props.modalItem.modalHandle.maximized && initialPosition) {
|
|
4531
|
+
offset.value.x = event.clientX - initialPosition.x;
|
|
4532
|
+
offset.value.y = event.clientY - initialPosition.y;
|
|
4533
|
+
event.preventDefault();
|
|
4534
|
+
event.stopPropagation();
|
|
4535
|
+
}
|
|
4536
|
+
};
|
|
4537
|
+
const endMoveModal = (event) => {
|
|
4538
|
+
if (!props.modalItem.modalHandle.maximized && initialPosition) {
|
|
4539
|
+
modalPanel.value?.releasePointerCapture(event.pointerId);
|
|
4540
|
+
initialPosition = void 0;
|
|
4541
|
+
}
|
|
4542
|
+
};
|
|
4543
|
+
return (_ctx, _cache) => {
|
|
4544
|
+
return withDirectives((openBlock(), createElementBlock("div", {
|
|
4545
|
+
class: normalizeClass([modalPositionStyle.value, "modal-wrapper flex flex-col"])
|
|
4546
|
+
}, [
|
|
4547
|
+
createElementVNode("div", {
|
|
4548
|
+
ref_key: "modalPanel",
|
|
4549
|
+
ref: modalPanel,
|
|
4550
|
+
class: normalizeClass([[
|
|
4551
|
+
__props.modalItem.style?.styleClass,
|
|
4552
|
+
__props.modalItem.modalHandle.maximized ? "maximized" : void 0
|
|
4553
|
+
], "modal-panel"]),
|
|
4554
|
+
style: normalizeStyle(mergedStyle.value),
|
|
4555
|
+
onPointerdown: startMoveModal,
|
|
4556
|
+
onPointermove: moveModal,
|
|
4557
|
+
onPointerup: endMoveModal
|
|
4558
|
+
}, [
|
|
4559
|
+
(openBlock(), createBlock(resolveDynamicComponent(__props.modalItem.component), mergeProps({
|
|
4560
|
+
ref_key: "modalComponent",
|
|
4561
|
+
ref: modalComponent
|
|
4562
|
+
}, __props.modalItem.bind || {}, toHandlers(__props.modalItem.on || {})), null, 16))
|
|
4563
|
+
], 38)
|
|
4564
|
+
], 2)), [
|
|
4565
|
+
[vShow, modalComponent.value]
|
|
4566
|
+
]);
|
|
4567
|
+
};
|
|
4568
|
+
}
|
|
4569
|
+
});
|
|
4570
|
+
const _hoisted_1$6 = {
|
|
4571
|
+
key: 0,
|
|
4572
|
+
class: "modal-curtain"
|
|
4573
|
+
};
|
|
4574
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
4575
|
+
__name: "BSModalContainer",
|
|
4576
|
+
setup(__props) {
|
|
4577
|
+
const modal = useModal();
|
|
4578
|
+
const modalExists = computed(() => modal.modalItems.length > 0);
|
|
4579
|
+
const disableBodyScroll = (disable) => {
|
|
4580
|
+
document.body.style.overflow = disable ? "hidden" : "auto";
|
|
4581
|
+
};
|
|
4582
|
+
watch(
|
|
4583
|
+
modalExists,
|
|
4584
|
+
() => disableBodyScroll(modalExists.value)
|
|
4585
|
+
);
|
|
4586
|
+
const modalContainer = ref();
|
|
4587
|
+
const getLastModal = () => {
|
|
4588
|
+
return modal.modalItems[modal.modalItems.length - 1];
|
|
4589
|
+
};
|
|
4590
|
+
const escapeLastModal = () => {
|
|
4591
|
+
const lastModal = getLastModal();
|
|
4592
|
+
if (lastModal) {
|
|
4593
|
+
if (lastModal.modalHandle.maximized) {
|
|
4594
|
+
lastModal.modalHandle.maximized = false;
|
|
4595
|
+
} else {
|
|
4596
|
+
lastModal.modalHandle.close();
|
|
4597
|
+
}
|
|
4598
|
+
}
|
|
4599
|
+
};
|
|
4600
|
+
const handleKeyDown = (event) => {
|
|
4601
|
+
if (modalExists.value && event.key === "Escape") {
|
|
4602
|
+
if (event.shiftKey) {
|
|
4603
|
+
escapeLastModal();
|
|
4604
|
+
} else if (modalContainer.value) {
|
|
4605
|
+
const lastModal = getLastModal();
|
|
4606
|
+
if (lastModal?.escToClose) {
|
|
4607
|
+
escapeLastModal();
|
|
4608
|
+
}
|
|
4609
|
+
}
|
|
4610
|
+
}
|
|
4611
|
+
};
|
|
4612
|
+
onMounted(() => {
|
|
4613
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
4614
|
+
});
|
|
4615
|
+
onBeforeUnmount(() => {
|
|
4616
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
4617
|
+
});
|
|
4618
|
+
return (_ctx, _cache) => {
|
|
4619
|
+
return openBlock(), createElementBlock("div", {
|
|
4620
|
+
ref_key: "modalContainer",
|
|
4621
|
+
ref: modalContainer,
|
|
4622
|
+
class: "bs-modal-container"
|
|
4623
|
+
}, [
|
|
4624
|
+
modalExists.value ? (openBlock(), createElementBlock("div", _hoisted_1$6)) : createCommentVNode("", true),
|
|
4625
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(modal).modalItems, (item) => {
|
|
4626
|
+
return openBlock(), createBlock(_sfc_main$7, {
|
|
4627
|
+
key: item.modalId,
|
|
4628
|
+
"data-page-id": item.pageId,
|
|
4629
|
+
"modal-item": item
|
|
4630
|
+
}, null, 8, ["data-page-id", "modal-item"]);
|
|
4631
|
+
}), 128))
|
|
4632
|
+
], 512);
|
|
4633
|
+
};
|
|
4634
|
+
}
|
|
4635
|
+
});
|
|
4636
|
+
const findElement = (maybeElement) => {
|
|
4637
|
+
const val = maybeElement?.value;
|
|
4638
|
+
if (val) {
|
|
4639
|
+
if ("querySelectorAll" in val) return val;
|
|
4640
|
+
if ("$el" in val && "querySelectorAll" in val.$el) return val.$el;
|
|
4641
|
+
}
|
|
4642
|
+
};
|
|
4643
|
+
const findInputComponents = (maybeElement) => {
|
|
4644
|
+
const element = findElement(maybeElement);
|
|
4645
|
+
if (element) {
|
|
4646
|
+
const selector = `input,textarea,select,[role=listbox],[role=radiogroup],[role=group],[role=textbox],[role=img]`;
|
|
4647
|
+
return Array.from(element.querySelectorAll(selector)).map((el) => el);
|
|
4648
|
+
}
|
|
4649
|
+
return [];
|
|
4650
|
+
};
|
|
4651
|
+
const getComponentRootElement = (component) => {
|
|
4652
|
+
return "$el" in component ? component.$el : void 0;
|
|
4653
|
+
};
|
|
4654
|
+
const focusFirstElement = (element) => {
|
|
4655
|
+
const focusable = findFirstFocusableElement(element);
|
|
4656
|
+
if (focusable) {
|
|
4657
|
+
focusable.focus();
|
|
4658
|
+
return true;
|
|
4659
|
+
} else {
|
|
4660
|
+
return false;
|
|
4661
|
+
}
|
|
4662
|
+
};
|
|
4663
|
+
const focusLastElement = (element) => {
|
|
4664
|
+
const focusable = findLastFocusableElement(element);
|
|
4665
|
+
if (focusable) {
|
|
4666
|
+
focusable.focus();
|
|
4667
|
+
return true;
|
|
4668
|
+
} else {
|
|
4669
|
+
return false;
|
|
4670
|
+
}
|
|
4671
|
+
};
|
|
4672
|
+
const findFirstFocusableElement = (element) => {
|
|
4673
|
+
const focusableElementsSelector = 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), [tabindex]:not([disabled])';
|
|
4674
|
+
return element.querySelector(focusableElementsSelector) || void 0;
|
|
4675
|
+
};
|
|
4676
|
+
const findLastFocusableElement = (element) => {
|
|
4677
|
+
const focusableElementsSelector = 'a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), [tabindex]:not([disabled])';
|
|
4678
|
+
const all = element.querySelectorAll(focusableElementsSelector);
|
|
4679
|
+
return all.item(all.length - 1) || void 0;
|
|
4680
|
+
};
|
|
4681
|
+
const getSelfIndex = (element) => {
|
|
4682
|
+
if (element.parentElement) {
|
|
4683
|
+
return Array.from(element.parentElement.children).indexOf(element);
|
|
4684
|
+
} else {
|
|
4685
|
+
return -1;
|
|
4686
|
+
}
|
|
4687
|
+
};
|
|
4688
|
+
const NAMED_COLORS = {
|
|
4689
|
+
aliceblue: "#F0F8FF",
|
|
4690
|
+
antiquewhite: "#FAEBD7",
|
|
4691
|
+
aqua: "#00FFFF",
|
|
4692
|
+
aquamarine: "#7FFFD4",
|
|
4693
|
+
azure: "#F0FFFF",
|
|
4694
|
+
beige: "#F5F5DC",
|
|
4695
|
+
bisque: "#FFE4C4",
|
|
4696
|
+
black: "#000000",
|
|
4697
|
+
blanchedalmond: "#FFEBCD",
|
|
4698
|
+
blue: "#0000FF",
|
|
4699
|
+
blueviolet: "#8A2BE2",
|
|
4700
|
+
brown: "#A52A2A",
|
|
4701
|
+
burlywood: "#DEB887",
|
|
4702
|
+
cadetblue: "#5F9EA0",
|
|
4703
|
+
chartreuse: "#7FFF00",
|
|
4704
|
+
chocolate: "#D2691E",
|
|
4705
|
+
coral: "#FF7F50",
|
|
4706
|
+
cornflowerblue: "#6495ED",
|
|
4707
|
+
cornsilk: "#FFF8DC",
|
|
4708
|
+
crimson: "#DC143C",
|
|
4709
|
+
cyan: "#00FFFF",
|
|
4710
|
+
darkblue: "#00008B",
|
|
4711
|
+
darkcyan: "#008B8B",
|
|
4712
|
+
darkgoldenrod: "#B8860B",
|
|
4713
|
+
darkgray: "#A9A9A9",
|
|
4714
|
+
darkgrey: "#A9A9A9",
|
|
4715
|
+
darkgreen: "#006400",
|
|
4716
|
+
darkkhaki: "#BDB76B",
|
|
4717
|
+
darkmagenta: "#8B008B",
|
|
4718
|
+
darkolivegreen: "#556B2F",
|
|
4719
|
+
darkorange: "#FF8C00",
|
|
4720
|
+
darkorchid: "#9932CC",
|
|
4721
|
+
darkred: "#8B0000",
|
|
4722
|
+
darksalmon: "#E9967A",
|
|
4723
|
+
darkseagreen: "#8FBC8F",
|
|
4724
|
+
darkslateblue: "#483D8B",
|
|
4725
|
+
darkslategray: "#2F4F4F",
|
|
4726
|
+
darkslategrey: "#2F4F4F",
|
|
4727
|
+
darkturquoise: "#00CED1",
|
|
4728
|
+
darkviolet: "#9400D3",
|
|
4729
|
+
deeppink: "#FF1493",
|
|
4730
|
+
deepskyblue: "#00BFFF",
|
|
4731
|
+
dimgray: "#696969",
|
|
4732
|
+
dimgrey: "#696969",
|
|
4733
|
+
dodgerblue: "#1E90FF",
|
|
4734
|
+
firebrick: "#B22222",
|
|
4735
|
+
floralwhite: "#FFFAF0",
|
|
4736
|
+
forestgreen: "#228B22",
|
|
4737
|
+
fuchsia: "#FF00FF",
|
|
4738
|
+
gainsboro: "#DCDCDC",
|
|
4739
|
+
ghostwhite: "#F8F8FF",
|
|
4740
|
+
gold: "#FFD700",
|
|
4741
|
+
goldenrod: "#DAA520",
|
|
4742
|
+
gray: "#808080",
|
|
4743
|
+
grey: "#808080",
|
|
4744
|
+
green: "#008000",
|
|
4745
|
+
greenyellow: "#ADFF2F",
|
|
4746
|
+
honeydew: "#F0FFF0",
|
|
4747
|
+
hotpink: "#FF69B4",
|
|
4748
|
+
indianred: "#CD5C5C",
|
|
4749
|
+
indigo: "#4B0082",
|
|
4750
|
+
ivory: "#FFFFF0",
|
|
4751
|
+
khaki: "#F0E68C",
|
|
4752
|
+
lavender: "#E6E6FA",
|
|
4753
|
+
lavenderblush: "#FFF0F5",
|
|
4754
|
+
lawngreen: "#7CFC00",
|
|
4755
|
+
lemonchiffon: "#FFFACD",
|
|
4756
|
+
lightblue: "#ADD8E6",
|
|
4757
|
+
lightcoral: "#F08080",
|
|
4758
|
+
lightcyan: "#E0FFFF",
|
|
4759
|
+
lightgoldenrodyellow: "#FAFAD2",
|
|
4760
|
+
lightgray: "#D3D3D3",
|
|
4761
|
+
lightgrey: "#D3D3D3",
|
|
4762
|
+
lightgreen: "#90EE90",
|
|
4763
|
+
lightpink: "#FFB6C1",
|
|
4764
|
+
lightsalmon: "#FFA07A",
|
|
4765
|
+
lightseagreen: "#20B2AA",
|
|
4766
|
+
lightskyblue: "#87CEFA",
|
|
4767
|
+
lightslategray: "#778899",
|
|
4768
|
+
lightslategrey: "#778899",
|
|
4769
|
+
lightsteelblue: "#B0C4DE",
|
|
4770
|
+
lightyellow: "#FFFFE0",
|
|
4771
|
+
lime: "#00FF00",
|
|
4772
|
+
limegreen: "#32CD32",
|
|
4773
|
+
linen: "#FAF0E6",
|
|
4774
|
+
magenta: "#FF00FF",
|
|
4775
|
+
maroon: "#800000",
|
|
4776
|
+
mediumaquamarine: "#66CDAA",
|
|
4777
|
+
mediumblue: "#0000CD",
|
|
4778
|
+
mediumorchid: "#BA55D3",
|
|
4779
|
+
mediumpurple: "#9370DB",
|
|
4780
|
+
mediumseagreen: "#3CB371",
|
|
4781
|
+
mediumslateblue: "#7B68EE",
|
|
4782
|
+
mediumspringgreen: "#00FA9A",
|
|
4783
|
+
mediumturquoise: "#48D1CC",
|
|
4784
|
+
mediumvioletred: "#C71585",
|
|
4785
|
+
midnightblue: "#191970",
|
|
4786
|
+
mintcream: "#F5FFFA",
|
|
4787
|
+
mistyrose: "#FFE4E1",
|
|
4788
|
+
moccasin: "#FFE4B5",
|
|
4789
|
+
navajowhite: "#FFDEAD",
|
|
4790
|
+
navy: "#000080",
|
|
4791
|
+
oldlace: "#FDF5E6",
|
|
4792
|
+
olive: "#808000",
|
|
4793
|
+
olivedrab: "#6B8E23",
|
|
4794
|
+
orange: "#FFA500",
|
|
4795
|
+
orangered: "#FF4500",
|
|
4796
|
+
orchid: "#DA70D6",
|
|
4797
|
+
palegoldenrod: "#EEE8AA",
|
|
4798
|
+
palegreen: "#98FB98",
|
|
4799
|
+
paleturquoise: "#AFEEEE",
|
|
4800
|
+
palevioletred: "#DB7093",
|
|
4801
|
+
papayawhip: "#FFEFD5",
|
|
4802
|
+
peachpuff: "#FFDAB9",
|
|
4803
|
+
peru: "#CD853F",
|
|
4804
|
+
pink: "#FFC0CB",
|
|
4805
|
+
plum: "#DDA0DD",
|
|
4806
|
+
powderblue: "#B0E0E6",
|
|
4807
|
+
purple: "#800080",
|
|
4808
|
+
rebeccapurple: "#663399",
|
|
4809
|
+
red: "#FF0000",
|
|
4810
|
+
rosybrown: "#BC8F8F",
|
|
4811
|
+
royalblue: "#4169E1",
|
|
4812
|
+
saddlebrown: "#8B4513",
|
|
4813
|
+
salmon: "#FA8072",
|
|
4814
|
+
sandybrown: "#F4A460",
|
|
4815
|
+
seagreen: "#2E8B57",
|
|
4816
|
+
seashell: "#FFF5EE",
|
|
4817
|
+
sienna: "#A0522D",
|
|
4818
|
+
silver: "#C0C0C0",
|
|
4819
|
+
skyblue: "#87CEEB",
|
|
4820
|
+
slateblue: "#6A5ACD",
|
|
4821
|
+
slategray: "#708090",
|
|
4822
|
+
slategrey: "#708090",
|
|
4823
|
+
snow: "#FFFAFA",
|
|
4824
|
+
springgreen: "#00FF7F",
|
|
4825
|
+
steelblue: "#4682B4",
|
|
4826
|
+
tan: "#D2B48C",
|
|
4827
|
+
teal: "#008080",
|
|
4828
|
+
thistle: "#D8BFD8",
|
|
4829
|
+
tomato: "#FF6347",
|
|
4830
|
+
turquoise: "#40E0D0",
|
|
4831
|
+
violet: "#EE82EE",
|
|
4832
|
+
wheat: "#F5DEB3",
|
|
4833
|
+
white: "#FFFFFF",
|
|
4834
|
+
whitesmoke: "#F5F5F5",
|
|
4835
|
+
yellow: "#FFFF00",
|
|
4836
|
+
yellowgreen: "#9ACD32"
|
|
4837
|
+
};
|
|
4838
|
+
class FocusLoopContext {
|
|
4839
|
+
constructor(el) {
|
|
4840
|
+
this.el = el;
|
|
4841
|
+
}
|
|
4842
|
+
firstEl;
|
|
4843
|
+
lastEl;
|
|
4844
|
+
update() {
|
|
4845
|
+
const first = findFirstFocusableElement(this.el);
|
|
4846
|
+
if (this.firstEl !== first) {
|
|
4847
|
+
this.firstEl?.removeEventListener("keydown", this.onShiftTabKeyDown.bind(this));
|
|
4848
|
+
this.firstEl = first;
|
|
4849
|
+
this.firstEl?.addEventListener("keydown", this.onShiftTabKeyDown.bind(this));
|
|
4850
|
+
}
|
|
4851
|
+
const last = findLastFocusableElement(this.el);
|
|
4852
|
+
if (this.lastEl !== last) {
|
|
4853
|
+
this.lastEl?.removeEventListener("keydown", this.onTabKeyDown.bind(this));
|
|
4854
|
+
this.lastEl = last;
|
|
4855
|
+
this.lastEl?.addEventListener("keydown", this.onTabKeyDown.bind(this));
|
|
4856
|
+
}
|
|
4857
|
+
}
|
|
4858
|
+
onTabKeyDown(event) {
|
|
4859
|
+
if (event.key == "Tab" && !event.shiftKey) {
|
|
4860
|
+
this.firstEl?.focus();
|
|
4861
|
+
event.preventDefault();
|
|
4862
|
+
event.stopPropagation();
|
|
4863
|
+
}
|
|
4864
|
+
}
|
|
4865
|
+
onShiftTabKeyDown(event) {
|
|
4866
|
+
if (event.key == "Tab" && event.shiftKey) {
|
|
4867
|
+
this.lastEl?.focus();
|
|
4868
|
+
event.preventDefault();
|
|
4869
|
+
event.stopPropagation();
|
|
4870
|
+
}
|
|
4871
|
+
}
|
|
4872
|
+
}
|
|
4873
|
+
const VFocusLoop = {
|
|
4874
|
+
mounted: async (el, _binding) => {
|
|
4875
|
+
if (el instanceof HTMLElement) {
|
|
4876
|
+
el.vFocusLoopContext = new FocusLoopContext(el);
|
|
4877
|
+
await nextTick();
|
|
4878
|
+
el.vFocusLoopContext.update();
|
|
4879
|
+
}
|
|
4880
|
+
}
|
|
4881
|
+
};
|
|
4882
|
+
const _hoisted_1$5 = { class: "bs-modal-frame flex flex-col" };
|
|
4883
|
+
const _hoisted_2$4 = {
|
|
4884
|
+
key: 0,
|
|
4885
|
+
class: "title-bar flex flex-row items-center"
|
|
4886
|
+
};
|
|
4887
|
+
const _hoisted_3$2 = { class: "title grow" };
|
|
4888
|
+
const _hoisted_4$2 = ["textContent"];
|
|
4889
|
+
const _hoisted_5$1 = { class: "title-buttons" };
|
|
4890
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
4891
|
+
__name: "BSModalFrame",
|
|
4892
|
+
props: {
|
|
4893
|
+
title: {},
|
|
4894
|
+
hideMaximizeButton: { type: Boolean },
|
|
4895
|
+
hideCloseButton: { type: Boolean },
|
|
4896
|
+
closeCaption: { default: "Close" },
|
|
4897
|
+
autoFocus: { type: Boolean }
|
|
4898
|
+
},
|
|
4899
|
+
emits: ["closeModal"],
|
|
4900
|
+
setup(__props, { emit: __emit }) {
|
|
4901
|
+
const props = __props;
|
|
4902
|
+
const emit = __emit;
|
|
4903
|
+
const slots = useSlots();
|
|
4904
|
+
const hasTitleBar = computed(
|
|
4905
|
+
() => props.title || slots["title"] || slots["title-buttons"] || !props.hideCloseButton
|
|
4906
|
+
);
|
|
4907
|
+
const hasButtons = computed(() => slots["buttons"]);
|
|
4908
|
+
const modalHandle = useModalHandle();
|
|
4909
|
+
const toggleMaximize = () => {
|
|
4910
|
+
modalHandle.maximized = !modalHandle.maximized;
|
|
4911
|
+
};
|
|
4912
|
+
const closeModal = () => {
|
|
4913
|
+
modalHandle.close();
|
|
4914
|
+
emit("closeModal");
|
|
4915
|
+
};
|
|
4916
|
+
const modalBody = ref();
|
|
4917
|
+
const modalButtons = ref();
|
|
4918
|
+
onMounted(async () => {
|
|
4919
|
+
await nextTick();
|
|
4920
|
+
if (props.autoFocus) {
|
|
4921
|
+
modalBody.value && focusFirstElement(modalBody.value) || modalButtons.value && focusFirstElement(modalButtons.value);
|
|
4922
|
+
} else if (modalBody.value) {
|
|
4923
|
+
modalBody.value.tabIndex = 0;
|
|
4924
|
+
modalBody.value.focus();
|
|
4925
|
+
modalBody.value.tabIndex = -1;
|
|
4926
|
+
}
|
|
4927
|
+
});
|
|
4928
|
+
return (_ctx, _cache) => {
|
|
4929
|
+
return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
4930
|
+
hasTitleBar.value ? (openBlock(), createElementBlock("div", _hoisted_2$4, [
|
|
4931
|
+
createElementVNode("div", _hoisted_3$2, [
|
|
4932
|
+
renderSlot(_ctx.$slots, "title", {}, () => [
|
|
4933
|
+
createElementVNode("span", {
|
|
4934
|
+
textContent: toDisplayString(__props.title)
|
|
4935
|
+
}, null, 8, _hoisted_4$2)
|
|
4936
|
+
])
|
|
4937
|
+
]),
|
|
4938
|
+
createElementVNode("div", _hoisted_5$1, [
|
|
4939
|
+
renderSlot(_ctx.$slots, "title-buttons")
|
|
4940
|
+
]),
|
|
4941
|
+
createElementVNode("div", null, [
|
|
4942
|
+
!__props.hideMaximizeButton ? (openBlock(), createBlock(_sfc_main$w, {
|
|
4943
|
+
key: 0,
|
|
4944
|
+
"left-icon": unref(modalHandle).maximized ? "minimize" : "maximize",
|
|
4945
|
+
title: unref(modalHandle).maximized ? "Restore" : "Maximize",
|
|
4946
|
+
class: "border-0 maximize-btn",
|
|
4947
|
+
onClick: toggleMaximize
|
|
4948
|
+
}, null, 8, ["left-icon", "title"])) : createCommentVNode("", true),
|
|
4949
|
+
!__props.hideCloseButton ? (openBlock(), createBlock(_sfc_main$w, {
|
|
4950
|
+
key: 1,
|
|
4951
|
+
title: __props.closeCaption,
|
|
4952
|
+
class: "border-0 close-btn",
|
|
4953
|
+
"left-icon": "close",
|
|
4954
|
+
onClick: closeModal
|
|
4955
|
+
}, null, 8, ["title"])) : createCommentVNode("", true)
|
|
4956
|
+
])
|
|
4957
|
+
])) : createCommentVNode("", true),
|
|
4958
|
+
createElementVNode("div", {
|
|
4959
|
+
ref_key: "modalBody",
|
|
4960
|
+
ref: modalBody,
|
|
4961
|
+
class: "grow overflow-auto outline-none"
|
|
4962
|
+
}, [
|
|
4963
|
+
renderSlot(_ctx.$slots, "default")
|
|
4964
|
+
], 512),
|
|
4965
|
+
hasButtons.value ? (openBlock(), createElementBlock("div", {
|
|
4966
|
+
key: 1,
|
|
4967
|
+
ref_key: "modalButtons",
|
|
4968
|
+
ref: modalButtons,
|
|
4969
|
+
class: "buttons"
|
|
4970
|
+
}, [
|
|
4971
|
+
renderSlot(_ctx.$slots, "buttons")
|
|
4972
|
+
], 512)) : createCommentVNode("", true)
|
|
4973
|
+
])), [
|
|
4974
|
+
[unref(VFocusLoop)]
|
|
4975
|
+
]);
|
|
4976
|
+
};
|
|
4977
|
+
}
|
|
4978
|
+
});
|
|
4979
|
+
const _hoisted_1$4 = ["textContent"];
|
|
4980
|
+
const _hoisted_2$3 = { class: "text-right" };
|
|
4981
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
4982
|
+
__name: "BSAlertModal",
|
|
4983
|
+
props: {
|
|
4984
|
+
title: {},
|
|
4985
|
+
message: {},
|
|
4986
|
+
okCaption: { default: "OK" }
|
|
4987
|
+
},
|
|
4988
|
+
emits: ["click"],
|
|
4989
|
+
setup(__props, { emit: __emit }) {
|
|
4990
|
+
const emit = __emit;
|
|
4991
|
+
const modalHandle = useModalHandle();
|
|
4992
|
+
modalHandle.setDefaultStyle({
|
|
4993
|
+
minWidth: "300px",
|
|
4994
|
+
escToClose: true
|
|
4995
|
+
});
|
|
4996
|
+
const clickOk = () => {
|
|
4997
|
+
emit("click");
|
|
4998
|
+
modalHandle.close();
|
|
4999
|
+
};
|
|
5000
|
+
return (_ctx, _cache) => {
|
|
5001
|
+
return openBlock(), createBlock(_sfc_main$5, {
|
|
5002
|
+
title: __props.title,
|
|
5003
|
+
"auto-focus": ""
|
|
5004
|
+
}, {
|
|
5005
|
+
buttons: withCtx(() => [
|
|
5006
|
+
createElementVNode("div", _hoisted_2$3, [
|
|
5007
|
+
withDirectives(createVNode(_sfc_main$w, {
|
|
5008
|
+
caption: __props.okCaption,
|
|
5009
|
+
"button-color": "blue",
|
|
5010
|
+
class: "min-w-80",
|
|
5011
|
+
"data-id": "okBtn",
|
|
5012
|
+
onClick: clickOk
|
|
5013
|
+
}, null, 8, ["caption"]), [
|
|
5014
|
+
[unref(vFocusOnLoad)]
|
|
5015
|
+
])
|
|
5016
|
+
])
|
|
5017
|
+
]),
|
|
5018
|
+
default: withCtx(() => [
|
|
5019
|
+
createElementVNode("div", {
|
|
5020
|
+
textContent: toDisplayString(__props.message)
|
|
5021
|
+
}, null, 8, _hoisted_1$4)
|
|
5022
|
+
]),
|
|
5023
|
+
_: 1
|
|
5024
|
+
}, 8, ["title"]);
|
|
5025
|
+
};
|
|
5026
|
+
}
|
|
5027
|
+
});
|
|
5028
|
+
const _hoisted_1$3 = ["textContent"];
|
|
5029
|
+
const _hoisted_2$2 = { class: "text-right" };
|
|
5030
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
5031
|
+
__name: "BSYesNoModal",
|
|
5032
|
+
props: {
|
|
5033
|
+
title: {},
|
|
5034
|
+
message: {},
|
|
5035
|
+
yesCaption: { default: "Yes" },
|
|
5036
|
+
noCaption: { default: "No" }
|
|
5037
|
+
},
|
|
5038
|
+
emits: ["clickNo", "clickYes"],
|
|
5039
|
+
setup(__props, { emit: __emit }) {
|
|
5040
|
+
const emit = __emit;
|
|
5041
|
+
const modalHandle = useModalHandle();
|
|
5042
|
+
modalHandle.setDefaultStyle({
|
|
5043
|
+
minWidth: "300px",
|
|
5044
|
+
escToClose: true
|
|
5045
|
+
});
|
|
5046
|
+
const clickNo = () => {
|
|
5047
|
+
emit("clickNo");
|
|
5048
|
+
modalHandle.close();
|
|
5049
|
+
};
|
|
5050
|
+
const clickYes = () => {
|
|
5051
|
+
emit("clickYes");
|
|
5052
|
+
modalHandle.close();
|
|
5053
|
+
};
|
|
5054
|
+
return (_ctx, _cache) => {
|
|
5055
|
+
return openBlock(), createBlock(_sfc_main$5, { title: __props.title }, {
|
|
5056
|
+
buttons: withCtx(() => [
|
|
5057
|
+
createElementVNode("div", _hoisted_2$2, [
|
|
5058
|
+
createVNode(_sfc_main$w, {
|
|
5059
|
+
caption: __props.noCaption,
|
|
5060
|
+
class: "min-w-80",
|
|
5061
|
+
"data-id": "noBtn",
|
|
5062
|
+
onClick: clickNo
|
|
5063
|
+
}, null, 8, ["caption"]),
|
|
5064
|
+
createVNode(_sfc_main$w, {
|
|
5065
|
+
caption: __props.yesCaption,
|
|
5066
|
+
"button-color": "blue",
|
|
5067
|
+
class: "ml-8 min-w-80",
|
|
5068
|
+
"data-id": "yesBtn",
|
|
5069
|
+
onClick: clickYes
|
|
5070
|
+
}, null, 8, ["caption"])
|
|
5071
|
+
])
|
|
5072
|
+
]),
|
|
5073
|
+
default: withCtx(() => [
|
|
5074
|
+
createElementVNode("div", {
|
|
5075
|
+
textContent: toDisplayString(__props.message)
|
|
5076
|
+
}, null, 8, _hoisted_1$3)
|
|
5077
|
+
]),
|
|
5078
|
+
_: 1
|
|
5079
|
+
}, 8, ["title"]);
|
|
5080
|
+
};
|
|
5081
|
+
}
|
|
5082
|
+
});
|
|
4374
5083
|
const _hoisted_1$2 = { class: "bs-notification-container" };
|
|
4375
5084
|
const _hoisted_2$1 = { class: "top-notification inline-flex flex-col items-center gap-1" };
|
|
4376
5085
|
const _hoisted_3$1 = ["textContent"];
|
|
@@ -4417,7 +5126,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
4417
5126
|
})
|
|
4418
5127
|
]),
|
|
4419
5128
|
createElementVNode("div", _hoisted_5, [
|
|
4420
|
-
unref(tooltipEntry) ? (openBlock(), createBlock(_sfc_main$
|
|
5129
|
+
unref(tooltipEntry) ? (openBlock(), createBlock(_sfc_main$s, {
|
|
4421
5130
|
key: 0,
|
|
4422
5131
|
ref_key: "tooltip",
|
|
4423
5132
|
ref: tooltip,
|
|
@@ -4484,7 +5193,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
4484
5193
|
return (_ctx, _cache) => {
|
|
4485
5194
|
const _component_router_link = resolveComponent("router-link");
|
|
4486
5195
|
const _component_BSContextMenu = resolveComponent("BSContextMenu", true);
|
|
4487
|
-
return openBlock(), createBlock(_sfc_main$
|
|
5196
|
+
return openBlock(), createBlock(_sfc_main$t, {
|
|
4488
5197
|
ref: "root",
|
|
4489
5198
|
"base-element": __props.baseElement || { left: __props.left || 0, top: __props.top || 0 },
|
|
4490
5199
|
"popup-direction": __props.direction,
|
|
@@ -4583,46 +5292,75 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4583
5292
|
};
|
|
4584
5293
|
}
|
|
4585
5294
|
});
|
|
5295
|
+
class IllegalAccessError {
|
|
5296
|
+
}
|
|
4586
5297
|
export {
|
|
4587
|
-
_sfc_main$
|
|
4588
|
-
_sfc_main$
|
|
4589
|
-
_sfc_main$
|
|
4590
|
-
_sfc_main$
|
|
4591
|
-
_sfc_main$
|
|
4592
|
-
_sfc_main$
|
|
5298
|
+
_sfc_main$4 as BSAlertModal,
|
|
5299
|
+
_sfc_main$w as BSButton,
|
|
5300
|
+
_sfc_main$o as BSCalendar,
|
|
5301
|
+
_sfc_main$n as BSCalendarRange,
|
|
5302
|
+
_sfc_main$8 as BSCardLayout,
|
|
5303
|
+
_sfc_main$i as BSCheckbox,
|
|
5304
|
+
_sfc_main$h as BSCheckboxGroup,
|
|
4593
5305
|
_sfc_main$1 as BSContextMenu,
|
|
4594
5306
|
_sfc_main as BSContextMenuContainer,
|
|
4595
5307
|
BSContextMenuPlugin,
|
|
4596
|
-
_sfc_main$
|
|
4597
|
-
_sfc_main$
|
|
4598
|
-
_sfc_main$
|
|
4599
|
-
_sfc_main$
|
|
5308
|
+
_sfc_main$c as BSDateInput,
|
|
5309
|
+
_sfc_main$d as BSDateInputPopup,
|
|
5310
|
+
_sfc_main$a as BSDateRange,
|
|
5311
|
+
_sfc_main$b as BSDateRangeInputPopup,
|
|
4600
5312
|
BSLoadingIcon,
|
|
4601
|
-
|
|
5313
|
+
BSModal,
|
|
5314
|
+
_sfc_main$6 as BSModalContainer,
|
|
5315
|
+
_sfc_main$5 as BSModalFrame,
|
|
5316
|
+
_sfc_main$e as BSMultiSelect,
|
|
4602
5317
|
_sfc_main$2 as BSNotificationContainer,
|
|
4603
|
-
_sfc_main$
|
|
4604
|
-
_sfc_main$
|
|
4605
|
-
_sfc_main$
|
|
4606
|
-
_sfc_main$
|
|
4607
|
-
_sfc_main$
|
|
4608
|
-
_sfc_main$
|
|
4609
|
-
_sfc_main$
|
|
4610
|
-
_sfc_main$
|
|
4611
|
-
_sfc_main$
|
|
5318
|
+
_sfc_main$k as BSNumberInput,
|
|
5319
|
+
_sfc_main$v as BSPageNavigation,
|
|
5320
|
+
_sfc_main$t as BSPopup,
|
|
5321
|
+
_sfc_main$g as BSRadioButton,
|
|
5322
|
+
_sfc_main$f as BSRadioButtonGroup,
|
|
5323
|
+
_sfc_main$p as BSSelect,
|
|
5324
|
+
_sfc_main$j as BSTextArea,
|
|
5325
|
+
_sfc_main$l as BSTextInput,
|
|
5326
|
+
_sfc_main$s as BSTooltip,
|
|
5327
|
+
_sfc_main$3 as BSYesNoModal,
|
|
4612
5328
|
BlueseaPlugin,
|
|
4613
5329
|
ContextMenuPluginKey,
|
|
5330
|
+
IllegalAccessError,
|
|
5331
|
+
NAMED_COLORS,
|
|
4614
5332
|
SavePointImpl,
|
|
4615
5333
|
alarmEntries,
|
|
4616
5334
|
cancelProvidedSavePoint,
|
|
4617
5335
|
closeAlarm,
|
|
5336
|
+
componentUtil,
|
|
4618
5337
|
createContextMenuPlugin,
|
|
5338
|
+
createModalPlugin,
|
|
4619
5339
|
debounce,
|
|
5340
|
+
defaultKeyProvider,
|
|
5341
|
+
defaultLabelProvider,
|
|
5342
|
+
emptyKeyProvider,
|
|
5343
|
+
emptyLabelProvider,
|
|
5344
|
+
executeKeyProviderOrDefault,
|
|
5345
|
+
executeLabelProviderOrDefault,
|
|
5346
|
+
findElement,
|
|
5347
|
+
findFirstFocusableElement,
|
|
5348
|
+
findInputComponents,
|
|
5349
|
+
findLastFocusableElement,
|
|
5350
|
+
focusFirstElement,
|
|
5351
|
+
focusLastElement,
|
|
5352
|
+
formatUtil,
|
|
5353
|
+
getComponentRootElement,
|
|
5354
|
+
getSelfIndex,
|
|
4620
5355
|
hideLoading,
|
|
4621
5356
|
hideTooltip,
|
|
4622
5357
|
isTooltipDisplayed,
|
|
5358
|
+
modalHandleKey,
|
|
5359
|
+
modalPluginKey,
|
|
4623
5360
|
notNull,
|
|
4624
5361
|
notificationEntries,
|
|
4625
5362
|
provideFieldContext,
|
|
5363
|
+
provideModalHandle,
|
|
4626
5364
|
provideSavePoint,
|
|
4627
5365
|
showAlarm,
|
|
4628
5366
|
showLoading,
|
|
@@ -4631,11 +5369,15 @@ export {
|
|
|
4631
5369
|
showTooltip,
|
|
4632
5370
|
tooltipEntry,
|
|
4633
5371
|
tryUntil,
|
|
5372
|
+
useBlueseaConfig,
|
|
4634
5373
|
useContextMenu,
|
|
4635
5374
|
useContextMenuOptional,
|
|
4636
5375
|
useFieldContext,
|
|
5376
|
+
useModal,
|
|
5377
|
+
useModalHandle,
|
|
4637
5378
|
useSavePoint,
|
|
4638
5379
|
vClickOutside,
|
|
5380
|
+
VFocusLoop as vFocusLoop,
|
|
4639
5381
|
vFocusOnLoad,
|
|
4640
5382
|
vTooltip,
|
|
4641
5383
|
waitDuring,
|