bootstrap-vue-wrapper 2.1.4 → 2.1.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/_virtual/_plugin-vue_export-helper.js +9 -0
- package/dist/components/bs-breadcrumb/BsBreadcrumb.vue.js +32 -0
- package/dist/components/bs-breadcrumb/BsBreadcrumb.vue2.js +27 -0
- package/dist/components/bs-checkbox/BsCheckbox.vue.js +43 -0
- package/dist/components/bs-checkbox/BsCheckbox.vue2.js +104 -0
- package/dist/components/bs-form/BsForm.vue.js +18 -0
- package/dist/components/bs-form/BsForm.vue2.js +23 -0
- package/dist/components/bs-input/BsInput.vue.js +39 -0
- package/dist/components/bs-input/BsInput.vue2.js +78 -0
- package/dist/components/bs-modal/BsModal.vue.js +51 -0
- package/dist/components/bs-modal/BsModal.vue2.js +59 -0
- package/dist/components/bs-offcanvas/BsOffcanvas.vue.js +34 -0
- package/dist/components/bs-offcanvas/BsOffcanvas.vue2.js +43 -0
- package/dist/components/bs-paginator/BsPaginator.vue.js +63 -0
- package/dist/components/bs-paginator/BsPaginator.vue2.js +114 -0
- package/dist/components/bs-paginator/BsPaginator.vue3.js +1 -0
- package/dist/components/bs-radio/BsRadio.vue.js +43 -0
- package/dist/components/bs-radio/BsRadio.vue2.js +97 -0
- package/dist/components/bs-select/BsSelect.vue.js +50 -0
- package/dist/components/bs-select/BsSelect.vue2.js +92 -0
- package/dist/components/bs-table/BsTable.vue.js +75 -0
- package/dist/components/bs-table/BsTable.vue2.js +108 -0
- package/dist/components/bs-table/BsTable.vue3.js +1 -0
- package/dist/components/bs-textarea/BsTextarea.vue.js +39 -0
- package/dist/components/bs-textarea/BsTextarea.vue2.js +78 -0
- package/dist/components/bs-toast/BsToast.vue.js +19 -0
- package/dist/components/bs-toast/BsToast.vue2.js +34 -0
- package/dist/components/validator/Validator.js +54 -0
- package/dist/index.js +28 -0
- package/dist/style.css +1 -1
- package/package.json +4 -2
- package/dist/bootstrap-vue-wrapper.js +0 -1284
- package/dist/bootstrap-vue-wrapper.umd.cjs +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { defineComponent as i } from "vue";
|
|
2
|
+
const r = i({
|
|
3
|
+
name: "BsPaginator",
|
|
4
|
+
props: {
|
|
5
|
+
/**
|
|
6
|
+
* Total count of items.
|
|
7
|
+
*/
|
|
8
|
+
totalCount: {
|
|
9
|
+
type: Number,
|
|
10
|
+
required: !0
|
|
11
|
+
},
|
|
12
|
+
/**
|
|
13
|
+
* Page size
|
|
14
|
+
*/
|
|
15
|
+
pageSize: {
|
|
16
|
+
type: Number,
|
|
17
|
+
required: !0
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Current page
|
|
21
|
+
*/
|
|
22
|
+
currentPage: {
|
|
23
|
+
type: Number,
|
|
24
|
+
required: !0
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Max visible page
|
|
28
|
+
*/
|
|
29
|
+
maxVisiblePage: {
|
|
30
|
+
type: Number,
|
|
31
|
+
default: 5
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* First page label
|
|
35
|
+
*/
|
|
36
|
+
firstPageLabel: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: "«"
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Previous page label
|
|
42
|
+
*/
|
|
43
|
+
previousPageLabel: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: "‹"
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Next page label
|
|
49
|
+
*/
|
|
50
|
+
nextPageLabel: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: "›"
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Last page label
|
|
56
|
+
*/
|
|
57
|
+
lastPageLabel: {
|
|
58
|
+
type: String,
|
|
59
|
+
default: "»"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
emits: ["pageChanged"],
|
|
63
|
+
methods: {
|
|
64
|
+
/**
|
|
65
|
+
* Count of pages
|
|
66
|
+
*
|
|
67
|
+
* @returns {number}
|
|
68
|
+
*/
|
|
69
|
+
getPageCount() {
|
|
70
|
+
return Math.ceil(this.totalCount / this.pageSize);
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* Visible page list
|
|
74
|
+
*
|
|
75
|
+
* @returns {*[]}
|
|
76
|
+
*/
|
|
77
|
+
getVisiblePages() {
|
|
78
|
+
const e = [], t = this.getPageRange();
|
|
79
|
+
for (let a = t.beginPage; a <= t.endPage; a += 1)
|
|
80
|
+
e.push(a + 1);
|
|
81
|
+
return e;
|
|
82
|
+
},
|
|
83
|
+
/**
|
|
84
|
+
* Is page active, or not
|
|
85
|
+
*
|
|
86
|
+
* @param page
|
|
87
|
+
* @returns {boolean}
|
|
88
|
+
*/
|
|
89
|
+
isPageActive(e) {
|
|
90
|
+
return e === this.currentPage;
|
|
91
|
+
},
|
|
92
|
+
/**
|
|
93
|
+
* On page click
|
|
94
|
+
*/
|
|
95
|
+
onPageClick(e) {
|
|
96
|
+
this.isPageActive(e) || this.$emit("pageChanged", e);
|
|
97
|
+
},
|
|
98
|
+
/**
|
|
99
|
+
* Page range, example: 3 available page, current page 3, range is: [1, 3] (zero-based)
|
|
100
|
+
*
|
|
101
|
+
* @returns {{beginPage: number, endPage: number}}
|
|
102
|
+
*/
|
|
103
|
+
getPageRange() {
|
|
104
|
+
let e = Math.max(0, this.currentPage - this.maxVisiblePage / 2), t = e + this.maxVisiblePage - 1;
|
|
105
|
+
return t >= this.getPageCount() && (t = this.getPageCount() - 1, e = Math.max(0, t - this.maxVisiblePage + 1)), {
|
|
106
|
+
beginPage: Math.floor(e),
|
|
107
|
+
endPage: Math.floor(t)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
export {
|
|
113
|
+
r as default
|
|
114
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import a from "./BsRadio.vue2.js";
|
|
2
|
+
import { openBlock as t, createElementBlock as o, normalizeClass as r, createElementVNode as s, mergeProps as u, toDisplayString as d, createCommentVNode as l } from "vue";
|
|
3
|
+
import p from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = ["id", "value", "checked", "aria-describedby"], v = ["for", "textContent"], f = ["textContent"], k = ["id", "textContent"];
|
|
5
|
+
function b(e, n, h, C, I, c) {
|
|
6
|
+
return t(), o("div", {
|
|
7
|
+
class: r(["form-check", e.classContainer])
|
|
8
|
+
}, [
|
|
9
|
+
s("input", u({
|
|
10
|
+
id: e.id,
|
|
11
|
+
ref: "inputRef",
|
|
12
|
+
value: e.modelValue
|
|
13
|
+
}, e.$attrs, {
|
|
14
|
+
type: "radio",
|
|
15
|
+
class: "form-check-input",
|
|
16
|
+
checked: e.isChecked,
|
|
17
|
+
"aria-describedby": e.hint !== void 0 ? e.getHintId() : void 0,
|
|
18
|
+
onInput: n[0] || (n[0] = (...i) => e.onInput && e.onInput(...i)),
|
|
19
|
+
onInvalid: n[1] || (n[1] = (...i) => e.onInvalid && e.onInvalid(...i))
|
|
20
|
+
}), null, 16, m),
|
|
21
|
+
e.label !== void 0 ? (t(), o("label", {
|
|
22
|
+
key: 0,
|
|
23
|
+
for: e.id,
|
|
24
|
+
class: "form-check-label",
|
|
25
|
+
textContent: d(e.label)
|
|
26
|
+
}, null, 8, v)) : l("", !0),
|
|
27
|
+
e.validatorEnabled && e.validator.getInvalidMessage() !== null ? (t(), o("div", {
|
|
28
|
+
key: 1,
|
|
29
|
+
class: "invalid-feedback",
|
|
30
|
+
textContent: d(e.validator.getInvalidMessage())
|
|
31
|
+
}, null, 8, f)) : l("", !0),
|
|
32
|
+
e.hint !== void 0 ? (t(), o("div", {
|
|
33
|
+
key: 2,
|
|
34
|
+
id: e.getHintId(),
|
|
35
|
+
class: "form-text",
|
|
36
|
+
textContent: d(e.hint)
|
|
37
|
+
}, null, 8, k)) : l("", !0)
|
|
38
|
+
], 2);
|
|
39
|
+
}
|
|
40
|
+
const B = /* @__PURE__ */ p(a, [["render", b]]);
|
|
41
|
+
export {
|
|
42
|
+
B as default
|
|
43
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { useValidator as t } from "../validator/Validator.js";
|
|
2
|
+
import { defineComponent as i, ref as a } from "vue";
|
|
3
|
+
const d = i({
|
|
4
|
+
name: "BsRadio",
|
|
5
|
+
props: {
|
|
6
|
+
/**
|
|
7
|
+
* Radio value
|
|
8
|
+
*/
|
|
9
|
+
value: {
|
|
10
|
+
type: [String, Number],
|
|
11
|
+
default: null
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* Value for v-model
|
|
15
|
+
*/
|
|
16
|
+
modelValue: {
|
|
17
|
+
type: [String, Number],
|
|
18
|
+
default: null
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Html id
|
|
22
|
+
*/
|
|
23
|
+
id: {
|
|
24
|
+
type: String,
|
|
25
|
+
required: !0
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Label for input
|
|
29
|
+
*/
|
|
30
|
+
label: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Attribute hint
|
|
36
|
+
*/
|
|
37
|
+
hint: {
|
|
38
|
+
type: String,
|
|
39
|
+
default: void 0
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Input container div class.
|
|
43
|
+
*/
|
|
44
|
+
classContainer: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: void 0
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Enable or disable validator
|
|
50
|
+
*/
|
|
51
|
+
validatorEnabled: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: !0
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
emits: ["update:modelValue"],
|
|
57
|
+
setup() {
|
|
58
|
+
const e = a(null);
|
|
59
|
+
return {
|
|
60
|
+
inputRef: e,
|
|
61
|
+
validator: t(e)
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
computed: {
|
|
65
|
+
/**
|
|
66
|
+
* Radio is checked or not.
|
|
67
|
+
*/
|
|
68
|
+
isChecked() {
|
|
69
|
+
return this.modelValue === this.value;
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
methods: {
|
|
73
|
+
/**
|
|
74
|
+
* Hint id is generated
|
|
75
|
+
*/
|
|
76
|
+
getHintId() {
|
|
77
|
+
return this.id + "Hint";
|
|
78
|
+
},
|
|
79
|
+
/**
|
|
80
|
+
* On input event
|
|
81
|
+
*/
|
|
82
|
+
onInput() {
|
|
83
|
+
this.$emit("update:modelValue", this.value);
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* On invalid event
|
|
87
|
+
*
|
|
88
|
+
* @param event
|
|
89
|
+
*/
|
|
90
|
+
onInvalid(e) {
|
|
91
|
+
this.validatorEnabled && this.validator.onInvalid(e);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
export {
|
|
96
|
+
d as default
|
|
97
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import s from "./BsSelect.vue2.js";
|
|
2
|
+
import { openBlock as t, createElementBlock as n, Fragment as d, toDisplayString as l, createCommentVNode as a, createElementVNode as u, mergeProps as v, renderList as p } from "vue";
|
|
3
|
+
import m from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const f = ["for", "textContent"], b = ["id", "value", "aria-labelledby"], I = {
|
|
5
|
+
key: 0,
|
|
6
|
+
value: "",
|
|
7
|
+
disabled: "",
|
|
8
|
+
hidden: ""
|
|
9
|
+
}, g = ["value"], h = ["textContent"], k = ["id", "textContent"];
|
|
10
|
+
function y(e, i, C, $, B, E) {
|
|
11
|
+
return t(), n(d, null, [
|
|
12
|
+
e.label !== void 0 ? (t(), n("label", {
|
|
13
|
+
key: 0,
|
|
14
|
+
for: e.id,
|
|
15
|
+
class: "form-label",
|
|
16
|
+
textContent: l(e.label)
|
|
17
|
+
}, null, 8, f)) : a("", !0),
|
|
18
|
+
u("select", v({
|
|
19
|
+
id: e.id,
|
|
20
|
+
ref: "inputRef",
|
|
21
|
+
class: "form-select",
|
|
22
|
+
value: e.modelValue,
|
|
23
|
+
"aria-labelledby": e.hint !== void 0 ? e.getHintId() : void 0
|
|
24
|
+
}, e.$attrs, {
|
|
25
|
+
onInput: i[0] || (i[0] = (...o) => e.onInput && e.onInput(...o)),
|
|
26
|
+
onInvalid: i[1] || (i[1] = (...o) => e.onInvalid && e.onInvalid(...o))
|
|
27
|
+
}), [
|
|
28
|
+
e.placeholder !== void 0 ? (t(), n("option", I, l(e.placeholder), 1)) : a("", !0),
|
|
29
|
+
(t(!0), n(d, null, p(e.options, (o, r) => (t(), n("option", {
|
|
30
|
+
key: r,
|
|
31
|
+
value: o.value
|
|
32
|
+
}, l(o.text), 9, g))), 128))
|
|
33
|
+
], 16, b),
|
|
34
|
+
e.validatorEnabled && e.validator.getInvalidMessage() !== null ? (t(), n("div", {
|
|
35
|
+
key: 1,
|
|
36
|
+
class: "invalid-feedback",
|
|
37
|
+
textContent: l(e.validator.getInvalidMessage())
|
|
38
|
+
}, null, 8, h)) : a("", !0),
|
|
39
|
+
e.hint !== void 0 ? (t(), n("div", {
|
|
40
|
+
key: 2,
|
|
41
|
+
id: e.getHintId(),
|
|
42
|
+
class: "form-text",
|
|
43
|
+
textContent: l(e.hint)
|
|
44
|
+
}, null, 8, k)) : a("", !0)
|
|
45
|
+
], 64);
|
|
46
|
+
}
|
|
47
|
+
const N = /* @__PURE__ */ m(s, [["render", y]]);
|
|
48
|
+
export {
|
|
49
|
+
N as default
|
|
50
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { useValidator as r } from "../validator/Validator.js";
|
|
2
|
+
import { defineComponent as a, ref as i } from "vue";
|
|
3
|
+
const d = a({
|
|
4
|
+
name: "BsSelect",
|
|
5
|
+
props: {
|
|
6
|
+
/**
|
|
7
|
+
* Value for v-model
|
|
8
|
+
*/
|
|
9
|
+
modelValue: {
|
|
10
|
+
type: [String, Number, Array],
|
|
11
|
+
default: null
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* Html id
|
|
15
|
+
*/
|
|
16
|
+
id: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: !0
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Label for input
|
|
22
|
+
*/
|
|
23
|
+
label: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: void 0
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Attribute hint
|
|
29
|
+
*/
|
|
30
|
+
hint: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Options
|
|
36
|
+
*/
|
|
37
|
+
options: {
|
|
38
|
+
type: Array,
|
|
39
|
+
required: !0
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Placeholder
|
|
43
|
+
*/
|
|
44
|
+
placeholder: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: void 0
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Enable or disable validator
|
|
50
|
+
*/
|
|
51
|
+
validatorEnabled: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: !0
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
emits: ["update:modelValue"],
|
|
57
|
+
setup() {
|
|
58
|
+
const t = i(null);
|
|
59
|
+
return {
|
|
60
|
+
inputRef: t,
|
|
61
|
+
validator: r(t)
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
methods: {
|
|
65
|
+
/**
|
|
66
|
+
* Hint id is generated
|
|
67
|
+
*/
|
|
68
|
+
getHintId() {
|
|
69
|
+
return this.id + "Hint";
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* On input event
|
|
73
|
+
*
|
|
74
|
+
* @param event
|
|
75
|
+
*/
|
|
76
|
+
onInput(t) {
|
|
77
|
+
const e = t.target;
|
|
78
|
+
this.$emit("update:modelValue", e.value);
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* On invalid event
|
|
82
|
+
*
|
|
83
|
+
* @param event
|
|
84
|
+
*/
|
|
85
|
+
onInvalid(t) {
|
|
86
|
+
this.validatorEnabled && this.validator.onInvalid(t);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
export {
|
|
91
|
+
d as default
|
|
92
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import h from "./BsTable.vue2.js";
|
|
2
|
+
import { resolveDirective as k, openBlock as s, createElementBlock as o, createElementVNode as r, Fragment as i, renderList as c, normalizeClass as n, renderSlot as a, createTextVNode as p, toDisplayString as u, createCommentVNode as m, withDirectives as v, pushScopeId as _, popScopeId as C } from "vue";
|
|
3
|
+
import "./BsTable.vue3.js";
|
|
4
|
+
import b from "../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const $ = (e) => (_("data-v-7c949d62"), e = e(), C(), e), g = { class: "table" }, S = ["onClick"], f = { key: 0 }, B = ["colspan"], I = /* @__PURE__ */ $(() => /* @__PURE__ */ r("div", { class: "d-flex justify-content-center p-2" }, [
|
|
6
|
+
/* @__PURE__ */ r("div", { class: "spinner-border spinner-border-sm" })
|
|
7
|
+
], -1)), D = { key: 1 }, w = ["colspan"], N = { class: "text-center text-muted small" };
|
|
8
|
+
function V(e, A, E, F, L, O) {
|
|
9
|
+
const y = k("t");
|
|
10
|
+
return s(), o("table", g, [
|
|
11
|
+
r("thead", null, [
|
|
12
|
+
r("tr", null, [
|
|
13
|
+
(s(!0), o(i, null, c(e.fields, (t) => (s(), o("th", {
|
|
14
|
+
key: t.key,
|
|
15
|
+
class: n({
|
|
16
|
+
"cursor-pointer": e.isSortableField(t),
|
|
17
|
+
"text-decoration-underline": e.isActiveOrderBy(t.key),
|
|
18
|
+
thClass: e.thClass
|
|
19
|
+
}),
|
|
20
|
+
onClick: (d) => e.onHeadClick(t)
|
|
21
|
+
}, [
|
|
22
|
+
a(e.$slots, "tr", {}, () => [
|
|
23
|
+
p(u(t.label) + " ", 1),
|
|
24
|
+
e.isActiveOrderBy(t.key) && e.sortDesc !== void 0 ? (s(), o("i", {
|
|
25
|
+
key: 0,
|
|
26
|
+
class: n(e.getSortIconClass())
|
|
27
|
+
}, null, 2)) : m("", !0)
|
|
28
|
+
], !0)
|
|
29
|
+
], 10, S))), 128))
|
|
30
|
+
])
|
|
31
|
+
]),
|
|
32
|
+
r("tbody", null, [
|
|
33
|
+
e.isLoading ? (s(), o("tr", f, [
|
|
34
|
+
r("td", {
|
|
35
|
+
colspan: e.fields.length
|
|
36
|
+
}, [
|
|
37
|
+
a(e.$slots, "loading", {}, () => [
|
|
38
|
+
I
|
|
39
|
+
], !0)
|
|
40
|
+
], 8, B)
|
|
41
|
+
])) : e.items.length === 0 ? (s(), o("tr", D, [
|
|
42
|
+
r("td", {
|
|
43
|
+
colspan: e.fields.length
|
|
44
|
+
}, [
|
|
45
|
+
a(e.$slots, "empty", {}, () => [
|
|
46
|
+
v(r("div", N, null, 512), [
|
|
47
|
+
[y, "table.empty_text"]
|
|
48
|
+
])
|
|
49
|
+
], !0)
|
|
50
|
+
], 8, w)
|
|
51
|
+
])) : (s(!0), o(i, { key: 2 }, c(e.items, (t, d) => (s(), o("tr", {
|
|
52
|
+
key: d,
|
|
53
|
+
class: n(t.trClass)
|
|
54
|
+
}, [
|
|
55
|
+
(s(!0), o(i, null, c(e.fields, (l) => (s(), o("td", {
|
|
56
|
+
key: l.key,
|
|
57
|
+
class: n(e.tdClass)
|
|
58
|
+
}, [
|
|
59
|
+
a(e.$slots, "td", {
|
|
60
|
+
key: d,
|
|
61
|
+
field: l.key,
|
|
62
|
+
row: t,
|
|
63
|
+
value: l.key in t ? t[l.key] : null
|
|
64
|
+
}, () => [
|
|
65
|
+
p(u(t[l.key]), 1)
|
|
66
|
+
], !0)
|
|
67
|
+
], 2))), 128))
|
|
68
|
+
], 2))), 128))
|
|
69
|
+
])
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
const q = /* @__PURE__ */ b(h, [["render", V], ["__scopeId", "data-v-7c949d62"]]);
|
|
73
|
+
export {
|
|
74
|
+
q as default
|
|
75
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { defineComponent as r } from "vue";
|
|
2
|
+
const s = r({
|
|
3
|
+
name: "BsTable",
|
|
4
|
+
props: {
|
|
5
|
+
/**
|
|
6
|
+
* Field list
|
|
7
|
+
*/
|
|
8
|
+
fields: {
|
|
9
|
+
type: Array,
|
|
10
|
+
required: !0
|
|
11
|
+
},
|
|
12
|
+
/**
|
|
13
|
+
* Item list
|
|
14
|
+
*/
|
|
15
|
+
items: {
|
|
16
|
+
type: Array,
|
|
17
|
+
required: !0
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Items loading
|
|
21
|
+
*/
|
|
22
|
+
isLoading: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: !1
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Order by field name
|
|
28
|
+
*/
|
|
29
|
+
orderBy: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: void 0
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Sort is descending or ascending
|
|
35
|
+
*/
|
|
36
|
+
sortDesc: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: void 0
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* th element css lass
|
|
42
|
+
*/
|
|
43
|
+
thClass: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: void 0
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* td element css class
|
|
49
|
+
*/
|
|
50
|
+
tdClass: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: void 0
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
emits: ["orderChanged"],
|
|
56
|
+
methods: {
|
|
57
|
+
/**
|
|
58
|
+
* Is order by active by field?
|
|
59
|
+
*
|
|
60
|
+
* @param fieldKey
|
|
61
|
+
* @returns {boolean}
|
|
62
|
+
*/
|
|
63
|
+
isActiveOrderBy(e) {
|
|
64
|
+
return e === this.orderBy;
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* Is field sortable?
|
|
68
|
+
*
|
|
69
|
+
* @param field
|
|
70
|
+
* @returns {boolean}
|
|
71
|
+
*/
|
|
72
|
+
isSortableField(e) {
|
|
73
|
+
return e.sort === void 0 || e.sort;
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Sort icon class.
|
|
77
|
+
*
|
|
78
|
+
* @returns {string}
|
|
79
|
+
*/
|
|
80
|
+
getSortIconClass() {
|
|
81
|
+
if (this.sortDesc === void 0)
|
|
82
|
+
throw new Error("Sort desc value is null, cannot calculate the sort icon!");
|
|
83
|
+
return this.sortDesc ? "bi bi-caret-up-fill" : "bi bi-caret-down-fill";
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Calcuate sort desc value on click
|
|
87
|
+
* Returns null if there is no sortDesc value.
|
|
88
|
+
*/
|
|
89
|
+
calcSortDesc(e) {
|
|
90
|
+
return this.sortDesc === void 0 ? null : this.isOrderByChanged(e) ? !1 : !this.sortDesc;
|
|
91
|
+
},
|
|
92
|
+
/**
|
|
93
|
+
* Is order by changed?
|
|
94
|
+
*/
|
|
95
|
+
isOrderByChanged(e) {
|
|
96
|
+
return this.orderBy !== e;
|
|
97
|
+
},
|
|
98
|
+
/**
|
|
99
|
+
* Table head clicked.
|
|
100
|
+
*/
|
|
101
|
+
onHeadClick(e) {
|
|
102
|
+
this.isSortableField(e) && this.$emit("orderChanged", { sortDesc: this.calcSortDesc(e.key), orderBy: e.key });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
export {
|
|
107
|
+
s as default
|
|
108
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import r from "./BsTextarea.vue2.js";
|
|
2
|
+
import { openBlock as n, createElementBlock as o, Fragment as d, toDisplayString as i, createCommentVNode as a, createElementVNode as s, mergeProps as u } from "vue";
|
|
3
|
+
import m from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const v = ["for", "textContent"], f = ["id", "value", "aria-describedby"], p = ["textContent"], b = ["id", "textContent"];
|
|
5
|
+
function I(e, t, g, C, k, y) {
|
|
6
|
+
return n(), o(d, null, [
|
|
7
|
+
e.label !== void 0 ? (n(), o("label", {
|
|
8
|
+
key: 0,
|
|
9
|
+
for: e.id,
|
|
10
|
+
class: "form-label",
|
|
11
|
+
textContent: i(e.label)
|
|
12
|
+
}, null, 8, v)) : a("", !0),
|
|
13
|
+
s("textarea", u({
|
|
14
|
+
id: e.id,
|
|
15
|
+
ref: "inputRef",
|
|
16
|
+
value: e.modelValue
|
|
17
|
+
}, e.$attrs, {
|
|
18
|
+
class: "form-control",
|
|
19
|
+
"aria-describedby": e.hint !== void 0 ? e.getHintId() : void 0,
|
|
20
|
+
onInput: t[0] || (t[0] = (...l) => e.onInput && e.onInput(...l)),
|
|
21
|
+
onInvalid: t[1] || (t[1] = (...l) => e.onInvalid && e.onInvalid(...l))
|
|
22
|
+
}), null, 16, f),
|
|
23
|
+
e.validatorEnabled && e.validator.getInvalidMessage() !== null ? (n(), o("div", {
|
|
24
|
+
key: 1,
|
|
25
|
+
class: "invalid-feedback",
|
|
26
|
+
textContent: i(e.validator.getInvalidMessage())
|
|
27
|
+
}, null, 8, p)) : a("", !0),
|
|
28
|
+
e.hint !== void 0 ? (n(), o("div", {
|
|
29
|
+
key: 2,
|
|
30
|
+
id: e.getHintId(),
|
|
31
|
+
class: "form-text",
|
|
32
|
+
textContent: i(e.hint)
|
|
33
|
+
}, null, 8, b)) : a("", !0)
|
|
34
|
+
], 64);
|
|
35
|
+
}
|
|
36
|
+
const E = /* @__PURE__ */ m(r, [["render", I]]);
|
|
37
|
+
export {
|
|
38
|
+
E as default
|
|
39
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useValidator as a } from "../validator/Validator.js";
|
|
2
|
+
import { defineComponent as i, ref as n } from "vue";
|
|
3
|
+
const d = i({
|
|
4
|
+
name: "BsTextarea",
|
|
5
|
+
props: {
|
|
6
|
+
/**
|
|
7
|
+
* Value for v-model
|
|
8
|
+
*/
|
|
9
|
+
modelValue: {
|
|
10
|
+
type: [String, Number],
|
|
11
|
+
default: null
|
|
12
|
+
},
|
|
13
|
+
/**
|
|
14
|
+
* Html id
|
|
15
|
+
*/
|
|
16
|
+
id: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: !0
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* Label for textarea
|
|
22
|
+
*/
|
|
23
|
+
label: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: void 0
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Attribute hint
|
|
29
|
+
*/
|
|
30
|
+
hint: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Enable or disable validator
|
|
36
|
+
*/
|
|
37
|
+
validatorEnabled: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: !0
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
emits: ["update:modelValue"],
|
|
43
|
+
setup() {
|
|
44
|
+
const t = n(null);
|
|
45
|
+
return {
|
|
46
|
+
inputRef: t,
|
|
47
|
+
validator: a(t)
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
methods: {
|
|
51
|
+
/**
|
|
52
|
+
* Hint id is generated
|
|
53
|
+
*/
|
|
54
|
+
getHintId() {
|
|
55
|
+
return this.id + "Hint";
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* On input event
|
|
59
|
+
*
|
|
60
|
+
* @param event
|
|
61
|
+
*/
|
|
62
|
+
onInput(t) {
|
|
63
|
+
const e = t.target;
|
|
64
|
+
this.$emit("update:modelValue", e.value);
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* On invalid event
|
|
68
|
+
*
|
|
69
|
+
* @param event
|
|
70
|
+
*/
|
|
71
|
+
onInvalid(t) {
|
|
72
|
+
this.validatorEnabled && this.validator.onInvalid(t);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
export {
|
|
77
|
+
d as default
|
|
78
|
+
};
|