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