admins-components 9.0.27 → 9.0.29
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/README.md +4 -22
- package/dist/admins-components.js +53 -52
- package/dist/admins-components100.js +79 -249
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components101.js +112 -26
- package/dist/admins-components101.js.map +1 -1
- package/dist/admins-components102.js +45 -26
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +102 -168
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components104.js +17 -65
- package/dist/admins-components104.js.map +1 -1
- package/dist/admins-components105.js +6 -66
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +247 -25
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +27 -16
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +26 -25
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +171 -8
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +67 -3
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +67 -3
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +30 -3
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +15 -20
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +27 -14
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +8 -7
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +4 -13
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +3 -26
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +3 -83
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +19 -9
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +14 -5
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +7 -7
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +12 -6
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +25 -5
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +82 -14
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +10 -12
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +5 -30
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +7 -3
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +7 -29
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +3 -2
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +12 -2
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +12 -7
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +30 -74
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +4 -29
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +27 -57
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +5 -24
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +5 -50
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +7 -30
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +74 -3
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +27 -177
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +58 -45
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +23 -36
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +46 -42
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +28 -138
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +3 -58
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +178 -6
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +45 -5
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +37 -76
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +45 -28
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +129 -1919
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components15.js +8 -42
- package/dist/admins-components15.js.map +1 -1
- package/dist/admins-components150.js +54 -24807
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +6 -8
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +6 -7
- package/dist/admins-components152.js.map +1 -0
- package/dist/admins-components153.js +76 -142
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +28 -8
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +1930 -8
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +24812 -0
- package/dist/admins-components156.js.map +1 -0
- package/dist/admins-components157.js +8 -167
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +7 -51
- package/dist/admins-components159.js +141 -8
- package/dist/admins-components159.js.map +1 -1
- package/dist/admins-components16.js +89 -4
- package/dist/admins-components16.js.map +1 -1
- package/dist/admins-components160.js +8 -49
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +9 -6
- package/dist/admins-components161.js.map +1 -1
- package/dist/admins-components163.js +160 -50
- package/dist/admins-components163.js.map +1 -1
- package/dist/admins-components164.js +34 -42
- package/dist/admins-components164.js.map +1 -1
- package/dist/admins-components165.js +3 -3
- package/dist/admins-components165.js.map +1 -1
- package/dist/admins-components166.js +18 -20
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +6 -9
- package/dist/admins-components167.js.map +1 -1
- package/dist/{admins-components162.js → admins-components168.js} +3 -3
- package/dist/{admins-components162.js.map → admins-components168.js.map} +1 -1
- package/dist/admins-components169.js +51 -51
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components17.js +4 -94
- package/dist/admins-components17.js.map +1 -1
- package/dist/admins-components170.js +60 -0
- package/dist/admins-components170.js.map +1 -0
- package/dist/admins-components171.js +10 -0
- package/dist/admins-components171.js.map +1 -0
- package/dist/admins-components172.js +53 -0
- package/dist/admins-components172.js.map +1 -0
- package/dist/admins-components173.js +10 -0
- package/dist/admins-components173.js.map +1 -0
- package/dist/admins-components175.js +59 -0
- package/dist/admins-components175.js.map +1 -0
- package/dist/admins-components18.js +37 -239
- package/dist/admins-components18.js.map +1 -1
- package/dist/admins-components19.js +1 -2
- package/dist/admins-components19.js.map +1 -1
- package/dist/admins-components20.js +91 -179
- package/dist/admins-components20.js.map +1 -1
- package/dist/admins-components21.js +245 -0
- package/dist/admins-components21.js.map +1 -0
- package/dist/admins-components22.js +3 -4
- package/dist/admins-components22.js.map +1 -1
- package/dist/admins-components23.js +172 -68
- package/dist/admins-components23.js.map +1 -1
- package/dist/admins-components25.js +6 -58
- package/dist/admins-components25.js.map +1 -1
- package/dist/admins-components26.js +79 -0
- package/dist/{admins-components24.js.map → admins-components26.js.map} +1 -1
- package/dist/admins-components27.js +3 -3
- package/dist/admins-components27.js.map +1 -1
- package/dist/admins-components28.js +50 -64
- package/dist/admins-components28.js.map +1 -1
- package/dist/admins-components29.js +75 -0
- package/dist/admins-components29.js.map +1 -0
- package/dist/admins-components31.js +6 -39
- package/dist/admins-components31.js.map +1 -1
- package/dist/admins-components32.js +66 -0
- package/dist/admins-components32.js.map +1 -0
- package/dist/admins-components34.js +6 -36
- package/dist/admins-components34.js.map +1 -1
- package/dist/admins-components35.js +39 -4
- package/dist/admins-components35.js.map +1 -1
- package/dist/{admins-components33.js → admins-components37.js} +1 -1
- package/dist/{admins-components33.js.map → admins-components37.js.map} +1 -1
- package/dist/admins-components38.js +36 -6
- package/dist/admins-components38.js.map +1 -1
- package/dist/admins-components39.js +4 -146
- package/dist/admins-components39.js.map +1 -1
- package/dist/{admins-components36.js.map → admins-components40.js.map} +1 -1
- package/dist/admins-components42.js +6 -124
- package/dist/admins-components42.js.map +1 -1
- package/dist/admins-components43.js +146 -4
- package/dist/admins-components43.js.map +1 -1
- package/dist/admins-components45.js +4 -2
- package/dist/admins-components45.js.map +1 -1
- package/dist/admins-components46.js +120 -15
- package/dist/admins-components46.js.map +1 -1
- package/dist/admins-components47.js +5 -0
- package/dist/admins-components47.js.map +1 -0
- package/dist/admins-components48.js +179 -6
- package/dist/admins-components48.js.map +1 -1
- package/dist/admins-components49.js +4 -54
- package/dist/admins-components49.js.map +1 -1
- package/dist/admins-components50.js +15 -89
- package/dist/admins-components50.js.map +1 -1
- package/dist/admins-components52.js +2 -2
- package/dist/admins-components52.js.map +1 -1
- package/dist/admins-components53.js +52 -23
- package/dist/admins-components53.js.map +1 -1
- package/dist/admins-components54.js +93 -9
- package/dist/admins-components54.js.map +1 -1
- package/dist/admins-components56.js +6 -73
- package/dist/admins-components56.js.map +1 -1
- package/dist/admins-components57.js +24 -65
- package/dist/admins-components57.js.map +1 -1
- package/dist/admins-components58.js +9 -4
- package/dist/admins-components58.js.map +1 -1
- package/dist/admins-components59.js +19 -138
- package/dist/admins-components59.js.map +1 -1
- package/dist/admins-components60.js +74 -0
- package/dist/admins-components60.js.map +1 -0
- package/dist/admins-components61.js +66 -7
- package/dist/admins-components61.js.map +1 -1
- package/dist/admins-components62.js +4 -170
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components63.js +140 -0
- package/dist/admins-components63.js.map +1 -0
- package/dist/admins-components65.js +7 -7
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components66.js +155 -259
- package/dist/admins-components66.js.map +1 -1
- package/dist/admins-components68.js +3 -2
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components69.js +6 -119
- package/dist/admins-components69.js.map +1 -1
- package/dist/admins-components70.js +280 -0
- package/dist/admins-components70.js.map +1 -0
- package/dist/admins-components72.js +6 -59
- package/dist/admins-components72.js.map +1 -1
- package/dist/admins-components73.js +110 -207
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components75.js +2 -2
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components76.js +58 -7
- package/dist/admins-components76.js.map +1 -1
- package/dist/admins-components77.js +220 -51
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components79.js +7 -0
- package/dist/admins-components79.js.map +1 -0
- package/dist/admins-components80.js +52 -6
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components81.js +246 -32
- package/dist/admins-components81.js.map +1 -1
- package/dist/admins-components83.js +2 -2
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components84.js +31 -192
- package/dist/admins-components84.js.map +1 -1
- package/dist/admins-components86.js +2 -2
- package/dist/admins-components86.js.map +1 -1
- package/dist/admins-components87.js +195 -184
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components89.js +2 -2
- package/dist/admins-components89.js.map +1 -1
- package/dist/admins-components90.js +16 -3
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +77 -16
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components93.js +6 -52
- package/dist/admins-components93.js.map +1 -1
- package/dist/admins-components94.js +195 -81
- package/dist/admins-components94.js.map +1 -1
- package/dist/admins-components96.js +6 -47
- package/dist/admins-components96.js.map +1 -1
- package/dist/admins-components97.js +3 -106
- package/dist/admins-components97.js.map +1 -1
- package/dist/admins-components98.js +3 -20
- package/dist/admins-components98.js.map +1 -1
- package/dist/admins-components99.js +51 -6
- 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/Checkbox.vue.d.ts +11 -1
- package/dist/src/components/TextInput.vue.d.ts +33 -0
- package/dist/src/components/data-table/DataFilters.vue.d.ts +7 -14
- package/dist/src/components/data-table/DataList.vue.d.ts +10 -7
- package/dist/src/components/data-table/DataSearch.vue.d.ts +26 -0
- package/dist/src/composables/useSwipeToClose.d.ts +50 -0
- package/dist/src/index.d.ts +5 -1
- 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/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -0
- package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/image-picker.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 +0 -1
- package/package.json +1 -1
- package/dist/admins-components158.js.map +0 -1
- package/dist/admins-components24.js +0 -7
- package/dist/admins-components30.js +0 -7
- package/dist/admins-components30.js.map +0 -1
- package/dist/admins-components41.js +0 -7
- package/dist/admins-components41.js.map +0 -1
- package/dist/admins-components44.js +0 -180
- package/dist/admins-components44.js.map +0 -1
- package/dist/admins-components55.js +0 -20
- package/dist/admins-components55.js.map +0 -1
- package/dist/admins-components64.js +0 -8
- package/dist/admins-components64.js.map +0 -1
- package/dist/admins-components71.js +0 -7
- package/dist/admins-components71.js.map +0 -1
- package/dist/admins-components78.js +0 -276
- package/dist/admins-components78.js.map +0 -1
- package/dist/admins-components92.js +0 -4
- package/dist/admins-components92.js.map +0 -1
- package/dist/admins-components95.js +0 -114
- package/dist/admins-components95.js.map +0 -1
- /package/dist/{admins-components36.js → admins-components40.js} +0 -0
|
@@ -1,275 +1,171 @@
|
|
|
1
1
|
import e from "./admins-components6.js";
|
|
2
|
-
import t from "./admins-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
],
|
|
13
|
-
key:
|
|
14
|
-
class: "
|
|
15
|
-
},
|
|
16
|
-
key:
|
|
17
|
-
class: "
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"onDragover",
|
|
22
|
-
"onClick"
|
|
23
|
-
], O = {
|
|
24
|
-
key: 0,
|
|
25
|
-
class: "fa-solid fa-grip-vertical table-options__drag-handle"
|
|
26
|
-
}, k = ["onClick"], A = {
|
|
27
|
-
key: 0,
|
|
28
|
-
class: "table-options__move-actions"
|
|
29
|
-
}, j = ["disabled"], M = ["disabled"], N = { class: "table-options__footer" }, P = /* @__PURE__ */ p({
|
|
30
|
-
__name: "DataListOptions",
|
|
2
|
+
import t from "./admins-components19.js";
|
|
3
|
+
import n from "./admins-components27.js";
|
|
4
|
+
import r from "./admins-components42.js";
|
|
5
|
+
import i from "./admins-components52.js";
|
|
6
|
+
import { useSelection as a } from "./admins-components57.js";
|
|
7
|
+
import { dataCardsSettingsDefaults as o } from "./admins-components58.js";
|
|
8
|
+
import { buildActionGroupMenuItems as s, getColumnValue as c, isActionGroup as l } from "./admins-components59.js";
|
|
9
|
+
import u from "./admins-components62.js";
|
|
10
|
+
import { Fragment as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createVNode as _, defineComponent as v, mergeProps as y, normalizeClass as b, openBlock as x, ref as S, renderList as C, toDisplayString as w, unref as T, vShow as E, watch as D, withDirectives as O, withModifiers as k } from "vue";
|
|
11
|
+
//#region src/components/data-table/DataCards.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
+
var A = { class: "ac-component" }, j = ["onClick", "onPointerdown"], M = ["onClick"], N = { class: "c-card__heading" }, P = { class: "c-card__label" }, F = ["innerHTML"], I = { class: "c-card__body" }, L = { class: "c-card__field-label" }, R = {
|
|
13
|
+
key: 1,
|
|
14
|
+
class: "c-cards__loading-wrap"
|
|
15
|
+
}, z = {
|
|
16
|
+
key: 2,
|
|
17
|
+
class: "c-cards__backdrop",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, B = /* @__PURE__ */ v({
|
|
20
|
+
__name: "DataCards",
|
|
31
21
|
props: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
settings: {},
|
|
35
|
-
|
|
36
|
-
storageKey: {},
|
|
37
|
-
orderable: {
|
|
22
|
+
config: {},
|
|
23
|
+
items: {},
|
|
24
|
+
settings: { default: () => ({ ...o }) },
|
|
25
|
+
loading: {
|
|
38
26
|
type: Boolean,
|
|
39
27
|
default: !1
|
|
40
28
|
}
|
|
41
29
|
},
|
|
42
|
-
emits: ["
|
|
43
|
-
setup(
|
|
44
|
-
let
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
L.value = n.settings ? ve(ee(t, n.settings), F.columns) : t;
|
|
63
|
-
} else L.value = t;
|
|
64
|
-
} catch {
|
|
65
|
-
L.value = z();
|
|
30
|
+
emits: ["selection-change"],
|
|
31
|
+
setup(o, { emit: v }) {
|
|
32
|
+
let B = o, V = v, { selectedKeys: H, toggle: U } = a(() => B.items, () => B.config.selectableAttr, (e) => V("selection-change", e)), W = S(/* @__PURE__ */ new Set());
|
|
33
|
+
D(() => B.items, () => {
|
|
34
|
+
W.value = /* @__PURE__ */ new Set();
|
|
35
|
+
});
|
|
36
|
+
let G = f(() => B.config.columns.filter((e) => e.visible !== !1)), K = f(() => {
|
|
37
|
+
let e = B.settings;
|
|
38
|
+
if (e?.cardHeaderColumns) {
|
|
39
|
+
let t = G.value.filter((t) => e.cardHeaderColumns[t.property]);
|
|
40
|
+
if (t.length > 0) {
|
|
41
|
+
if (e.cardHeaderOrder) {
|
|
42
|
+
let n = e.cardHeaderOrder;
|
|
43
|
+
return [...t].sort((e, t) => {
|
|
44
|
+
let r = n.indexOf(e.property), i = n.indexOf(t.property);
|
|
45
|
+
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return t;
|
|
49
|
+
}
|
|
66
50
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
};
|
|
74
|
-
return {
|
|
75
|
-
...e,
|
|
76
|
-
columnOrder: r(e.columnOrder),
|
|
77
|
-
cardHeaderOrder: r(e.cardHeaderOrder)
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
function ye() {
|
|
81
|
-
try {
|
|
82
|
-
let e = R.value, t = localStorage.getItem(e), n = t ? JSON.parse(t) : {};
|
|
83
|
-
n.settings = L.value, localStorage.setItem(e, JSON.stringify(n));
|
|
84
|
-
} catch {}
|
|
85
|
-
I("change", L.value);
|
|
86
|
-
}
|
|
87
|
-
function B(e, t) {
|
|
88
|
-
L.value = {
|
|
89
|
-
...L.value,
|
|
90
|
-
[e]: t
|
|
91
|
-
}, ye();
|
|
92
|
-
}
|
|
93
|
-
function V(e) {
|
|
94
|
-
B("columns", {
|
|
95
|
-
...L.value.columns,
|
|
96
|
-
[e]: !L.value.columns[e]
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
function H(e) {
|
|
100
|
-
B("cardHeaderColumns", {
|
|
101
|
-
...L.value.cardHeaderColumns,
|
|
102
|
-
[e]: !L.value.cardHeaderColumns[e]
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
function U(e) {
|
|
106
|
-
B(e, !L.value[e]);
|
|
107
|
-
}
|
|
108
|
-
function W(e, t) {
|
|
109
|
-
return [...e].sort((e, n) => {
|
|
110
|
-
let r = t.indexOf(e.property), i = t.indexOf(n.property);
|
|
111
|
-
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
let G = o(() => W(F.columns, L.value.columnOrder)), K = o(() => W(F.columns, L.value.cardHeaderOrder)), q = _(null), J = _(null), Y = _(null), X = _(null);
|
|
115
|
-
function be(e) {
|
|
116
|
-
q.value = e;
|
|
51
|
+
let t = G.value.filter((e) => e.primary);
|
|
52
|
+
return t.length > 0 ? t : G.value.slice(0, 1);
|
|
53
|
+
}), q = null, J = !1;
|
|
54
|
+
function Y(e, t) {
|
|
55
|
+
B.config.selectableAttr && e.button === 0 && (J = !1, q = setTimeout(() => {
|
|
56
|
+
J = !0, U(t);
|
|
57
|
+
}, 500));
|
|
117
58
|
}
|
|
118
|
-
function
|
|
119
|
-
|
|
120
|
-
let n = [...L.value.columnOrder], r = n.splice(q.value, 1)[0];
|
|
121
|
-
r && (n.splice(t, 0, r), q.value = t, B("columnOrder", n));
|
|
122
|
-
}
|
|
123
|
-
function Se() {
|
|
124
|
-
q.value = null;
|
|
125
|
-
}
|
|
126
|
-
function Ce(e) {
|
|
127
|
-
J.value = J.value === e ? null : e;
|
|
59
|
+
function X() {
|
|
60
|
+
q &&= (clearTimeout(q), null);
|
|
128
61
|
}
|
|
129
62
|
function Z(e) {
|
|
130
|
-
|
|
131
|
-
let t = J.value + e;
|
|
132
|
-
if (t < 0 || t >= L.value.columnOrder.length) return;
|
|
133
|
-
let n = [...L.value.columnOrder], r = n[J.value];
|
|
134
|
-
n[J.value] = n[t], n[t] = r, B("columnOrder", n), J.value = t;
|
|
135
|
-
}
|
|
136
|
-
function we(e) {
|
|
137
|
-
Y.value = e;
|
|
138
|
-
}
|
|
139
|
-
function Q(e, t) {
|
|
140
|
-
if (e.preventDefault(), Y.value === null || Y.value === t) return;
|
|
141
|
-
let n = [...L.value.cardHeaderOrder], r = n.splice(Y.value, 1)[0];
|
|
142
|
-
r && (n.splice(t, 0, r), Y.value = t, B("cardHeaderOrder", n));
|
|
63
|
+
J && e.preventDefault();
|
|
143
64
|
}
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
65
|
+
function Q(e) {
|
|
66
|
+
if (J) {
|
|
67
|
+
J = !1;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
$(e);
|
|
149
71
|
}
|
|
150
72
|
function $(e) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
class: "table-options__toggle",
|
|
247
|
-
onClick: C((t) => !e.primary && V(e.property), ["stop"])
|
|
248
|
-
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": L.value.columns[e.property] }]) }, null, 2), u("span", null, b(e.label), 1)], 8, k)], 42, D))), 128))]),
|
|
249
|
-
p.orderable && J.value !== null ? (g(), l("div", A, [u("button", {
|
|
250
|
-
class: "table-options__move-btn",
|
|
251
|
-
disabled: J.value === 0,
|
|
252
|
-
onClick: r[13] ||= (e) => Z(-1)
|
|
253
|
-
}, [...r[27] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, j), u("button", {
|
|
254
|
-
class: "table-options__move-btn",
|
|
255
|
-
disabled: J.value === G.value.length - 1,
|
|
256
|
-
onClick: r[14] ||= (e) => Z(1)
|
|
257
|
-
}, [...r[28] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, M)])) : c("", !0)
|
|
258
|
-
])
|
|
259
|
-
]), u("div", N, [f(e, {
|
|
260
|
-
icon: "fa-solid fa-triangle-exclamation",
|
|
261
|
-
disabled: !ge.value,
|
|
262
|
-
label: "Alapértelmezés visszaállítása",
|
|
263
|
-
size: "small",
|
|
264
|
-
onClick: De
|
|
265
|
-
}, null, 8, ["disabled"]), f(e, {
|
|
266
|
-
label: "OK",
|
|
267
|
-
onClick: r[15] ||= (e) => I("close")
|
|
268
|
-
})])]),
|
|
269
|
-
_: 1
|
|
270
|
-
}, 8, ["open", "position"]);
|
|
271
|
-
};
|
|
73
|
+
W.value.has(e) ? W.value.delete(e) : W.value.add(e), W.value = new Set(W.value);
|
|
74
|
+
}
|
|
75
|
+
return (a, f) => (x(), h("div", A, [g("div", { class: b(["c-cards-wrapper", { "is-loading": o.loading }]) }, [!o.loading || o.items.length > 0 ? (x(), h("div", {
|
|
76
|
+
key: 0,
|
|
77
|
+
class: b(["c-cards", { "is-compact": o.settings.compact }])
|
|
78
|
+
}, [(x(!0), h(d, null, C(o.items, (i, a) => (x(), h("div", {
|
|
79
|
+
key: a,
|
|
80
|
+
class: b(["c-card", {
|
|
81
|
+
"is-open": W.value.has(a),
|
|
82
|
+
"is-selected": o.config.selectableAttr && T(H).has(i[o.config.selectableAttr])
|
|
83
|
+
}])
|
|
84
|
+
}, [g("button", {
|
|
85
|
+
type: "button",
|
|
86
|
+
class: "c-card__header",
|
|
87
|
+
onClick: (e) => Q(a),
|
|
88
|
+
onPointerdown: (e) => Y(e, i),
|
|
89
|
+
onPointerup: f[1] ||= (e) => X(),
|
|
90
|
+
onPointerleave: f[2] ||= (e) => X(),
|
|
91
|
+
onContextmenu: Z
|
|
92
|
+
}, [
|
|
93
|
+
o.config.selectableAttr ? (x(), h("span", {
|
|
94
|
+
key: 0,
|
|
95
|
+
class: "c-card__check-zone",
|
|
96
|
+
onClick: k((e) => T(U)(i), ["stop"])
|
|
97
|
+
}, [_(t, {
|
|
98
|
+
"model-value": !!T(H).has(i[o.config.selectableAttr]),
|
|
99
|
+
"onUpdate:modelValue": (e) => T(U)(i),
|
|
100
|
+
onClick: f[0] ||= k(() => {}, ["stop"])
|
|
101
|
+
}, null, 8, ["model-value", "onUpdate:modelValue"])], 8, M)) : m("", !0),
|
|
102
|
+
g("span", N, [(x(!0), h(d, null, C(K.value, (e, t) => (x(), h("span", {
|
|
103
|
+
key: e.property,
|
|
104
|
+
class: "c-card__heading-item"
|
|
105
|
+
}, [g("span", P, w(e.label), 1), g("span", {
|
|
106
|
+
class: b(["c-card__title", { "c-truncate": o.settings.compact && t === 0 }]),
|
|
107
|
+
innerHTML: T(c)(i, e)
|
|
108
|
+
}, null, 10, F)]))), 128))]),
|
|
109
|
+
f[4] ||= g("span", {
|
|
110
|
+
class: "c-card__icon",
|
|
111
|
+
"aria-hidden": "true"
|
|
112
|
+
}, [g("i", { class: "fa-solid fa-chevron-down" })], -1)
|
|
113
|
+
], 40, j), O(g("div", I, [(x(!0), h(d, null, C(G.value, (e) => (x(), h("div", {
|
|
114
|
+
key: e.property,
|
|
115
|
+
class: "c-card__field",
|
|
116
|
+
tabindex: "0"
|
|
117
|
+
}, [
|
|
118
|
+
g("span", L, w(e.label), 1),
|
|
119
|
+
_(u, {
|
|
120
|
+
item: i,
|
|
121
|
+
col: e,
|
|
122
|
+
class: "c-card__field-value",
|
|
123
|
+
copy: !1
|
|
124
|
+
}, null, 8, ["item", "col"]),
|
|
125
|
+
T(c)(i, e) ? (x(), p(r, {
|
|
126
|
+
key: 0,
|
|
127
|
+
class: "c-card__field-copy click-expand",
|
|
128
|
+
value: T(c)(i, e)
|
|
129
|
+
}, null, 8, ["value"])) : m("", !0)
|
|
130
|
+
]))), 128)), o.config.actions ? (x(), h("div", {
|
|
131
|
+
key: 0,
|
|
132
|
+
class: "c-card__actions",
|
|
133
|
+
onClick: f[3] ||= k(() => {}, ["stop"])
|
|
134
|
+
}, [(x(!0), h(d, null, C(o.config.actions, (t, r) => (x(), h(d, { key: r }, [T(l)(t) ? (x(), p(n, y({
|
|
135
|
+
key: 0,
|
|
136
|
+
icon: t.icon,
|
|
137
|
+
label: t.label,
|
|
138
|
+
ariaLabel: t.ariaLabel,
|
|
139
|
+
items: T(s)(t, i)
|
|
140
|
+
}, { ref_for: !0 }, t.config), null, 16, [
|
|
141
|
+
"icon",
|
|
142
|
+
"label",
|
|
143
|
+
"ariaLabel",
|
|
144
|
+
"items"
|
|
145
|
+
])) : (x(), p(e, y({
|
|
146
|
+
key: 1,
|
|
147
|
+
type: t.type,
|
|
148
|
+
icon: t.icon,
|
|
149
|
+
label: t.cardLabel ?? t.label,
|
|
150
|
+
ariaLabel: t.ariaLabel,
|
|
151
|
+
outline: "",
|
|
152
|
+
disabled: t.disabled ? t.disabled(i) : !1,
|
|
153
|
+
callback: () => t.callback(i)
|
|
154
|
+
}, { ref_for: !0 }, t.config), null, 16, [
|
|
155
|
+
"type",
|
|
156
|
+
"icon",
|
|
157
|
+
"label",
|
|
158
|
+
"ariaLabel",
|
|
159
|
+
"disabled",
|
|
160
|
+
"callback"
|
|
161
|
+
]))], 64))), 128))])) : m("", !0)], 512), [[E, W.value.has(a)]])], 2))), 128))], 2)) : (x(), h("div", R, [_(i, {
|
|
162
|
+
loading: !0,
|
|
163
|
+
size: "2.5rem"
|
|
164
|
+
})])), o.loading && o.items.length > 0 ? (x(), h("div", z, [_(i, {
|
|
165
|
+
loading: !0,
|
|
166
|
+
size: "2.5rem"
|
|
167
|
+
})])) : m("", !0)], 2)]));
|
|
272
168
|
}
|
|
273
169
|
});
|
|
274
170
|
//#endregion
|
|
275
|
-
export {
|
|
171
|
+
export { B as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components66.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 } 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 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] ?? c.primary === 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 emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const props = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const known = new Set(props)\n const filtered = (order ?? []).filter((p) => known.has(p))\n const missing = props.filter((p) => !filtered.includes(p))\n return [...filtered, ...missing]\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</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\">Megjelenés</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\">\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 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': col.primary,\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 : !col.primary && 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=\"!col.primary && 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 class=\"table-options__col\">\n <h4 class=\"table-options__title\">Oszlopok</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': col.primary,\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) : !col.primary && 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=\"!col.primary && 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>\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":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components66.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'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport Button from '@/components/Button.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 DropdownMenu from '@/components/DropdownMenu.vue'\nimport { getColumnValue } from '@/utils/dataList'\nimport { buildActionGroupMenuItems, isActionGroup } from '@/utils/dataList'\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\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 class=\"ac-component\">\n <div class=\"c-cards-wrapper\" :class=\"{ 'is-loading': loading }\">\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 >\n <span class=\"c-card__label\">{{ col.label }}</span>\n <span\n class=\"c-card__title\"\n :class=\"{ 'c-truncate': settings.compact && i === 0 }\"\n v-html=\"getColumnValue(item, col)\"\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\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-card__field\"\n tabindex=\"0\"\n >\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col)\"\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 <template v-for=\"(action, ai) in config.actions\" :key=\"ai\">\n <DropdownMenu\n v-if=\"isActionGroup(action)\"\n :icon=\"action.icon\"\n :label=\"action.label\"\n :ariaLabel=\"action.ariaLabel\"\n :items=\"buildActionGroupMenuItems(action, item)\"\n v-bind=\"action.config\"\n />\n\n <Button\n v-else\n :type=\"action.type\"\n :icon=\"action.icon\"\n :label=\"action.cardLabel ?? action.label\"\n :ariaLabel=\"action.ariaLabel\"\n outline\n :disabled=\"action.disabled ? action.disabled(item) : false\"\n :callback=\"() => action.callback(item)\"\n v-bind=\"action.config\"\n />\n </template>\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 </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import './src/styles/components/data-table/data-
|
|
1
|
+
import './src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
+
import "./admins-components58.js";
|
|
2
3
|
import e from "./admins-components66.js";
|
|
3
4
|
/* empty css */
|
|
4
|
-
//#region src/components/data-table/
|
|
5
|
+
//#region src/components/data-table/DataCards.vue
|
|
5
6
|
var t = e;
|
|
6
7
|
//#endregion
|
|
7
8
|
export { t as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components68.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 } 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 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] ?? c.primary === 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 emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const props = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const known = new Set(props)\n const filtered = (order ?? []).filter((p) => known.has(p))\n const missing = props.filter((p) => !filtered.includes(p))\n return [...filtered, ...missing]\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</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\">Megjelenés</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\">\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 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': col.primary,\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 : !col.primary && 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=\"!col.primary && 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 class=\"table-options__col\">\n <h4 class=\"table-options__title\">Oszlopok</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': col.primary,\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) : !col.primary && 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=\"!col.primary && 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>\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-components68.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'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport Button from '@/components/Button.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 DropdownMenu from '@/components/DropdownMenu.vue'\nimport { getColumnValue } from '@/utils/dataList'\nimport { buildActionGroupMenuItems, isActionGroup } from '@/utils/dataList'\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\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 class=\"ac-component\">\n <div class=\"c-cards-wrapper\" :class=\"{ 'is-loading': loading }\">\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 >\n <span class=\"c-card__label\">{{ col.label }}</span>\n <span\n class=\"c-card__title\"\n :class=\"{ 'c-truncate': settings.compact && i === 0 }\"\n v-html=\"getColumnValue(item, col)\"\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\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-card__field\"\n tabindex=\"0\"\n >\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col)\"\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 <template v-for=\"(action, ai) in config.actions\" :key=\"ai\">\n <DropdownMenu\n v-if=\"isActionGroup(action)\"\n :icon=\"action.icon\"\n :label=\"action.label\"\n :ariaLabel=\"action.ariaLabel\"\n :items=\"buildActionGroupMenuItems(action, item)\"\n v-bind=\"action.config\"\n />\n\n <Button\n v-else\n :type=\"action.type\"\n :icon=\"action.icon\"\n :label=\"action.cardLabel ?? action.label\"\n :ariaLabel=\"action.ariaLabel\"\n outline\n :disabled=\"action.disabled ? action.disabled(item) : false\"\n :callback=\"() => action.callback(item)\"\n v-bind=\"action.config\"\n />\n </template>\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 </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":""}
|