admins-components 9.0.65 → 9.0.67
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/admins-components.js +41 -41
- package/dist/admins-components100.js +75 -244
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components102.js +2 -2
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +256 -3
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js +6 -52
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +3 -82
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +3 -113
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +49 -44
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +80 -104
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +109 -16
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +46 -6
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +100 -246
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +19 -26
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +6 -27
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +239 -159
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +26 -67
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +25 -64
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +169 -27
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +65 -13
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +64 -24
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +29 -8
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +16 -4
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +27 -3
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +8 -2
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +4 -21
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +3 -14
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +3 -8
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +19 -11
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +14 -26
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +7 -82
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +9 -7
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +25 -4
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +81 -6
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +10 -6
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +2 -3
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +8 -15
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +6 -12
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +6 -30
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +15 -4
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +13 -29
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +30 -5
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +4 -5
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +28 -7
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +4 -73
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +4 -28
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +8 -59
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +72 -22
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +26 -47
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +58 -30
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components150.js +24 -3
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +44 -173
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +28 -43
- package/dist/admins-components152.js.map +1 -1
- package/dist/admins-components153.js +3 -37
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +176 -43
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +41 -136
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +36 -57
- package/dist/admins-components156.js.map +1 -1
- package/dist/admins-components157.js +44 -5
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +141 -6
- package/dist/admins-components158.js.map +1 -1
- package/dist/admins-components159.js +57 -75
- package/dist/admins-components159.js.map +1 -1
- package/dist/admins-components160.js +6 -28
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +5 -1930
- package/dist/admins-components161.js.map +1 -1
- package/dist/admins-components162.js +75 -24810
- package/dist/admins-components162.js.map +1 -1
- package/dist/admins-components163.js +28 -8
- package/dist/admins-components163.js.map +1 -1
- package/dist/admins-components164.js +1929 -5
- package/dist/admins-components164.js.map +1 -0
- package/dist/admins-components165.js +24809 -140
- package/dist/admins-components165.js.map +1 -1
- package/dist/admins-components166.js +3 -3
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +7 -9
- package/dist/admins-components168.js +143 -0
- package/dist/admins-components168.js.map +1 -0
- package/dist/admins-components169.js +8 -167
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components170.js +8 -52
- package/dist/admins-components170.js.map +1 -1
- package/dist/admins-components172.js +161 -43
- package/dist/admins-components172.js.map +1 -1
- package/dist/admins-components173.js +53 -6
- package/dist/admins-components173.js.map +1 -1
- package/dist/admins-components174.js +8 -79
- package/dist/admins-components174.js.map +1 -1
- package/dist/admins-components175.js +35 -43
- package/dist/admins-components175.js.map +1 -1
- package/dist/admins-components176.js +6 -63
- package/dist/admins-components176.js.map +1 -1
- package/dist/admins-components177.js +79 -8
- package/dist/admins-components177.js.map +1 -1
- package/dist/admins-components178.js +43 -37
- package/dist/admins-components178.js.map +1 -1
- package/dist/admins-components179.js +62 -8
- package/dist/admins-components179.js.map +1 -1
- package/dist/admins-components180.js +10 -0
- package/dist/admins-components180.js.map +1 -0
- package/dist/admins-components181.js +44 -50
- package/dist/admins-components181.js.map +1 -1
- package/dist/admins-components182.js +10 -0
- package/dist/admins-components182.js.map +1 -0
- package/dist/admins-components184.js +59 -0
- package/dist/admins-components184.js.map +1 -0
- package/dist/admins-components21.js +2 -2
- package/dist/admins-components21.js.map +1 -1
- package/dist/admins-components22.js.map +1 -1
- package/dist/admins-components29.js +6 -3
- package/dist/admins-components29.js.map +1 -1
- package/dist/admins-components30.js.map +1 -1
- package/dist/admins-components5.js +4 -2
- package/dist/admins-components5.js.map +1 -1
- package/dist/admins-components58.js.map +1 -1
- package/dist/admins-components6.js.map +1 -1
- package/dist/admins-components60.js +28 -73
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components62.js +4 -2
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components63.js +95 -83
- package/dist/admins-components63.js.map +1 -1
- package/dist/admins-components64.js +70 -4
- package/dist/admins-components64.js.map +1 -1
- package/dist/admins-components65.js +4 -157
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components66.js +90 -0
- package/dist/admins-components66.js.map +1 -0
- package/dist/admins-components67.js +2 -5
- package/dist/admins-components67.js.map +1 -1
- package/dist/admins-components68.js +130 -136
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js +2 -2
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components71.js +163 -7
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js +8 -0
- package/dist/admins-components73.js.map +1 -0
- package/dist/admins-components74.js +7 -6
- package/dist/admins-components74.js.map +1 -1
- package/dist/admins-components75.js +289 -8
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components77.js +6 -145
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components78.js +10 -0
- package/dist/admins-components78.js.map +1 -0
- package/dist/admins-components79.js +43 -6
- package/dist/admins-components79.js.map +1 -1
- package/dist/admins-components80.js +130 -121
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js +2 -2
- package/dist/admins-components82.js.map +1 -1
- package/dist/admins-components83.js +133 -56
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components85.js +6 -238
- package/dist/admins-components85.js.map +1 -1
- package/dist/admins-components86.js +60 -0
- package/dist/admins-components86.js.map +1 -0
- package/dist/admins-components87.js +67 -6
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components88.js +216 -208
- package/dist/admins-components88.js.map +1 -1
- package/dist/admins-components90.js +2 -2
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +225 -32
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components93.js +2 -2
- package/dist/admins-components93.js.map +1 -1
- package/dist/admins-components94.js +65 -194
- package/dist/admins-components94.js.map +1 -1
- package/dist/admins-components96.js +2 -2
- package/dist/admins-components96.js.map +1 -1
- package/dist/admins-components97.js +188 -71
- package/dist/admins-components97.js.map +1 -1
- package/dist/admins-components99.js +2 -2
- package/dist/admins-components99.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/main.css.map +1 -1
- package/dist/src/components/Button.vue.d.ts +2 -1
- package/dist/src/components/DropdownMenu.vue.d.ts +2 -0
- package/dist/src/components/data-table/DataList.vue.d.ts +3 -0
- package/dist/src/components/data-table/DataSearch.vue.d.ts +0 -4
- package/dist/src/components/data-table/DataSort.vue.d.ts +0 -5
- package/dist/src/components/data-table/FilterTags.vue.d.ts +1 -0
- package/dist/src/components/data-table/TagList.vue.d.ts +18 -0
- package/dist/src/index.d.ts +2 -2
- package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +1 -0
- package/dist/src/styles/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +1 -1
- package/dist/src/styles/components/header.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/types/data-list.d.ts +2 -0
- package/dist/src/utils/dataListConverters.d.ts +16 -1
- package/dist/src/utils/url.d.ts +1 -0
- package/package.json +1 -1
- package/dist/admins-components104.js +0 -4
- package/dist/admins-components104.js.map +0 -1
- package/dist/admins-components167.js.map +0 -1
- package/dist/admins-components171.js +0 -10
- package/dist/admins-components171.js.map +0 -1
- package/dist/admins-components61.js +0 -71
- package/dist/admins-components61.js.map +0 -1
- package/dist/admins-components72.js +0 -289
- package/dist/admins-components72.js.map +0 -1
- package/dist/admins-components76.js +0 -37
- package/dist/admins-components76.js.map +0 -1
- package/dist/admins-components84.js +0 -68
- package/dist/admins-components84.js.map +0 -1
|
@@ -1,8 +1,164 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
1
|
+
import e from "./admins-components19.js";
|
|
2
|
+
import t from "./admins-components25.js";
|
|
3
|
+
import n from "./admins-components45.js";
|
|
4
|
+
import { useSelection as r } from "./admins-components57.js";
|
|
5
|
+
import { dataCardsSettingsDefaults as i } from "./admins-components58.js";
|
|
6
|
+
import { getColumnValue as a } from "./admins-components59.js";
|
|
7
|
+
import { shortUuid as o } from "./admins-components63.js";
|
|
8
|
+
import s from "./admins-components65.js";
|
|
9
|
+
import c from "./admins-components67.js";
|
|
10
|
+
import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, isVNode as _, nextTick as v, normalizeClass as y, openBlock as b, ref as x, renderList as S, renderSlot as C, resolveDirective as w, resolveDynamicComponent as T, toDisplayString as E, unref as D, vShow as O, watch as k, withDirectives as A, withModifiers as j } from "vue";
|
|
11
|
+
//#region src/components/data-table/DataCards.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
+
var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__heading" }, F = { class: "c-card__label" }, I = ["innerHTML"], L = ["innerHTML"], R = { class: "c-card__body" }, z = { class: "c-card__field-label" }, B = {
|
|
13
|
+
key: 1,
|
|
14
|
+
class: "c-cards__loading-wrap"
|
|
15
|
+
}, V = {
|
|
16
|
+
key: 2,
|
|
17
|
+
class: "c-cards__backdrop",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, H = /* @__PURE__ */ g({
|
|
20
|
+
__name: "DataCards",
|
|
21
|
+
props: {
|
|
22
|
+
config: {},
|
|
23
|
+
items: {},
|
|
24
|
+
settings: { default: () => ({ ...i }) },
|
|
25
|
+
loading: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: !1
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
emits: ["selection-change"],
|
|
31
|
+
setup(i, { emit: g }) {
|
|
32
|
+
let H = i, U = g, { selectedKeys: W, toggle: G } = r(() => H.items, () => H.config.selectableAttr, (e) => U("selection-change", e)), K = x(/* @__PURE__ */ new Set()), q = x(null);
|
|
33
|
+
k(() => H.loading, async (e) => {
|
|
34
|
+
e && (await v(), q.value?.scrollTo({
|
|
35
|
+
top: 0,
|
|
36
|
+
behavior: "smooth"
|
|
37
|
+
}));
|
|
38
|
+
}), k(() => H.items, () => {
|
|
39
|
+
K.value = /* @__PURE__ */ new Set();
|
|
40
|
+
});
|
|
41
|
+
let J = u(() => H.config.columns.filter((e) => e.visible !== !1)), Y = u(() => {
|
|
42
|
+
let e = H.settings;
|
|
43
|
+
if (e?.cardHeaderColumns) {
|
|
44
|
+
let t = J.value.filter((t) => e.cardHeaderColumns[t.property]);
|
|
45
|
+
if (t.length > 0) {
|
|
46
|
+
if (e.cardHeaderOrder) {
|
|
47
|
+
let n = e.cardHeaderOrder;
|
|
48
|
+
return [...t].sort((e, t) => {
|
|
49
|
+
let r = n.indexOf(e.property), i = n.indexOf(t.property);
|
|
50
|
+
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return t;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
let t = J.value.filter((e) => e.primary);
|
|
57
|
+
return t.length > 0 ? t : J.value.slice(0, 1);
|
|
58
|
+
}), X = null, Z = !1;
|
|
59
|
+
function Q(e, t) {
|
|
60
|
+
H.config.selectableAttr && e.button === 0 && (Z = !1, X = setTimeout(() => {
|
|
61
|
+
Z = !0, G(t);
|
|
62
|
+
}, 500));
|
|
63
|
+
}
|
|
64
|
+
function $() {
|
|
65
|
+
X &&= (clearTimeout(X), null);
|
|
66
|
+
}
|
|
67
|
+
function ee(e) {
|
|
68
|
+
Z && e.preventDefault();
|
|
69
|
+
}
|
|
70
|
+
function te(e) {
|
|
71
|
+
if (Z) {
|
|
72
|
+
Z = !1;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
ne(e);
|
|
76
|
+
}
|
|
77
|
+
function ne(e) {
|
|
78
|
+
K.value.has(e) ? K.value.delete(e) : K.value.add(e), K.value = new Set(K.value);
|
|
79
|
+
}
|
|
80
|
+
return (r, u) => {
|
|
81
|
+
let g = w("tooltip");
|
|
82
|
+
return b(), p("div", {
|
|
83
|
+
ref_key: "cardsWrapperRef",
|
|
84
|
+
ref: q,
|
|
85
|
+
class: y(["ac-component c-cards-wrapper list-card-view", { "is-loading": i.loading }])
|
|
86
|
+
}, [!i.loading || i.items.length > 0 ? (b(), p("div", {
|
|
87
|
+
key: 0,
|
|
88
|
+
class: y(["c-cards", { "is-compact": i.settings.compact }])
|
|
89
|
+
}, [(b(!0), p(l, null, S(i.items, (t, v) => (b(), p("div", {
|
|
90
|
+
key: v,
|
|
91
|
+
class: y(["c-card", {
|
|
92
|
+
"is-open": K.value.has(v),
|
|
93
|
+
"is-selected": i.config.selectableAttr && D(W).has(t[i.config.selectableAttr])
|
|
94
|
+
}])
|
|
95
|
+
}, [m("button", {
|
|
96
|
+
type: "button",
|
|
97
|
+
class: "c-card__header",
|
|
98
|
+
onClick: (e) => te(v),
|
|
99
|
+
onPointerdown: (e) => Q(e, t),
|
|
100
|
+
onPointerup: u[1] ||= (e) => $(),
|
|
101
|
+
onPointerleave: u[2] ||= (e) => $(),
|
|
102
|
+
onContextmenu: ee
|
|
103
|
+
}, [
|
|
104
|
+
i.config.selectableAttr ? (b(), p("span", {
|
|
105
|
+
key: 0,
|
|
106
|
+
class: "c-card__check-zone",
|
|
107
|
+
onClick: j((e) => D(G)(t), ["stop"])
|
|
108
|
+
}, [h(e, {
|
|
109
|
+
"model-value": !!D(W).has(t[i.config.selectableAttr]),
|
|
110
|
+
"onUpdate:modelValue": (e) => D(G)(t),
|
|
111
|
+
onClick: u[0] ||= j(() => {}, ["stop"])
|
|
112
|
+
}, null, 8, ["model-value", "onUpdate:modelValue"])], 8, N)) : f("", !0),
|
|
113
|
+
m("span", P, [(b(!0), p(l, null, S(Y.value, (e, n) => (b(), p("span", {
|
|
114
|
+
key: e.property,
|
|
115
|
+
class: y(["c-card__heading-item", [{ primary: e.primary }, e.headerClass]])
|
|
116
|
+
}, [m("span", F, E(e.hideHeader ? "" : e.label), 1), m("span", { class: y(["c-card__title", { "c-truncate": i.settings.compact && n === 0 }]) }, [_(D(a)(t, e)) ? (b(), d(T(D(a)(t, e)), { key: 0 })) : e.type === "uuid" ? A((b(), p("span", {
|
|
117
|
+
key: 1,
|
|
118
|
+
innerHTML: D(o)()(D(a)(t, e))
|
|
119
|
+
}, null, 8, I)), [[g, D(a)(t, e)]]) : (b(), p("span", {
|
|
120
|
+
key: 2,
|
|
121
|
+
innerHTML: D(a)(t, e)
|
|
122
|
+
}, null, 8, L))], 2)], 2))), 128))]),
|
|
123
|
+
u[4] ||= m("span", {
|
|
124
|
+
class: "c-card__icon",
|
|
125
|
+
"aria-hidden": "true"
|
|
126
|
+
}, [m("i", { class: "fa-solid fa-chevron-down" })], -1)
|
|
127
|
+
], 40, M), A(m("div", R, [(b(!0), p(l, null, S(J.value, (e) => (b(), p("div", {
|
|
128
|
+
key: e.property,
|
|
129
|
+
class: "c-card__field"
|
|
130
|
+
}, [
|
|
131
|
+
m("span", z, E(e.label), 1),
|
|
132
|
+
C(r.$slots, `cell:${e.property}`, {
|
|
133
|
+
item: t,
|
|
134
|
+
col: e
|
|
135
|
+
}, () => [h(s, {
|
|
136
|
+
item: t,
|
|
137
|
+
col: e,
|
|
138
|
+
class: "c-card__field-value",
|
|
139
|
+
copy: !1
|
|
140
|
+
}, null, 8, ["item", "col"])]),
|
|
141
|
+
D(a)(t, e) && !e.hideCopyToClipboard ? (b(), d(n, {
|
|
142
|
+
key: 0,
|
|
143
|
+
class: "c-card__field-copy click-expand",
|
|
144
|
+
value: D(a)(t, e)
|
|
145
|
+
}, null, 8, ["value"])) : f("", !0)
|
|
146
|
+
]))), 128)), i.config.actions ? (b(), p("div", {
|
|
147
|
+
key: 0,
|
|
148
|
+
class: "c-card__actions",
|
|
149
|
+
onClick: u[3] ||= j(() => {}, ["stop"])
|
|
150
|
+
}, [h(c, {
|
|
151
|
+
actions: i.config.actions,
|
|
152
|
+
item: t
|
|
153
|
+
}, null, 8, ["actions", "item"])])) : f("", !0)], 512), [[O, K.value.has(v)]])], 2))), 128))], 2)) : (b(), p("div", B, [h(t, {
|
|
154
|
+
loading: !0,
|
|
155
|
+
size: "2.5rem"
|
|
156
|
+
})])), i.loading && i.items.length > 0 ? (b(), p("div", V, [h(t, {
|
|
157
|
+
loading: !0,
|
|
158
|
+
size: "2.5rem"
|
|
159
|
+
})])) : f("", !0)], 2);
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
});
|
|
7
163
|
//#endregion
|
|
8
|
-
export {
|
|
164
|
+
export { H as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components71.js","names":[],"sources":["../src/utils/objects.ts"],"sourcesContent":["export function deepMerge(target: Record<string, any>, source: Record<string, any>) {\n const result = { ...target };\n\n for (const key in source) {\n if (\n source[key] &&\n typeof source[key] === 'object' &&\n !Array.isArray(source[key]) &&\n key in target &&\n typeof target[key] === 'object'\n ) {\n result[key] = deepMerge(target[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n\n return result;\n}\n"],"mappings":";AAAA,SAAgB,EAAU,GAA6B,GAA6B;CAClF,IAAM,IAAS,EAAE,GAAG,EAAO;CAE3B,KAAK,IAAM,KAAO,GAChB,AACE,EAAO,MACP,OAAO,EAAO,MAAS,YACvB,CAAC,MAAM,QAAQ,EAAO,EAAI,KAC1B,KAAO,KACP,OAAO,EAAO,MAAS,WAEvB,EAAO,KAAO,EAAU,EAAO,IAAM,EAAO,EAAI,IAEhD,EAAO,KAAO,EAAO;CAIzB,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"admins-components71.js","names":[],"sources":["../src/components/data-table/DataCards.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DataListConfig, DataCardsSettings, DataListSettings } from '@/types/data-list'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, isVNode, nextTick } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataCardsSettingsDefaults } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataCardsSettings | DataListSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataCardsSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n}>()\n\nconst { selectedKeys, toggle: toggleRow } = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst openRowIndexes = ref<Set<number>>(new Set())\n\nconst cardsWrapperRef = ref<HTMLElement | null>(null)\n\nwatch(\n () => props.loading,\n async (isLoading) => {\n if (isLoading) {\n await nextTick()\n cardsWrapperRef.value?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n },\n)\n\nwatch(\n () => props.items,\n () => {\n openRowIndexes.value = new Set()\n },\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nconst cardHeaderColumns = computed(() => {\n const s = props.settings as any\n if (s?.cardHeaderColumns) {\n const cols = visibleColumns.value.filter((c) => s.cardHeaderColumns[c.property])\n if (cols.length > 0) {\n if (s.cardHeaderOrder) {\n const order = s.cardHeaderOrder as string[]\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return cols\n }\n }\n const primary = visibleColumns.value.filter((c) => c.primary)\n if (primary.length > 0) return primary\n\n return visibleColumns.value.slice(0, 1)\n})\n\nlet longPressTimer: ReturnType<typeof setTimeout> | null = null\nlet longPressTriggered = false\n\nfunction onPointerDown(e: PointerEvent, item: Record<string, unknown>) {\n if (!props.config.selectableAttr) return\n if (e.button !== 0) return\n longPressTriggered = false\n longPressTimer = setTimeout(() => {\n longPressTriggered = true\n toggleRow(item)\n }, 500)\n}\n\nfunction onPointerUp() {\n if (longPressTimer) {\n clearTimeout(longPressTimer)\n longPressTimer = null\n }\n}\n\nfunction onContextMenu(e: MouseEvent) {\n if (longPressTriggered) {\n e.preventDefault()\n }\n}\n\nfunction onHeaderClick(index: number) {\n if (longPressTriggered) {\n longPressTriggered = false\n return\n }\n toggleAccordion(index)\n}\n\nfunction toggleAccordion(index: number) {\n if (openRowIndexes.value.has(index)) {\n openRowIndexes.value.delete(index)\n } else {\n openRowIndexes.value.add(index)\n }\n openRowIndexes.value = new Set(openRowIndexes.value)\n}\n</script>\n\n<template>\n <div\n ref=\"cardsWrapperRef\"\n class=\"ac-component c-cards-wrapper list-card-view\"\n :class=\"{ 'is-loading': loading }\"\n >\n <div\n v-if=\"!loading || items.length > 0\"\n class=\"c-cards\"\n :class=\"{ 'is-compact': settings.compact }\"\n >\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n class=\"c-card\"\n :class=\"{\n 'is-open': openRowIndexes.has(index),\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n }\"\n >\n <button\n type=\"button\"\n class=\"c-card__header\"\n @click=\"onHeaderClick(index)\"\n @pointerdown=\"onPointerDown($event, item)\"\n @pointerup=\"onPointerUp()\"\n @pointerleave=\"onPointerUp()\"\n @contextmenu=\"onContextMenu\"\n >\n <span\n v-if=\"config.selectableAttr\"\n class=\"c-card__check-zone\"\n @click.stop=\"toggleRow(item)\"\n >\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </span>\n <span class=\"c-card__heading\">\n <span\n v-for=\"(col, i) in cardHeaderColumns\"\n :key=\"col.property\"\n class=\"c-card__heading-item\"\n :class=\"[{ primary: col.primary }, col.headerClass]\"\n >\n <span class=\"c-card__label\">{{ !col.hideHeader ? col.label : '' }}</span>\n <span class=\"c-card__title\" :class=\"{ 'c-truncate': settings.compact && i === 0 }\">\n <component\n v-if=\"isVNode(getColumnValue(item, col))\"\n :is=\"getColumnValue(item, col)\"\n />\n <span\n v-else-if=\"col.type === 'uuid'\"\n v-tooltip=\"getColumnValue(item, col)\"\n v-html=\"shortUuid()(getColumnValue(item, col) as string)\"\n ></span>\n <span v-else v-html=\"getColumnValue(item, col)\"></span>\n </span>\n </span>\n </span>\n <span class=\"c-card__icon\" aria-hidden=\"true\"\n ><i class=\"fa-solid fa-chevron-down\"></i\n ></span>\n </button>\n\n <div v-show=\"openRowIndexes.has(index)\" class=\"c-card__body\">\n <div v-for=\"col in visibleColumns\" :key=\"col.property\" class=\"c-card__field\">\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <slot :name=\"`cell:${col.property}`\" :item=\"item\" :col=\"col\">\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n </slot>\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col) && !col.hideCopyToClipboard\"\n class=\"c-card__field-copy click-expand\"\n :value=\"getColumnValue(item, col)\"\n />\n </div>\n\n <div v-if=\"config.actions\" class=\"c-card__actions\" @click.stop>\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"c-cards__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n <div v-if=\"loading && items.length > 0\" class=\"c-cards__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import './src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
+
import "./admins-components58.js";
|
|
3
|
+
import e from "./admins-components71.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
//#region src/components/data-table/DataCards.vue
|
|
6
|
+
var t = e;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { t as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components73.js","names":[],"sources":["../src/components/data-table/DataCards.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DataListConfig, DataCardsSettings, DataListSettings } from '@/types/data-list'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, isVNode, nextTick } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataCardsSettingsDefaults } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataCardsSettings | DataListSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataCardsSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n}>()\n\nconst { selectedKeys, toggle: toggleRow } = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst openRowIndexes = ref<Set<number>>(new Set())\n\nconst cardsWrapperRef = ref<HTMLElement | null>(null)\n\nwatch(\n () => props.loading,\n async (isLoading) => {\n if (isLoading) {\n await nextTick()\n cardsWrapperRef.value?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n },\n)\n\nwatch(\n () => props.items,\n () => {\n openRowIndexes.value = new Set()\n },\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nconst cardHeaderColumns = computed(() => {\n const s = props.settings as any\n if (s?.cardHeaderColumns) {\n const cols = visibleColumns.value.filter((c) => s.cardHeaderColumns[c.property])\n if (cols.length > 0) {\n if (s.cardHeaderOrder) {\n const order = s.cardHeaderOrder as string[]\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return cols\n }\n }\n const primary = visibleColumns.value.filter((c) => c.primary)\n if (primary.length > 0) return primary\n\n return visibleColumns.value.slice(0, 1)\n})\n\nlet longPressTimer: ReturnType<typeof setTimeout> | null = null\nlet longPressTriggered = false\n\nfunction onPointerDown(e: PointerEvent, item: Record<string, unknown>) {\n if (!props.config.selectableAttr) return\n if (e.button !== 0) return\n longPressTriggered = false\n longPressTimer = setTimeout(() => {\n longPressTriggered = true\n toggleRow(item)\n }, 500)\n}\n\nfunction onPointerUp() {\n if (longPressTimer) {\n clearTimeout(longPressTimer)\n longPressTimer = null\n }\n}\n\nfunction onContextMenu(e: MouseEvent) {\n if (longPressTriggered) {\n e.preventDefault()\n }\n}\n\nfunction onHeaderClick(index: number) {\n if (longPressTriggered) {\n longPressTriggered = false\n return\n }\n toggleAccordion(index)\n}\n\nfunction toggleAccordion(index: number) {\n if (openRowIndexes.value.has(index)) {\n openRowIndexes.value.delete(index)\n } else {\n openRowIndexes.value.add(index)\n }\n openRowIndexes.value = new Set(openRowIndexes.value)\n}\n</script>\n\n<template>\n <div\n ref=\"cardsWrapperRef\"\n class=\"ac-component c-cards-wrapper list-card-view\"\n :class=\"{ 'is-loading': loading }\"\n >\n <div\n v-if=\"!loading || items.length > 0\"\n class=\"c-cards\"\n :class=\"{ 'is-compact': settings.compact }\"\n >\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n class=\"c-card\"\n :class=\"{\n 'is-open': openRowIndexes.has(index),\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n }\"\n >\n <button\n type=\"button\"\n class=\"c-card__header\"\n @click=\"onHeaderClick(index)\"\n @pointerdown=\"onPointerDown($event, item)\"\n @pointerup=\"onPointerUp()\"\n @pointerleave=\"onPointerUp()\"\n @contextmenu=\"onContextMenu\"\n >\n <span\n v-if=\"config.selectableAttr\"\n class=\"c-card__check-zone\"\n @click.stop=\"toggleRow(item)\"\n >\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </span>\n <span class=\"c-card__heading\">\n <span\n v-for=\"(col, i) in cardHeaderColumns\"\n :key=\"col.property\"\n class=\"c-card__heading-item\"\n :class=\"[{ primary: col.primary }, col.headerClass]\"\n >\n <span class=\"c-card__label\">{{ !col.hideHeader ? col.label : '' }}</span>\n <span class=\"c-card__title\" :class=\"{ 'c-truncate': settings.compact && i === 0 }\">\n <component\n v-if=\"isVNode(getColumnValue(item, col))\"\n :is=\"getColumnValue(item, col)\"\n />\n <span\n v-else-if=\"col.type === 'uuid'\"\n v-tooltip=\"getColumnValue(item, col)\"\n v-html=\"shortUuid()(getColumnValue(item, col) as string)\"\n ></span>\n <span v-else v-html=\"getColumnValue(item, col)\"></span>\n </span>\n </span>\n </span>\n <span class=\"c-card__icon\" aria-hidden=\"true\"\n ><i class=\"fa-solid fa-chevron-down\"></i\n ></span>\n </button>\n\n <div v-show=\"openRowIndexes.has(index)\" class=\"c-card__body\">\n <div v-for=\"col in visibleColumns\" :key=\"col.property\" class=\"c-card__field\">\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <slot :name=\"`cell:${col.property}`\" :item=\"item\" :col=\"col\">\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n </slot>\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col) && !col.hideCopyToClipboard\"\n class=\"c-card__field-copy click-expand\"\n :value=\"getColumnValue(item, col)\"\n />\n </div>\n\n <div v-if=\"config.actions\" class=\"c-card__actions\" @click.stop>\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"c-cards__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n <div v-if=\"loading && items.length > 0\" class=\"c-cards__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
//#region src/utils/objects.ts
|
|
2
|
+
function e(t, n) {
|
|
3
|
+
let r = { ...t };
|
|
4
|
+
for (let i in n) n[i] && typeof n[i] == "object" && !Array.isArray(n[i]) && i in t && typeof t[i] == "object" ? r[i] = e(t[i], n[i]) : r[i] = n[i];
|
|
5
|
+
return r;
|
|
6
|
+
}
|
|
6
7
|
//#endregion
|
|
7
|
-
export {
|
|
8
|
+
export { e as deepMerge };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components74.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\n// Force locked columns to true in both column maps, regardless of saved state.\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n // Saved order, restricted to columns that still exist in the source config.\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n // Walk the source-code order. For each property:\n // - if it was saved, pull it from the saved sequence in saved order\n // - if it's new, insert it at its source-code position\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch {\n /* ignore */\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: string[]) {\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n}\n\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\n// If the columns prop changes at runtime, re-reconcile the orders so new\n// columns appear at their source-code position, and re-apply locked overrides.\nwatch(() => props.columns, () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n})\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"table-options\">\n <div class=\"table-options__col\">\n <h4 class=\"table-options__title\">\n Elrendezés\n <span class=\"table-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n <div class=\"table-options__col\">\n <h4\n class=\"table-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n class=\"table-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"table-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"table-options__col\">\n <h4 class=\"table-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"table-options__item\"\n :class=\"{\n 'table-options__item--disabled': isColumnLocked(col),\n 'table-options__item--selected': orderable && selectedReorderIndex === index,\n 'table-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable ? selectForReorder(index) : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical table-options__drag-handle\"></i>\n <span\n class=\"table-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"table-options__move-actions\">\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"table-options__col\">\n <h4\n class=\"table-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"table-options__item\"\n :class=\"{\n 'table-options__item--disabled': isColumnLocked(col),\n 'table-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'table-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical table-options__drag-handle\"></i>\n <span\n class=\"table-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"table-options__move-actions\"\n >\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"table-options__footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admins-components74.js","names":[],"sources":["../src/utils/objects.ts"],"sourcesContent":["export function deepMerge(target: Record<string, any>, source: Record<string, any>) {\n const result = { ...target };\n\n for (const key in source) {\n if (\n source[key] &&\n typeof source[key] === 'object' &&\n !Array.isArray(source[key]) &&\n key in target &&\n typeof target[key] === 'object'\n ) {\n result[key] = deepMerge(target[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n\n return result;\n}\n"],"mappings":";AAAA,SAAgB,EAAU,GAA6B,GAA6B;CAClF,IAAM,IAAS,EAAE,GAAG,EAAO;CAE3B,KAAK,IAAM,KAAO,GAChB,AACE,EAAO,MACP,OAAO,EAAO,MAAS,YACvB,CAAC,MAAM,QAAQ,EAAO,EAAI,KAC1B,KAAO,KACP,OAAO,EAAO,MAAS,WAEvB,EAAO,KAAO,EAAU,EAAO,IAAM,EAAO,EAAI,IAEhD,EAAO,KAAO,EAAO;CAIzB,OAAO;AACT"}
|
|
@@ -1,10 +1,291 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import e from "./admins-components6.js";
|
|
2
|
+
import t from "./admins-components34.js";
|
|
3
|
+
import { dataCardsSettingsDefaults as n, dataListSettingsDefaults as r, dataTableSettingsDefaults as i } from "./admins-components58.js";
|
|
4
|
+
import { deepMerge as a } from "./admins-components74.js";
|
|
5
|
+
import { Fragment as o, computed as s, createBlock as ee, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, onMounted as te, openBlock as h, ref as g, renderList as _, resolveDirective as ne, toDisplayString as v, watch as re, withCtx as ie, withDirectives as y, withModifiers as b } from "vue";
|
|
6
|
+
//#region src/components/data-table/DataListOptions.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var ae = { class: "table-options" }, oe = { class: "table-options__col" }, se = { class: "table-options__title" }, ce = { class: "table-options__title-value" }, le = { class: "layout-switch" }, ue = { class: "table-options__col" }, x = { class: "table-options__title" }, S = { class: "table-options__list" }, de = { class: "table-options__col" }, fe = { class: "table-options__title" }, pe = { class: "table-options__list" }, me = [
|
|
8
|
+
"draggable",
|
|
9
|
+
"onDragstart",
|
|
10
|
+
"onDragover",
|
|
11
|
+
"onClick"
|
|
12
|
+
], he = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "fa-solid fa-grip-vertical table-options__drag-handle"
|
|
15
|
+
}, ge = ["onClick"], _e = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "table-options__move-actions"
|
|
18
|
+
}, ve = ["disabled"], ye = ["disabled"], be = { class: "table-options__col" }, xe = { class: "table-options__title flex-center gap-1" }, C = { class: "table-options__list" }, w = [
|
|
19
|
+
"draggable",
|
|
20
|
+
"onDragstart",
|
|
21
|
+
"onDragover",
|
|
22
|
+
"onClick"
|
|
23
|
+
], T = {
|
|
24
|
+
key: 0,
|
|
25
|
+
class: "fa-solid fa-grip-vertical table-options__drag-handle"
|
|
26
|
+
}, E = ["onClick"], D = {
|
|
27
|
+
key: 0,
|
|
28
|
+
class: "table-options__move-actions"
|
|
29
|
+
}, O = ["disabled"], k = ["disabled"], A = { class: "table-options__footer" }, j = /* @__PURE__ */ p({
|
|
30
|
+
__name: "DataListOptions",
|
|
31
|
+
props: {
|
|
32
|
+
open: { type: Boolean },
|
|
33
|
+
columns: {},
|
|
34
|
+
settings: {},
|
|
35
|
+
position: {},
|
|
36
|
+
storageKey: {},
|
|
37
|
+
orderable: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: !1
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
emits: ["close", "change"],
|
|
43
|
+
setup(p, { emit: j }) {
|
|
44
|
+
let M = p, N = j, P = g(z()), F = s(() => `data-list-${M.storageKey}`), I = s(() => JSON.stringify(P.value) !== JSON.stringify(z()));
|
|
45
|
+
function L(e) {
|
|
46
|
+
return e.primary === !0 || e.hideable === !1;
|
|
47
|
+
}
|
|
48
|
+
function R(e) {
|
|
49
|
+
for (let t of M.columns) L(t) && (e.columns[t.property] = !0, e.cardHeaderColumns[t.property] = !0);
|
|
50
|
+
}
|
|
51
|
+
function z() {
|
|
52
|
+
return {
|
|
53
|
+
...n,
|
|
54
|
+
...i,
|
|
55
|
+
...r,
|
|
56
|
+
...M.settings,
|
|
57
|
+
columns: Object.fromEntries(M.columns.map((e) => [e.property, M.settings.columns?.[e.property] ?? e.visible !== !1])),
|
|
58
|
+
cardHeaderColumns: Object.fromEntries(M.columns.map((e) => [e.property, M.settings.cardHeaderColumns?.[e.property] ?? (e.primary === !0 || e.hideable === !1 || e.defaultCardHeader === !0)])),
|
|
59
|
+
columnOrder: M.settings.columnOrder ?? M.columns.map((e) => e.property),
|
|
60
|
+
cardHeaderOrder: M.settings.cardHeaderOrder ?? M.columns.map((e) => e.property)
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function Se() {
|
|
64
|
+
try {
|
|
65
|
+
let e = localStorage.getItem(F.value), t = z();
|
|
66
|
+
if (e) {
|
|
67
|
+
let n = JSON.parse(e);
|
|
68
|
+
P.value = n.settings ? B(a(t, n.settings), M.columns) : t;
|
|
69
|
+
} else P.value = t;
|
|
70
|
+
} catch {
|
|
71
|
+
P.value = z();
|
|
72
|
+
}
|
|
73
|
+
R(P.value), N("change", P.value);
|
|
74
|
+
}
|
|
75
|
+
function B(e, t) {
|
|
76
|
+
let n = t.map((e) => e.property), r = (e) => {
|
|
77
|
+
let t = (e ?? []).filter((e) => n.includes(e)), r = new Set(t), i = [], a = 0;
|
|
78
|
+
for (let e of n) r.has(e) ? i.push(t[a++]) : i.push(e);
|
|
79
|
+
return i;
|
|
80
|
+
};
|
|
81
|
+
return {
|
|
82
|
+
...e,
|
|
83
|
+
columnOrder: r(e.columnOrder),
|
|
84
|
+
cardHeaderOrder: r(e.cardHeaderOrder)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function Ce() {
|
|
88
|
+
try {
|
|
89
|
+
let e = F.value, t = localStorage.getItem(e), n = t ? JSON.parse(t) : {};
|
|
90
|
+
n.settings = P.value, localStorage.setItem(e, JSON.stringify(n));
|
|
91
|
+
} catch (e) {
|
|
92
|
+
console.error(e);
|
|
93
|
+
}
|
|
94
|
+
N("change", P.value);
|
|
95
|
+
}
|
|
96
|
+
function V(e, t) {
|
|
97
|
+
P.value = {
|
|
98
|
+
...P.value,
|
|
99
|
+
[e]: t
|
|
100
|
+
}, Ce();
|
|
101
|
+
}
|
|
102
|
+
function H(e) {
|
|
103
|
+
V("columns", {
|
|
104
|
+
...P.value.columns,
|
|
105
|
+
[e]: !P.value.columns[e]
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function U(e) {
|
|
109
|
+
V("cardHeaderColumns", {
|
|
110
|
+
...P.value.cardHeaderColumns,
|
|
111
|
+
[e]: !P.value.cardHeaderColumns[e]
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function W(e) {
|
|
115
|
+
V(e, !P.value[e]);
|
|
116
|
+
}
|
|
117
|
+
function G(e, t) {
|
|
118
|
+
return [...e].sort((e, n) => {
|
|
119
|
+
let r = t.indexOf(e.property), i = t.indexOf(n.property);
|
|
120
|
+
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
let K = s(() => G(M.columns, P.value.columnOrder)), q = s(() => G(M.columns, P.value.cardHeaderOrder)), J = g(null), Y = g(null), X = g(null), Z = g(null);
|
|
124
|
+
function we(e) {
|
|
125
|
+
J.value = e;
|
|
126
|
+
}
|
|
127
|
+
function Te(e, t) {
|
|
128
|
+
if (e.preventDefault(), J.value === null || J.value === t) return;
|
|
129
|
+
let n = [...P.value.columnOrder], r = n.splice(J.value, 1)[0];
|
|
130
|
+
r && (n.splice(t, 0, r), J.value = t, V("columnOrder", n));
|
|
131
|
+
}
|
|
132
|
+
function Ee() {
|
|
133
|
+
J.value = null;
|
|
134
|
+
}
|
|
135
|
+
function De(e) {
|
|
136
|
+
Y.value = Y.value === e ? null : e;
|
|
137
|
+
}
|
|
138
|
+
function Q(e) {
|
|
139
|
+
if (Y.value === null) return;
|
|
140
|
+
let t = Y.value + e;
|
|
141
|
+
if (t < 0 || t >= P.value.columnOrder.length) return;
|
|
142
|
+
let n = [...P.value.columnOrder], r = n[Y.value];
|
|
143
|
+
n[Y.value] = n[t], n[t] = r, V("columnOrder", n), Y.value = t;
|
|
144
|
+
}
|
|
145
|
+
function Oe(e) {
|
|
146
|
+
X.value = e;
|
|
147
|
+
}
|
|
148
|
+
function ke(e, t) {
|
|
149
|
+
if (e.preventDefault(), X.value === null || X.value === t) return;
|
|
150
|
+
let n = [...P.value.cardHeaderOrder], r = n.splice(X.value, 1)[0];
|
|
151
|
+
r && (n.splice(t, 0, r), X.value = t, V("cardHeaderOrder", n));
|
|
152
|
+
}
|
|
153
|
+
function Ae() {
|
|
154
|
+
X.value = null;
|
|
155
|
+
}
|
|
156
|
+
function je(e) {
|
|
157
|
+
Z.value = Z.value === e ? null : e;
|
|
158
|
+
}
|
|
159
|
+
function $(e) {
|
|
160
|
+
if (Z.value === null) return;
|
|
161
|
+
let t = Z.value + e;
|
|
162
|
+
if (t < 0 || t >= P.value.cardHeaderOrder.length) return;
|
|
163
|
+
let n = [...P.value.cardHeaderOrder], r = n[Z.value];
|
|
164
|
+
n[Z.value] = n[t], n[t] = r, V("cardHeaderOrder", n), Z.value = t;
|
|
165
|
+
}
|
|
166
|
+
function Me() {
|
|
167
|
+
localStorage.removeItem(F.value), P.value = z(), N("change", P.value);
|
|
168
|
+
}
|
|
169
|
+
return te(Se), re(() => M.columns, () => {
|
|
170
|
+
P.value = B(P.value, M.columns), R(P.value);
|
|
171
|
+
}), (n, r) => {
|
|
172
|
+
let i = ne("tooltip");
|
|
173
|
+
return h(), ee(t, {
|
|
174
|
+
open: p.open,
|
|
175
|
+
title: "Lista beállítások",
|
|
176
|
+
position: M.position,
|
|
177
|
+
onClose: r[16] ||= (e) => N("close")
|
|
178
|
+
}, {
|
|
179
|
+
default: ie(() => [u("div", ae, [
|
|
180
|
+
u("div", oe, [u("h4", se, [r[17] ||= d(" Elrendezés ", -1), u("span", ce, "— " + v(P.value.layout === "screen" ? "Auto" : P.value.layout === "table" ? "Táblázat" : "Kártyák"), 1)]), u("div", le, [
|
|
181
|
+
u("button", {
|
|
182
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "screen" }]),
|
|
183
|
+
title: "Kijelző méretéhez igazodó elrendezés",
|
|
184
|
+
onClick: r[0] ||= (e) => V("layout", "screen")
|
|
185
|
+
}, [...r[18] ||= [u("i", { class: "fa-solid fa-display" }, null, -1)]], 2),
|
|
186
|
+
u("button", {
|
|
187
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "table" }]),
|
|
188
|
+
title: "Táblázat nézet",
|
|
189
|
+
onClick: r[1] ||= (e) => V("layout", "table")
|
|
190
|
+
}, [...r[19] ||= [u("i", { class: "fa-solid fa-table-list" }, null, -1)]], 2),
|
|
191
|
+
u("button", {
|
|
192
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "cards" }]),
|
|
193
|
+
title: "Kártya nézet",
|
|
194
|
+
onClick: r[2] ||= (e) => V("layout", "cards")
|
|
195
|
+
}, [...r[20] ||= [u("i", { class: "fa-solid fa-list" }, null, -1)]], 2)
|
|
196
|
+
])]),
|
|
197
|
+
u("div", ue, [y((h(), l("h4", x, [...r[21] ||= [d(" Megjelenés ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[
|
|
198
|
+
i,
|
|
199
|
+
"<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb ",
|
|
200
|
+
void 0,
|
|
201
|
+
{ html: !0 }
|
|
202
|
+
]]), u("ul", S, [u("li", {
|
|
203
|
+
class: "table-options__item",
|
|
204
|
+
onClick: r[4] ||= (e) => W("compact"),
|
|
205
|
+
title: "A sorok közötti térköz csökkentése"
|
|
206
|
+
}, [u("span", {
|
|
207
|
+
class: m(["c-checkbox", { "c-checkbox--checked": P.value.compact }]),
|
|
208
|
+
onClick: r[3] ||= b((e) => W("compact"), ["stop"])
|
|
209
|
+
}, null, 2), r[22] ||= u("span", null, "Kompakt", -1)]), u("li", {
|
|
210
|
+
class: "table-options__item",
|
|
211
|
+
onClick: r[6] ||= (e) => W("striped"),
|
|
212
|
+
title: "A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)"
|
|
213
|
+
}, [u("span", {
|
|
214
|
+
class: m(["c-checkbox", { "c-checkbox--checked": P.value.striped }]),
|
|
215
|
+
onClick: r[5] ||= b((e) => W("striped"), ["stop"])
|
|
216
|
+
}, null, 2), r[23] ||= u("span", null, "Sávos (striped)", -1)])])]),
|
|
217
|
+
u("div", de, [
|
|
218
|
+
y((h(), l("h4", fe, [...r[24] ||= [d(" Táblázat oszlopok ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Táblázat nézetben megjelenő oszlopok"]]),
|
|
219
|
+
u("ul", pe, [(h(!0), l(o, null, _(K.value, (e, t) => (h(), l("li", {
|
|
220
|
+
key: e.property,
|
|
221
|
+
class: m(["table-options__item", {
|
|
222
|
+
"table-options__item--disabled": L(e),
|
|
223
|
+
"table-options__item--selected": p.orderable && Y.value === t,
|
|
224
|
+
"table-options__item--dragging": p.orderable && J.value === t
|
|
225
|
+
}]),
|
|
226
|
+
draggable: p.orderable,
|
|
227
|
+
onDragstart: b((e) => p.orderable && we(t), ["stop"]),
|
|
228
|
+
onDragover: b((e) => p.orderable && Te(e, t), ["prevent"]),
|
|
229
|
+
onDrop: r[7] ||= b(() => {}, ["prevent"]),
|
|
230
|
+
onDragend: r[8] ||= (e) => p.orderable && Ee(),
|
|
231
|
+
onClick: b((n) => p.orderable ? De(t) : !L(e) && H(e.property), ["prevent"])
|
|
232
|
+
}, [p.orderable ? (h(), l("i", he)) : c("", !0), u("span", {
|
|
233
|
+
class: "table-options__toggle",
|
|
234
|
+
onClick: b((t) => !L(e) && H(e.property), ["stop"])
|
|
235
|
+
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": P.value.columns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, ge)], 42, me))), 128))]),
|
|
236
|
+
p.orderable && Y.value !== null ? (h(), l("div", _e, [u("button", {
|
|
237
|
+
class: "table-options__move-btn",
|
|
238
|
+
disabled: Y.value === 0,
|
|
239
|
+
onClick: r[9] ||= (e) => Q(-1)
|
|
240
|
+
}, [...r[25] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, ve), u("button", {
|
|
241
|
+
class: "table-options__move-btn",
|
|
242
|
+
disabled: Y.value === K.value.length - 1,
|
|
243
|
+
onClick: r[10] ||= (e) => Q(1)
|
|
244
|
+
}, [...r[26] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, ye)])) : c("", !0)
|
|
245
|
+
]),
|
|
246
|
+
u("div", be, [
|
|
247
|
+
y((h(), l("h4", xe, [...r[27] ||= [d(" Kártya fejléc ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Kártya nézetben, a sorok fejlécén megjelenő oszlopok"]]),
|
|
248
|
+
u("ul", C, [(h(!0), l(o, null, _(q.value, (e, t) => (h(), l("li", {
|
|
249
|
+
key: "ch-" + e.property,
|
|
250
|
+
class: m(["table-options__item", {
|
|
251
|
+
"table-options__item--disabled": L(e),
|
|
252
|
+
"table-options__item--selected": p.orderable && Z.value === t,
|
|
253
|
+
"table-options__item--dragging": p.orderable && X.value === t
|
|
254
|
+
}]),
|
|
255
|
+
draggable: p.orderable,
|
|
256
|
+
onDragstart: b((e) => p.orderable && Oe(t), ["stop"]),
|
|
257
|
+
onDragover: b((e) => p.orderable && ke(e, t), ["prevent"]),
|
|
258
|
+
onDrop: r[11] ||= b(() => {}, ["prevent"]),
|
|
259
|
+
onDragend: r[12] ||= (e) => p.orderable && Ae(),
|
|
260
|
+
onClick: b((n) => p.orderable ? je(t) : !L(e) && U(e.property), ["prevent"])
|
|
261
|
+
}, [p.orderable ? (h(), l("i", T)) : c("", !0), u("span", {
|
|
262
|
+
class: "table-options__toggle",
|
|
263
|
+
onClick: b((t) => !L(e) && U(e.property), ["stop"])
|
|
264
|
+
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": P.value.cardHeaderColumns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, E)], 42, w))), 128))]),
|
|
265
|
+
p.orderable && Z.value !== null ? (h(), l("div", D, [u("button", {
|
|
266
|
+
class: "table-options__move-btn",
|
|
267
|
+
disabled: Z.value === 0,
|
|
268
|
+
onClick: r[13] ||= (e) => $(-1)
|
|
269
|
+
}, [...r[28] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, O), u("button", {
|
|
270
|
+
class: "table-options__move-btn",
|
|
271
|
+
disabled: Z.value === q.value.length - 1,
|
|
272
|
+
onClick: r[14] ||= (e) => $(1)
|
|
273
|
+
}, [...r[29] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, k)])) : c("", !0)
|
|
274
|
+
])
|
|
275
|
+
]), u("div", A, [f(e, {
|
|
276
|
+
icon: "fa-solid fa-triangle-exclamation",
|
|
277
|
+
disabled: !I.value,
|
|
278
|
+
label: "Alapértelmezés visszaállítása",
|
|
279
|
+
size: "small",
|
|
280
|
+
onClick: Me
|
|
281
|
+
}, null, 8, ["disabled"]), f(e, {
|
|
282
|
+
label: "OK",
|
|
283
|
+
onClick: r[15] ||= (e) => N("close")
|
|
284
|
+
})])]),
|
|
285
|
+
_: 1
|
|
286
|
+
}, 8, ["open", "position"]);
|
|
287
|
+
};
|
|
7
288
|
}
|
|
8
|
-
}
|
|
289
|
+
});
|
|
9
290
|
//#endregion
|
|
10
|
-
export {
|
|
291
|
+
export { j as default };
|